<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Egbuta ifeanyi chukwu</title>
    <description>The latest articles on DEV Community by Egbuta ifeanyi chukwu (@egbutaify2ui).</description>
    <link>https://dev.to/egbutaify2ui</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129941%2F8bf9cbee-d180-43c2-9831-19d87a012247.jpg</url>
      <title>DEV Community: Egbuta ifeanyi chukwu</title>
      <link>https://dev.to/egbutaify2ui</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/egbutaify2ui"/>
    <language>en</language>
    <item>
      <title># RepoGhost: Investigating GitHub Accounts Without Guessing 👻</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Wed, 28 Oct 2026 13:59:57 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/-repoghost-investigating-github-accounts-without-guessing-2ih0</link>
      <guid>https://dev.to/egbutaify2ui/-repoghost-investigating-github-accounts-without-guessing-2ih0</guid>
      <description>&lt;p&gt;Every GitHub profile leaves a trail. The challenge is knowing what that trail actually tells you.&lt;/p&gt;

&lt;p&gt;I’m building &lt;strong&gt;RepoGhost&lt;/strong&gt;, a project that investigates public GitHub accounts and repositories, surfaces useful evidence, and helps you ask questions about what it finds.&lt;/p&gt;

&lt;p&gt;The idea is simple: instead of looking at a profile and making assumptions, investigate the projects behind it.&lt;/p&gt;

&lt;p&gt;🔗 &lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://repoghost.onrender.com" rel="noopener noreferrer"&gt;https://repoghost.onrender.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
💻 &lt;strong&gt;GitHub repository:&lt;/strong&gt; &lt;a href="https://github.com/egbutaify2-ui/repoghost" rel="noopener noreferrer"&gt;https://github.com/egbutaify2-ui/repoghost&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I started building RepoGhost
&lt;/h2&gt;

&lt;p&gt;A GitHub profile can contain dozens of repositories, different technologies, activity records, and projects with very different purposes.&lt;/p&gt;

&lt;p&gt;But repository counts and star numbers alone don't tell the whole story.&lt;/p&gt;

&lt;p&gt;I wanted to build something that could help answer practical questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What does this GitHub account or organization actually work on?&lt;/li&gt;
&lt;li&gt;Which public repositories are relevant to a particular technology or role?&lt;/li&gt;
&lt;li&gt;What technologies appear in its projects?&lt;/li&gt;
&lt;li&gt;What can recent public activity tell us—and what can't we conclude from it?&lt;/li&gt;
&lt;li&gt;Can I ask follow-up questions about an investigated account instead of starting from scratch?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That last question is especially important to me. I want RepoGhost to feel like an investigation you can continue, not a report you read once and abandon.&lt;/p&gt;

&lt;h2&gt;
  
  
  How RepoGhost works
&lt;/h2&gt;

&lt;p&gt;The current project combines public GitHub data with AI-assisted analysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Investigate an account&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enter a GitHub username or organization, such as &lt;code&gt;expressjs&lt;/code&gt;. RepoGhost retrieves the public profile and repository information.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Follow the evidence&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Depending on the investigation, it can surface repository descriptions, programming languages, stars, forks, and visible activity. Repository-level investigations can also examine README files, sampled commits, issues, and releases when available.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Ask questions&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The goal is to let you ask natural-language questions about the account and its projects, with answers grounded in the collected public evidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Follow the sources&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Claims should lead back to the relevant public GitHub records. If the available information doesn't support an answer, RepoGhost should say what remains unknown rather than inventing a story.&lt;/p&gt;

&lt;h2&gt;
  
  
  The interesting engineering challenge: AI is not the source of truth
&lt;/h2&gt;

&lt;p&gt;One lesson from building this project is that getting an AI model to return an answer is only part of the job.&lt;/p&gt;

&lt;p&gt;The answer also needs to be relevant, concise, supported by evidence, and linked to valid sources.&lt;/p&gt;

&lt;p&gt;Models can return malformed output, omit citations, or fail to answer the question directly. A fallback that simply dumps technical errors isn't useful to the person asking the question.&lt;/p&gt;

&lt;p&gt;That's why I'm working on making RepoGhost more reliable: validating answers, checking citations against the actual evidence, handling model failures gracefully, and keeping verified GitHub data available even when AI inference fails.&lt;/p&gt;

