<?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: Derek Kahre</title>
    <description>The latest articles on DEV Community by Derek Kahre (@derek_kahre).</description>
    <link>https://dev.to/derek_kahre</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%2F4009606%2Fe4840361-ef94-4a95-ab28-215765c97684.jpg</url>
      <title>DEV Community: Derek Kahre</title>
      <link>https://dev.to/derek_kahre</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/derek_kahre"/>
    <language>en</language>
    <item>
      <title>Building with AI, Engineering the Fix: Shipping a Chatbot to GitHub Pages</title>
      <dc:creator>Derek Kahre</dc:creator>
      <pubDate>Sat, 11 Jul 2026 17:07:10 +0000</pubDate>
      <link>https://dev.to/derek_kahre/building-with-ai-engineering-the-fix-shipping-a-chatbot-to-github-pages-idk</link>
      <guid>https://dev.to/derek_kahre/building-with-ai-engineering-the-fix-shipping-a-chatbot-to-github-pages-idk</guid>
      <description>&lt;p&gt;"I’ve been getting back into flexing my developer muscles after an extended break, and I thought what better way to start than building something with today’s AI tools? The landscape has changed so much since I last coded—I'm so glad I don't have to scour dozens of search results just to find a simple fix anymore.&lt;/p&gt;




&lt;h2&gt;
  
  
  The 20-Minute Sandbox Build
&lt;/h2&gt;

&lt;p&gt;To kick things off, I decided to build a basic chatbot. Using Bolt.new, I prompted what I wanted, and it compiled the initial code in about 20 minutes.&lt;/p&gt;




&lt;h2&gt;
  
  
  Moving to Production: Where the Real Engineering Began
&lt;/h2&gt;

&lt;p&gt;Of course, getting it working in Bolt’s local sandbox was the easy part. The real work started when I tried to deploy it to my GitHub repository. Because GitHub Pages handles paths differently, the build broke immediately.&lt;/p&gt;

&lt;p&gt;That's where the modern AI workflow really shines. Instead of slogging through endless forums for "why is my path breaking," I was able to use AI to help diagnose the configuration issues, fix the relative paths in my JSON objects, and securely wire up my Supabase backend token.&lt;/p&gt;




&lt;h2&gt;
  
  
  Check Out the Project
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://derekkahre-ux.github.io/church-chat-bot/" rel="noopener noreferrer"&gt;You can check out the project here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For those of you who have been in the game for a while, what has it been like adapting your workflow to AI development versus the old way of doing things?"&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>webdev</category>
      <category>ai</category>
      <category>career</category>
    </item>
    <item>
      <title>Fixing the "Invisible" Accessibility Bug: Cumulative Layout Shift (CLS)</title>
      <dc:creator>Derek Kahre</dc:creator>
      <pubDate>Mon, 06 Jul 2026 23:11:00 +0000</pubDate>
      <link>https://dev.to/derek_kahre/fixing-the-invisible-accessibility-bug-cumulative-layout-shift-cls-538p</link>
      <guid>https://dev.to/derek_kahre/fixing-the-invisible-accessibility-bug-cumulative-layout-shift-cls-538p</guid>
      <description>&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%2Fgzng1nwfxdjl9dteyozk.jpg" 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%2Fgzng1nwfxdjl9dteyozk.jpg" alt="A person looking at and using a Computer" width="640" height="960"&gt;&lt;/a&gt;&lt;br&gt;
When we think about web accessibility, we usually think about adding alt text to images or ensuring color contrast is high enough. But this week, while building out the skeleton for a responsive, accessible toy store project, a strict scanner taught me about an "invisible" accessibility bug that completely changes how a page feels to a user.&lt;/p&gt;

&lt;p&gt;I deployed my initial HTML structure to GitHub Pages and ran it through Powermapper (SortSite). While basic checkers gave me a pass, Powermapper flagged a warning about missing image width and height dimensions.&lt;/p&gt;

&lt;p&gt;At first glance, it feels like a minor layout issue, but it's actually an accessibility hurdle known as Cumulative Layout Shift (CLS).&lt;/p&gt;

&lt;p&gt;The Problem: Jumping Layouts&lt;br&gt;
When you omit image dimensions, the browser assumes the image takes up 0 pixels of space until the file completely downloads. The moment the image pops in, it violently pushes all the content below it down the screen.&lt;/p&gt;

&lt;p&gt;For a user utilizing screen magnification software, or someone with motor-control challenges trying to click a button, that sudden "jump" can make them completely lose their place or accidentally click the wrong element.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "A-Ha" Fix&lt;/strong&gt;&lt;br&gt;
To fix this without breaking your responsive design on mobile, you have to let the browser pre-calculate the aspect ratio box before the image loads. You do this by combining native HTML attributes with a tiny splash of CSS.&lt;/p&gt;

&lt;p&gt;Here is the exact pattern that cleared the error:&lt;/p&gt;

&lt;p&gt;HTML&lt;br&gt;
&lt;br&gt;
  &amp;lt;br&amp;gt;
    /* This ensures the image stays fluid and shrinks on mobile screens */&amp;lt;br&amp;gt;
    img { &amp;lt;br&amp;gt;
      max-width: 100%; &amp;lt;br&amp;gt;
      height: auto; &amp;lt;br&amp;gt;
    }&amp;lt;br&amp;gt;
  &lt;br&gt;
&lt;br&gt;
&lt;br&gt;
  &amp;lt;!-- Hardcoding the native dimensions lets the browser reserve the exact space --&amp;gt;&lt;br&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%2Fky239ttzju2vw9ik7s67.JPG" 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%2Fky239ttzju2vw9ik7s67.JPG" width="800" height="1067"&gt;&lt;/a&gt;
       alt="Set of rocks with distinct tactile textures." &lt;br&gt;
       width="300" &lt;br&gt;
       height="300"&amp;gt;&lt;br&gt;
&lt;br&gt;
By putting the dimensions back in the HTML, the browser leaves a perfect placeholder box open while the image downloads. No shifting, no jumping, and a completely stable reading experience.&lt;/p&gt;

&lt;p&gt;If you are auditing your own junior projects, I highly recommend throwing them into a stricter scanner like Powermapper to see what layout vulnerabilities might be hiding in plain sight.&lt;/p&gt;

&lt;p&gt;Hopefully, this saves someone else a few hours of head-scratching today! What's an "invisible" bug a compiler or scanner has caught for you recently?&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>a11y</category>
    </item>
  </channel>
</rss>
