<?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>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"&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=""&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="18" height="18"&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"&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=""&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="18" height="18"&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>