&lt;p&gt;I'd rather RepoGhost admit that it doesn't know than confidently tell someone something the evidence cannot support.&lt;/p&gt;

&lt;h2&gt;
  
  
  What RepoGhost should never pretend to know
&lt;/h2&gt;

&lt;p&gt;Public GitHub data has limits.&lt;/p&gt;

&lt;p&gt;Repository ownership doesn't prove that someone personally wrote every line of code. Recent activity doesn't prove code quality. Stars don't establish engineering ability. And public repositories cannot reveal someone's private work or personal motivations.&lt;/p&gt;

&lt;p&gt;RepoGhost is intended to help people investigate evidence, not turn incomplete signals into unquestionable judgments.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built in the open
&lt;/h2&gt;

&lt;p&gt;I'm developing RepoGhost as part of my work around AI-powered developer tools and evidence-based software analysis.&lt;/p&gt;

&lt;p&gt;The project is still evolving, and I'm treating the reliability issues as part of the engineering work—not something to hide behind a nice interface.&lt;/p&gt;

&lt;p&gt;Try it with a GitHub account or organization you know. Ask what its projects do, inspect the sources, and see where the evidence leads.&lt;/p&gt;

&lt;p&gt;👻 &lt;strong&gt;Try RepoGhost:&lt;/strong&gt; &lt;a href="https://repoghost.onrender.com" rel="noopener noreferrer"&gt;https://repoghost.onrender.com&lt;/a&gt;&lt;br&gt;&lt;br&gt;
⭐ &lt;strong&gt;Explore the source code:&lt;/strong&gt; &lt;a href="https://github.com/egbutaify2-ui/repoghost" rel="noopener noreferrer"&gt;https://github.com/egbutaify2-ui/repoghost&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I'd particularly value feedback on one question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What would make you trust an AI tool that investigates GitHub accounts and explains what it finds?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I'm building toward that standard, one investigation at a time.&lt;/p&gt;

&lt;h1&gt;
  
  
  hacktoberfest #ai #opensource #node
&lt;/h1&gt;

</description>
      <category>buildinpublic</category>
      <category>github</category>
      <category>programming</category>
      <category>showdev</category>
    </item>
    <item>
      <title>RepoGhost: Every GitHub Profile Leaves a Ghost. Lets find out</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Wed, 28 Oct 2026 12:29:55 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/repoghost-bringing-quiet-open-source-projects-back-to-life-with-gemma-4-3oii</link>
      <guid>https://dev.to/egbutaify2ui/repoghost-bringing-quiet-open-source-projects-back-to-life-with-gemma-4-3oii</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Every developer leaves traces. Every repository holds memories. And nothing on GitHub ever tells the whole story at first glance.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I built &lt;strong&gt;RepoGhost&lt;/strong&gt;, an AI-powered GitHub investigation tool that lets you summon a public developer profile, question it about its work, uncover its projects, and investigate the evidence left behind across its repositories.&lt;/p&gt;

&lt;p&gt;Enter a GitHub username, and the investigation begins.&lt;/p&gt;

&lt;p&gt;What does this developer build? Which technologies appear in their projects? What has changed recently? Which repositories seem worth investigating? What evidence supports their experience with a particular technology? Which projects might need attention, and where could someone contribute?&lt;/p&gt;

&lt;p&gt;Instead of giving you one static summary and leaving you to figure out the rest, RepoGhost lets you continue the interrogation. Ask follow-up questions about the account and its public work. Investigate the answers. Follow the source links. Dig deeper.&lt;/p&gt;

&lt;p&gt;It's meant to feel like questioning a ghost that has been watching the developer's public GitHub trail.&lt;/p&gt;

&lt;p&gt;But this ghost has rules.&lt;/p&gt;

&lt;p&gt;It can only speak from the evidence it can find. It doesn't have access to a person's private life, private repositories, or hidden knowledge. When the public trail doesn't support an answer, RepoGhost should expose that limitation instead of inventing a story.&lt;/p&gt;

&lt;p&gt;Beyond account investigations, RepoGhost can compare two public GitHub accounts against a specific goal, assess visible project evidence for a role, investigate repository health, and recommend relevant projects and real contribution opportunities.&lt;/p&gt;

&lt;p&gt;I also interpreted &lt;em&gt;Ghost in the Machine&lt;/em&gt; through the forgotten corners of open source: repositories that have gone quiet, abandoned-looking projects that may still contain valuable ideas, and software whose original purpose deserves another look.&lt;/p&gt;

&lt;p&gt;A quiet repository isn't necessarily dead. Sometimes, the evidence simply hasn't been examined closely enough.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;RepoGhost is where you go when you want to ask the codebase questions—and see what answers come back from the darkness.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;The ghost is waiting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://repoghost.onrender.com" rel="noopener noreferrer"&gt;Summon RepoGhost&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Enter a public GitHub username or investigate a repository, then explore the evidence and ask follow-up questions about the account's public work.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;Every ghost leaves traces. This one leaves its source code in the open.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/egbutaify2-ui/repoghost" rel="noopener noreferrer"&gt;Examine the RepoGhost source code on GitHub&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The repository contains the application code, configuration examples, and automated tests for the investigation and intelligence workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;RepoGhost is built with Node.js, HTML, CSS, and JavaScript. It uses the GitHub REST API to collect public evidence and OpenRouter to run Google's open-weight &lt;strong&gt;Gemma 4 26B A4B IT&lt;/strong&gt; model.&lt;/p&gt;

&lt;p&gt;The AI isn't just a decorative chatbot. It helps interpret the evidence collected by the application and powers the project's analysis and account-questioning experience.&lt;/p&gt;

&lt;p&gt;The investigation works in several stages:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. The summoning.&lt;/strong&gt; A visitor supplies a GitHub username, public profile URL, or repository URL. RepoGhost discovers the relevant public account or project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. The trail of evidence.&lt;/strong&gt; The application collects information such as repository metadata, README content, languages, recent commits, open issues, and release information when available. Account investigations can use public repository information and a bounded sample of recent commits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The interrogation.&lt;/strong&gt; Gemma helps answer questions and interpret the evidence. Users can ask follow-up questions about a public account's projects, technologies, and recorded activity rather than starting a completely new investigation every time.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. The source check.&lt;/strong&gt; RepoGhost validates AI-generated source references against the evidence actually collected. Unsupported references are discarded, and missing evidence is treated as a limitation—not an invitation to invent an answer.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. The investigation continues.&lt;/strong&gt; Users can assess a developer's public portfolio for a role, compare two accounts against a goal, investigate potential maintenance risks, or discover projects and contribution opportunities.&lt;/p&gt;

&lt;p&gt;I also built the application to handle missing information and upstream failures explicitly. A missing release or README shouldn't automatically mean a repository is dead, and a temporary AI-provider failure shouldn't be disguised as a successful investigation.&lt;/p&gt;

&lt;p&gt;The result is a tool that combines deterministic data collection, evidence validation, and AI-assisted interpretation. The model helps interpret what the application discovers; the application is responsible for collecting the evidence and enforcing its validation rules.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;A ghost story becomes less convincing when you can't inspect what is happening behind the curtain.&lt;/p&gt;

&lt;p&gt;That's one reason open innovation matters to RepoGhost.&lt;/p&gt;

&lt;p&gt;The application uses Gemma, an open-weight model, rather than building its intelligence exclusively around one proprietary model. Its prompts, evidence-handling logic, validation rules, and surrounding application code are available for people to inspect, adapt, and improve.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open weights make the model choice more flexible.&lt;/strong&gt; RepoGhost's inference configuration is separated from its GitHub evidence collector and frontend. This creates room to experiment with compatible models and inference providers without rebuilding the entire application.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open code makes the investigation easier to examine.&lt;/strong&gt; Developers can inspect how information is collected, how the model is instructed to answer, and how the application checks its source references. The goal isn't to make an AI sound omniscient; it's to make its findings easier to question.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Open innovation leaves the door open.&lt;/strong&gt; The hosted version currently uses OpenRouter, so it requires an internet connection and sends the material needed for inference to the configured provider. It is not an offline application today. However, the separated inference layer creates a path for operators to explore compatible self-hosted open-weight models later.&lt;/p&gt;

&lt;p&gt;A closed model could also answer GitHub questions. My argument isn't that open-weight AI magically makes every answer better. It's that developers deserve more choice in how they run, inspect, and adapt the systems they build.&lt;/p&gt;

&lt;p&gt;And for a project about investigating public evidence, that matters. The ghost may help interpret the trail, but people should be able to examine how the ghost works.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Agent Session
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Optional: Add a DevRelay agent session link here if available.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;Imagine discovering a GitHub profile belonging to a developer you've never met.&lt;/p&gt;

&lt;p&gt;At first, all you have is a username.&lt;/p&gt;

&lt;p&gt;You open their repositories. One project catches your attention. You inspect its README, look at the languages, follow a few commits, and begin to wonder what the developer has actually been building.&lt;/p&gt;

&lt;p&gt;Then you start asking questions.&lt;/p&gt;

&lt;p&gt;What are their most relevant projects? What technologies can you see evidence of? What changed recently? Which repository should I investigate next? What can the public record tell me about this developer's work?&lt;/p&gt;

&lt;p&gt;The username becomes a trail. The trail becomes evidence. And the evidence gives you new questions to ask.&lt;/p&gt;

&lt;p&gt;That's the feeling I wanted RepoGhost to create: &lt;strong&gt;not just looking at a profile, but summoning its public history and questioning what remains.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The ghost isn't magic. It doesn't know someone's secrets, and it cannot answer every question truthfully when the evidence isn't there. But it can help reveal patterns that might otherwise remain buried in a long list of repositories and commits.&lt;/p&gt;

&lt;p&gt;And when the evidence ends, the ghost should say so.&lt;/p&gt;

&lt;p&gt;Because the scariest thing an AI can do isn't admit that it doesn't know.&lt;/p&gt;

&lt;p&gt;It's confidently tell you a story that never happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma&lt;/strong&gt; — Gemma powers RepoGhost's AI-assisted repository analysis and account intelligence.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Render&lt;/strong&gt; — RepoGhost is deployed as a live web application on Render.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  devchallenge #hf26challenge
&lt;/h1&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>I agree with the core message, especially problem framing, debugging, and knowing when not to trust generated code. But I think “the only skills that pay” is an overstatement.</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Wed, 28 Oct 2026 12:14:06 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/i-agree-with-the-core-message-especially-problem-framing-debugging-and-knowing-when-not-to-trust-1e21</link>
      <guid>https://dev.to/egbutaify2ui/i-agree-with-the-core-message-especially-problem-framing-debugging-and-knowing-when-not-to-trust-1e21</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/infoinlet1/6-things-ai-still-cant-do-in-2027-and-why-theyre-now-the-only-skills-that-pay-5h23" class="crayons-story__hidden-navigation-link"&gt;6 Things AI Still Can't Do in 2027 — And Why They're Now the Only Skills That Pay&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/infoinlet1" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3941862%2Fcec34100-b85a-4c9e-8061-55c585109946.jpeg" alt="infoinlet1 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/infoinlet1" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Info Inlet
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Info Inlet
                
                
              
              &lt;div id="story-author-preview-content-4934340" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/infoinlet1" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3941862%2Fcec34100-b85a-4c9e-8061-55c585109946.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Info Inlet&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/infoinlet1/6-things-ai-still-cant-do-in-2027-and-why-theyre-now-the-only-skills-that-pay-5h23" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 28&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/infoinlet1/6-things-ai-still-cant-do-in-2027-and-why-theyre-now-the-only-skills-that-pay-5h23" id="article-link-4934340"&gt;
          6 Things AI Still Can't Do in 2027 — And Why They're Now the Only Skills That Pay
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/career"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;career&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/webdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;webdev&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/infoinlet1/6-things-ai-still-cant-do-in-2027-and-why-theyre-now-the-only-skills-that-pay-5h23" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;20&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/infoinlet1/6-things-ai-still-cant-do-in-2027-and-why-theyre-now-the-only-skills-that-pay-5h23#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              4&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            3 min read
          &lt;/small&gt;
          
          &lt;div class="only-sidebar-menu-item trusted-visible-block print-hidden align-center"&gt;
                
                    
                
          &lt;/div&gt;

        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>ai</category>
      <category>llm</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>AI Can Write the Code. Who Owns the Bug?</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Mon, 26 Oct 2026 09:38:49 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/ai-can-write-the-code-who-owns-the-bug-3543</link>
      <guid>https://dev.to/egbutaify2ui/ai-can-write-the-code-who-owns-the-bug-3543</guid>
      <description>&lt;p&gt;AI coding tools can build features surprisingly fast. But there's one thing I keep thinking about:&lt;/p&gt;

&lt;p&gt;If AI writes the code and something breaks in production, how well do you understand the code it's written?&lt;/p&gt;

&lt;p&gt;A feature can work perfectly during testing and still fail when it meets real users.&lt;/p&gt;

&lt;p&gt;Maybe the API times out. Maybe the user submits a form twice. Maybe authentication expires halfway through a request. Or maybe the AI changes one file and unknowingly breaks something in another.&lt;/p&gt;

&lt;p&gt;That's why I think AI-assisted development is about more than writing good prompts.&lt;/p&gt;

&lt;p&gt;You still need to understand the system, question the generated solution, test edge cases, review changes, and know how to debug what goes wrong.&lt;/p&gt;

&lt;p&gt;AI can help you move faster, but speed without understanding can become an expensive problem.&lt;/p&gt;

&lt;p&gt;I'm curious about how other developers are working with AI coding tools today.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Three questions for the community:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Do you trust AI-generated code once the feature works, or do you review every change?&lt;/li&gt;
&lt;li&gt;Has an AI coding tool ever introduced a bug that took you longer to fix than writing the code yourself?&lt;/li&gt;
&lt;li&gt;What do you think matters more in AI-assisted development: writing better prompts or being a better engineer?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;I'd love to hear your real experiences, including the mistakes. Let's discuss.&lt;/p&gt;

&lt;h1&gt;
  
  
  ai #discuss #webdev #programming
&lt;/h1&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>productivity</category>
      <category>programming</category>
    </item>
    <item>
      <title>I’m excited to share that I joined the Sanity Challenge 2026 — Path One: Ship an Agent That Queries Real Content.

https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Fri, 02 Oct 2026 14:40:44 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/im-excited-to-share-that-i-joined-the-sanity-challenge-2026-path-one-ship-an-agent-that-queries-2ggd</link>
      <guid>https://dev.to/egbutaify2ui/im-excited-to-share-that-i-joined-the-sanity-challenge-2026-path-one-ship-an-agent-that-queries-2ggd</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-story__hidden-navigation-link"&gt;LensLink: An AI Camera Compatibility Agent Powered by Structured Sanity Content&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Sanity Challenge Path One Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/egbutaify2ui" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129941%2F8bf9cbee-d180-43c2-9831-19d87a012247.jpg" alt="egbutaify2ui profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/egbutaify2ui" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Egbuta ifeanyi chukwu
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Egbuta ifeanyi chukwu
                
                
              
              &lt;div id="story-author-preview-content-4787916" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/egbutaify2ui" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129941%2F8bf9cbee-d180-43c2-9831-19d87a012247.jpg" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Egbuta ifeanyi chukwu&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" id="article-link-4787916"&gt;
          LensLink: An AI Camera Compatibility Agent Powered by Structured Sanity Content
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/sanitychallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;sanitychallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/sanity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;sanity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-story__hidden-navigation-link"&gt;LensLink: An AI Camera Compatibility Agent Powered by Structured Sanity Content&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
      &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-article__context-note crayons-article__context-note__feed"&gt;&lt;p&gt;Sanity Challenge Path One Submission&lt;/p&gt;

&lt;/a&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/egbutaify2ui" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129941%2F8bf9cbee-d180-43c2-9831-19d87a012247.jpg" alt="egbutaify2ui profile" class="crayons-avatar__image" width="460" height="460"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/egbutaify2ui" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Egbuta ifeanyi chukwu
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Egbuta ifeanyi chukwu
                
                
              
              &lt;div id="story-author-preview-content-4787916" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/egbutaify2ui" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4129941%2F8bf9cbee-d180-43c2-9831-19d87a012247.jpg" class="crayons-avatar__image" alt="" width="460" height="460"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Egbuta ifeanyi chukwu&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 2&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" id="article-link-4787916"&gt;
          LensLink: An AI Camera Compatibility Agent Powered by Structured Sanity Content
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/sanitychallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;sanitychallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/sanity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;sanity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/ai"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;ai&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt;&amp;nbsp;reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              3&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>agents</category>
      <category>ai</category>
      <category>devchallenge</category>
      <category>showdev</category>
    </item>
    <item>
      <title>LensLink: An AI Camera Compatibility Agent Powered by Structured Sanity Content</title>
      <dc:creator>Egbuta ifeanyi chukwu</dc:creator>
      <pubDate>Fri, 02 Oct 2026 14:32:18 +0000</pubDate>
      <link>https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l</link>
      <guid>https://dev.to/egbutaify2ui/lenslink-an-ai-camera-compatibility-agent-powered-by-structured-sanity-content-415l</guid>
      <description>&lt;p&gt;This is a submission for the Sanity Challenge, Path One: Ship an Agent That Queries Real Content.&lt;/p&gt;

&lt;p&gt;What I Built&lt;/p&gt;

&lt;p&gt;LensLink is an AI camera and lens compatibility agent that answers whether a lens can be used with a camera using structured Sanity content rather than relying only on generic model knowledge.&lt;/p&gt;

&lt;p&gt;The content models relationships between cameras, mounts, lenses, adapters, compatibility rules, and sources.&lt;/p&gt;

&lt;p&gt;Demo&lt;/p&gt;

&lt;p&gt;Live demo: &lt;a href="https://lenslink-civq.onrender.com" rel="noopener noreferrer"&gt;https://lenslink-civq.onrender.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try these:&lt;/p&gt;

&lt;p&gt;Is the Canon RF50mm F1.8 STM compatible with the Canon EOS R5?&lt;/p&gt;

&lt;p&gt;Can I use the Canon EF50mm f/1.8 STM on the Canon EOS R5?&lt;/p&gt;

&lt;p&gt;Is the Canon EF-M 22mm f/2 STM compatible with the Canon EOS R5?&lt;/p&gt;

&lt;p&gt;These demonstrate direct compatibility, adapter-required compatibility, and an unsupported/evidence-limited case.&lt;/p&gt;

&lt;p&gt;Code&lt;/p&gt;

&lt;p&gt;GitHub: &lt;a href="https://github.com/egbutaify2-ui/sanity-lenslink-agent" rel="noopener noreferrer"&gt;https://github.com/egbutaify2-ui/sanity-lenslink-agent&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How I Used Sanity&lt;/p&gt;

&lt;p&gt;I modeled the camera compatibility knowledge as structured Sanity content, including:&lt;/p&gt;

&lt;p&gt;Camera → Mount&lt;/p&gt;

&lt;p&gt;Lens → Mount&lt;/p&gt;

&lt;p&gt;Adapter → From Mount / To Mount&lt;/p&gt;

&lt;p&gt;Compatibility Rule → Camera / Lens / Adapter&lt;/p&gt;

&lt;p&gt;Source → supporting evidence&lt;/p&gt;

&lt;p&gt;I pointed Sanity Context at the LensLink Knowledge Base built from this structured content.&lt;/p&gt;

&lt;p&gt;The agent uses these Context MCP tools:&lt;/p&gt;

&lt;p&gt;initial_context&lt;/p&gt;

&lt;p&gt;knowledge_base_search&lt;/p&gt;

&lt;p&gt;knowledge_base_read&lt;/p&gt;

&lt;p&gt;For each compatibility question, LensLink retrieves the relevant structured records before Gemini generates the answer.&lt;/p&gt;

&lt;p&gt;For example, for the EF50mm + EOS R5 case, the agent can reason across:&lt;/p&gt;

&lt;p&gt;EOS R5 → Canon RF Mount&lt;/p&gt;

&lt;p&gt;EF50mm → Canon EF Mount&lt;/p&gt;

&lt;p&gt;Canon EF-EOS R Adapter → Canon EF → Canon RF&lt;/p&gt;

&lt;p&gt;This lets LensLink determine the documented adapter-required path instead of simply guessing from the product names.&lt;/p&gt;

&lt;p&gt;Sanity Project Details&lt;/p&gt;

&lt;p&gt;Project ID: kv3pdv23&lt;/p&gt;

&lt;p&gt;Dataset: production&lt;/p&gt;

&lt;p&gt;Agent Session&lt;/p&gt;

&lt;p&gt;Agent session evidence is optional, so I have not included a transcript in this submission.&lt;/p&gt;

&lt;h1&gt;
  
  
  sanitychallenge
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fetzvepxecc1coukd932z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fetzvepxecc1coukd932z.png" alt=" " width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
