<?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: GUSTAVOSIS</title>
    <description>The latest articles on DEV Community by GUSTAVOSIS (@gustavosis).</description>
    <link>https://dev.to/gustavosis</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%2F4112916%2F291fec6a-285c-4380-9cc3-e8366f518c2a.jpg</url>
      <title>DEV Community: GUSTAVOSIS</title>
      <link>https://dev.to/gustavosis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gustavosis"/>
    <language>en</language>
    <item>
      <title>How a Trailing Slash Broke SEO Across 72 Pages in My SaaS</title>
      <dc:creator>GUSTAVOSIS</dc:creator>
      <pubDate>Thu, 08 Oct 2026 20:31:53 +0000</pubDate>
      <link>https://dev.to/gustavosis/how-a-trailing-slash-broke-seo-across-72-pages-in-my-saas-g39</link>
      <guid>https://dev.to/gustavosis/how-a-trailing-slash-broke-seo-across-72-pages-in-my-saas-g39</guid>
      <description>&lt;p&gt;I was working on AIRUNCODE, an AI coding desktop application, when I ran into a problem that had absolutely nothing to do with AI.&lt;/p&gt;

&lt;p&gt;A trailing slash.&lt;/p&gt;

&lt;p&gt;Not a broken database. Not a failed deployment. Not an API outage.&lt;/p&gt;

&lt;p&gt;One character was enough to create an SEO problem across 72 pages.&lt;/p&gt;

&lt;p&gt;Everything appeared to be working&lt;/p&gt;

&lt;p&gt;AIRUNCODE has a multilingual website deployed through Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The website includes localized documentation and landing pages, with canonical URLs, hreflang annotations, a sitemap and internal navigation.&lt;/p&gt;

&lt;p&gt;The deployment worked. The pages loaded. The content was accessible.&lt;/p&gt;

&lt;p&gt;But Google Search Console was reporting pages as:&lt;/p&gt;

&lt;p&gt;Page with redirect.&lt;/p&gt;

&lt;p&gt;That was the clue.&lt;/p&gt;

&lt;p&gt;The problem was URL consistency&lt;/p&gt;

&lt;p&gt;Our static generator produced pages using this structure:&lt;/p&gt;

&lt;p&gt;/es/index.html&lt;/p&gt;

&lt;p&gt;Cloudflare served the corresponding directory route with a trailing slash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es/" rel="noopener noreferrer"&gt;https://airuncode.com/es/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But parts of our SEO metadata pointed to:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es" rel="noopener noreferrer"&gt;https://airuncode.com/es&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That difference matters.&lt;/p&gt;

&lt;p&gt;A request for "/es" could receive a permanent HTTP 308 redirect to "/es/".&lt;/p&gt;

&lt;p&gt;Meanwhile, our canonical tags, hreflang references, sitemap entries and internal links weren't consistently using the final destination.&lt;/p&gt;

&lt;p&gt;We had effectively created a situation where the URLs we were asking search engines to consider canonical were also URLs our hosting platform redirected.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;A redirect is not inherently an SEO problem.&lt;/p&gt;

&lt;p&gt;The problem is telling search engines that a redirecting URL is the preferred canonical destination.&lt;/p&gt;

&lt;p&gt;For example, this is inconsistent with a server that redirects "/es" to "/es/":&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;The metadata should instead point directly to the final URL:&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es/"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;And the same normalized URL should be used throughout the sitemap, hreflang annotations and internal links.&lt;/p&gt;

&lt;p&gt;Otherwise, search engines receive conflicting signals about which URL represents the page.&lt;/p&gt;

&lt;p&gt;The fix&lt;/p&gt;

&lt;p&gt;The solution wasn't to add more redirects.&lt;/p&gt;

&lt;p&gt;It was to establish one consistent URL convention and apply it throughout the static generation pipeline.&lt;/p&gt;

&lt;p&gt;For AIRUNCODE, that meant aligning the generated metadata with the trailing-slash routes served by Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The correction covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Canonical URLs&lt;/li&gt;
&lt;li&gt;Hreflang annotations&lt;/li&gt;
&lt;li&gt;Sitemap entries&lt;/li&gt;
&lt;li&gt;Internal links&lt;/li&gt;
&lt;li&gt;URL normalization across localized pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During validation, we checked 72 sitemap URLs and 216 hreflang references.&lt;/p&gt;

&lt;p&gt;We also addressed a related deployment issue by pinning Node.js 24 for the Cloudflare Pages build environment, where the SEO generation pipeline imports TypeScript directly.&lt;/p&gt;

&lt;p&gt;The changes were merged in "AIRUNCODE PR #107" (&lt;a href="https://github.com/gustavosis/AIruncode/pull/107" rel="noopener noreferrer"&gt;https://github.com/gustavosis/AIruncode/pull/107&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;What the fix doesn't prove&lt;/p&gt;

&lt;p&gt;Fixing the metadata doesn't mean Google immediately indexes every page.&lt;/p&gt;

&lt;p&gt;It removes an inconsistency that could interfere with indexing, but actual indexing still depends on Google's crawling and indexing decisions.&lt;/p&gt;

&lt;p&gt;I don't have evidence that all 72 pages have been indexed after this change, and I won't pretend otherwise.&lt;/p&gt;

&lt;p&gt;The deployment and validation results confirm that the URL generation problem was addressed. Search performance is a separate measurement.&lt;/p&gt;

&lt;p&gt;The lesson&lt;/p&gt;

&lt;p&gt;A successful deployment doesn't guarantee that your website is correctly configured for search engines.&lt;/p&gt;

&lt;p&gt;And SEO bugs don't always look like bugs.&lt;/p&gt;

&lt;p&gt;Sometimes the site loads perfectly, your build passes, and everything looks fine until you compare what your metadata says with what your server actually does.&lt;/p&gt;

&lt;p&gt;If you're deploying a multilingual static website on Cloudflare Pages, I'd recommend checking the final HTTP destination of every URL you put into your canonical tags and sitemap.&lt;/p&gt;

&lt;p&gt;Don't just verify that the page loads.&lt;/p&gt;

&lt;p&gt;Verify that the URL you're declaring as canonical is the URL the server actually serves.&lt;/p&gt;

&lt;p&gt;Why I'm sharing this&lt;/p&gt;

&lt;p&gt;I'm Gustavo, the developer of "AIRUNCODE" (&lt;a href="https://airuncode.com/" rel="noopener noreferrer"&gt;https://airuncode.com/&lt;/a&gt;), a desktop AI coding environment designed to keep project knowledge, Git workflows and deployment independent of any single AI model.&lt;/p&gt;

&lt;p&gt;Most of my development work involves AI agents, context management and software infrastructure.&lt;/p&gt;

&lt;p&gt;But building a real product also means dealing with the less glamorous parts: deployment pipelines, documentation, SEO, onboarding and the occasional character that decides to ruin your afternoon.&lt;/p&gt;

&lt;p&gt;The AI can help write the code.&lt;/p&gt;

&lt;p&gt;It doesn't excuse you from understanding what your infrastructure is actually doing.&lt;/p&gt;

&lt;p&gt;Have you ever shipped a deployment that worked perfectly for users but quietly broke something important for search engines?How a Trailing Slash Broke SEO Across 72 Pages in My SaaS&lt;/p&gt;

&lt;p&gt;I was working on AIRUNCODE, an AI coding desktop application, when I ran into a problem that had absolutely nothing to do with AI.&lt;/p&gt;

&lt;p&gt;A trailing slash.&lt;/p&gt;

&lt;p&gt;Not a broken database. Not a failed deployment. Not an API outage.&lt;/p&gt;

&lt;p&gt;One character was enough to create an SEO problem across 72 pages.&lt;/p&gt;

&lt;p&gt;Everything appeared to be working&lt;/p&gt;

&lt;p&gt;AIRUNCODE has a multilingual website deployed through Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The website includes localized documentation and landing pages, with canonical URLs, hreflang annotations, a sitemap and internal navigation.&lt;/p&gt;

&lt;p&gt;The deployment worked. The pages loaded. The content was accessible.&lt;/p&gt;

&lt;p&gt;But Google Search Console was reporting pages as:&lt;/p&gt;

&lt;p&gt;Page with redirect.&lt;/p&gt;

&lt;p&gt;That was the clue.&lt;/p&gt;

&lt;p&gt;The problem was URL consistency&lt;/p&gt;

&lt;p&gt;Our static generator produced pages using this structure:&lt;/p&gt;

&lt;p&gt;/es/index.html&lt;/p&gt;

&lt;p&gt;Cloudflare served the corresponding directory route with a trailing slash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es/" rel="noopener noreferrer"&gt;https://airuncode.com/es/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But parts of our SEO metadata pointed to:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es" rel="noopener noreferrer"&gt;https://airuncode.com/es&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That difference matters.&lt;/p&gt;

&lt;p&gt;A request for "/es" could receive a permanent HTTP 308 redirect to "/es/".&lt;/p&gt;

&lt;p&gt;Meanwhile, our canonical tags, hreflang references, sitemap entries and internal links weren't consistently using the final destination.&lt;/p&gt;

&lt;p&gt;We had effectively created a situation where the URLs we were asking search engines to consider canonical were also URLs our hosting platform redirected.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;A redirect is not inherently an SEO problem.&lt;/p&gt;

&lt;p&gt;The problem is telling search engines that a redirecting URL is the preferred canonical destination.&lt;/p&gt;

&lt;p&gt;For example, this is inconsistent with a server that redirects "/es" to "/es/":&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;The metadata should instead point directly to the final URL:&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es/"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;And the same normalized URL should be used throughout the sitemap, hreflang annotations and internal links.&lt;/p&gt;

&lt;p&gt;Otherwise, search engines receive conflicting signals about which URL represents the page.&lt;/p&gt;

&lt;p&gt;The fix&lt;/p&gt;

&lt;p&gt;The solution wasn't to add more redirects.&lt;/p&gt;

&lt;p&gt;It was to establish one consistent URL convention and apply it throughout the static generation pipeline.&lt;/p&gt;

&lt;p&gt;For AIRUNCODE, that meant aligning the generated metadata with the trailing-slash routes served by Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The correction covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Canonical URLs&lt;/li&gt;
&lt;li&gt;Hreflang annotations&lt;/li&gt;
&lt;li&gt;Sitemap entries&lt;/li&gt;
&lt;li&gt;Internal links&lt;/li&gt;
&lt;li&gt;URL normalization across localized pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During validation, we checked 72 sitemap URLs and 216 hreflang references.&lt;/p&gt;

&lt;p&gt;We also addressed a related deployment issue by pinning Node.js 24 for the Cloudflare Pages build environment, where the SEO generation pipeline imports TypeScript directly.&lt;/p&gt;

&lt;p&gt;The changes were merged in "AIRUNCODE PR #107" (&lt;a href="https://github.com/gustavosis/AIruncode/pull/107" rel="noopener noreferrer"&gt;https://github.com/gustavosis/AIruncode/pull/107&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;What the fix doesn't prove&lt;/p&gt;

&lt;p&gt;Fixing the metadata doesn't mean Google immediately indexes every page.&lt;/p&gt;

&lt;p&gt;It removes an inconsistency that could interfere with indexing, but actual indexing still depends on Google's crawling and indexing decisions.&lt;/p&gt;

&lt;p&gt;I don't have evidence that all 72 pages have been indexed after this change, and I won't pretend otherwise.&lt;/p&gt;

&lt;p&gt;The deployment and validation results confirm that the URL generation problem was addressed. Search performance is a separate measurement.&lt;/p&gt;

&lt;p&gt;The lesson&lt;/p&gt;

&lt;p&gt;A successful deployment doesn't guarantee that your website is correctly configured for search engines.&lt;/p&gt;

&lt;p&gt;And SEO bugs don't always look like bugs.&lt;/p&gt;

&lt;p&gt;Sometimes the site loads perfectly, your build passes, and everything looks fine until you compare what your metadata says with what your server actually does.&lt;/p&gt;

&lt;p&gt;If you're deploying a multilingual static website on Cloudflare Pages, I'd recommend checking the final HTTP destination of every URL you put into your canonical tags and sitemap.&lt;/p&gt;

&lt;p&gt;Don't just verify that the page loads.&lt;/p&gt;

&lt;p&gt;Verify that the URL you're declaring as canonical is the URL the server actually serves.&lt;/p&gt;

&lt;p&gt;Why I'm sharing this&lt;/p&gt;

&lt;p&gt;I'm Gustavo, the developer of "AIRUNCODE" (&lt;a href="https://airuncode.com/" rel="noopener noreferrer"&gt;https://airuncode.com/&lt;/a&gt;), a desktop AI coding environment designed to keep project knowledge, Git workflows and deployment independent of any single AI model.&lt;/p&gt;

&lt;p&gt;Most of my development work involves AI agents, context management and software infrastructure.&lt;/p&gt;

&lt;p&gt;But building a real product also means dealing with the less glamorous parts: deployment pipelines, documentation, SEO, onboarding and the occasional character that decides to ruin your afternoon.&lt;/p&gt;

&lt;p&gt;The AI can help write the code.&lt;/p&gt;

&lt;p&gt;It doesn't excuse you from understanding what your infrastructure is actually doing.&lt;/p&gt;

&lt;p&gt;Have you ever shipped a deployment that worked perfectly for users but quietly broke something important for search engines?How a Trailing Slash Broke SEO Across 72 Pages in My SaaS&lt;/p&gt;

&lt;p&gt;I was working on AIRUNCODE, an AI coding desktop application, when I ran into a problem that had absolutely nothing to do with AI.&lt;/p&gt;

&lt;p&gt;A trailing slash.&lt;/p&gt;

&lt;p&gt;Not a broken database. Not a failed deployment. Not an API outage.&lt;/p&gt;

&lt;p&gt;One character was enough to create an SEO problem across 72 pages.&lt;/p&gt;

&lt;p&gt;Everything appeared to be working&lt;/p&gt;

&lt;p&gt;AIRUNCODE has a multilingual website deployed through Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The website includes localized documentation and landing pages, with canonical URLs, hreflang annotations, a sitemap and internal navigation.&lt;/p&gt;

&lt;p&gt;The deployment worked. The pages loaded. The content was accessible.&lt;/p&gt;

&lt;p&gt;But Google Search Console was reporting pages as:&lt;/p&gt;

&lt;p&gt;Page with redirect.&lt;/p&gt;

&lt;p&gt;That was the clue.&lt;/p&gt;

&lt;p&gt;The problem was URL consistency&lt;/p&gt;

&lt;p&gt;Our static generator produced pages using this structure:&lt;/p&gt;

&lt;p&gt;/es/index.html&lt;/p&gt;

&lt;p&gt;Cloudflare served the corresponding directory route with a trailing slash:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es/" rel="noopener noreferrer"&gt;https://airuncode.com/es/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But parts of our SEO metadata pointed to:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com/es" rel="noopener noreferrer"&gt;https://airuncode.com/es&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That difference matters.&lt;/p&gt;

&lt;p&gt;A request for "/es" could receive a permanent HTTP 308 redirect to "/es/".&lt;/p&gt;

&lt;p&gt;Meanwhile, our canonical tags, hreflang references, sitemap entries and internal links weren't consistently using the final destination.&lt;/p&gt;

&lt;p&gt;We had effectively created a situation where the URLs we were asking search engines to consider canonical were also URLs our hosting platform redirected.&lt;/p&gt;

&lt;p&gt;Why this matters&lt;/p&gt;

&lt;p&gt;A redirect is not inherently an SEO problem.&lt;/p&gt;

&lt;p&gt;The problem is telling search engines that a redirecting URL is the preferred canonical destination.&lt;/p&gt;

&lt;p&gt;For example, this is inconsistent with a server that redirects "/es" to "/es/":&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;The metadata should instead point directly to the final URL:&lt;/p&gt;

&lt;p&gt;
  rel="canonical"&lt;br&gt;
  href="https://airuncode.com/es/"&lt;br&gt;
/&amp;gt;&lt;/p&gt;

&lt;p&gt;And the same normalized URL should be used throughout the sitemap, hreflang annotations and internal links.&lt;/p&gt;

&lt;p&gt;Otherwise, search engines receive conflicting signals about which URL represents the page.&lt;/p&gt;

&lt;p&gt;The fix&lt;/p&gt;

&lt;p&gt;The solution wasn't to add more redirects.&lt;/p&gt;

&lt;p&gt;It was to establish one consistent URL convention and apply it throughout the static generation pipeline.&lt;/p&gt;

&lt;p&gt;For AIRUNCODE, that meant aligning the generated metadata with the trailing-slash routes served by Cloudflare Pages.&lt;/p&gt;

&lt;p&gt;The correction covered:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Canonical URLs&lt;/li&gt;
&lt;li&gt;Hreflang annotations&lt;/li&gt;
&lt;li&gt;Sitemap entries&lt;/li&gt;
&lt;li&gt;Internal links&lt;/li&gt;
&lt;li&gt;URL normalization across localized pages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;During validation, we checked 72 sitemap URLs and 216 hreflang references.&lt;/p&gt;

&lt;p&gt;We also addressed a related deployment issue by pinning Node.js 24 for the Cloudflare Pages build environment, where the SEO generation pipeline imports TypeScript directly.&lt;/p&gt;

&lt;p&gt;The changes were merged in "AIRUNCODE PR #107" (&lt;a href="https://github.com/gustavosis/AIruncode/pull/107" rel="noopener noreferrer"&gt;https://github.com/gustavosis/AIruncode/pull/107&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;What the fix doesn't prove&lt;/p&gt;

&lt;p&gt;Fixing the metadata doesn't mean Google immediately indexes every page.&lt;/p&gt;

&lt;p&gt;It removes an inconsistency that could interfere with indexing, but actual indexing still depends on Google's crawling and indexing decisions.&lt;/p&gt;

&lt;p&gt;I don't have evidence that all 72 pages have been indexed after this change, and I won't pretend otherwise.&lt;/p&gt;

&lt;p&gt;The deployment and validation results confirm that the URL generation problem was addressed. Search performance is a separate measurement.&lt;/p&gt;

&lt;p&gt;The lesson&lt;/p&gt;

&lt;p&gt;A successful deployment doesn't guarantee that your website is correctly configured for search engines.&lt;/p&gt;

&lt;p&gt;And SEO bugs don't always look like bugs.&lt;/p&gt;

&lt;p&gt;Sometimes the site loads perfectly, your build passes, and everything looks fine until you compare what your metadata says with what your server actually does.&lt;/p&gt;

&lt;p&gt;If you're deploying a multilingual static website on Cloudflare Pages, I'd recommend checking the final HTTP destination of every URL you put into your canonical tags and sitemap.&lt;/p&gt;

&lt;p&gt;Don't just verify that the page loads.&lt;/p&gt;

&lt;p&gt;Verify that the URL you're declaring as canonical is the URL the server actually serves.&lt;/p&gt;

&lt;p&gt;Why I'm sharing this&lt;/p&gt;

&lt;p&gt;I'm Gustavo, the developer of "AIRUNCODE" (&lt;a href="https://airuncode.com/" rel="noopener noreferrer"&gt;https://airuncode.com/&lt;/a&gt;), a desktop AI coding environment designed to keep project knowledge, Git workflows and deployment independent of any single AI model.&lt;/p&gt;

&lt;p&gt;Most of my development work involves AI agents, context management and software infrastructure.&lt;/p&gt;

&lt;p&gt;But building a real product also means dealing with the less glamorous parts: deployment pipelines, documentation, SEO, onboarding and the occasional character that decides to ruin your afternoon.&lt;/p&gt;

&lt;p&gt;The AI can help write the code.&lt;/p&gt;

&lt;p&gt;It doesn't excuse you from understanding what your infrastructure is actually doing.&lt;/p&gt;

&lt;p&gt;Have you ever shipped a deployment that worked perfectly for users but quietly broke something important for search engines?](&lt;a href="http://www.Airuncode.com" rel="noopener noreferrer"&gt;www.Airuncode.com&lt;/a&gt; )&lt;/p&gt;

</description>
      <category>saas</category>
      <category>seo</category>
      <category>webdev</category>
    </item>
    <item>
      <title>AIRUNCODE 1.5.4 is here and it's on 🔥</title>
      <dc:creator>GUSTAVOSIS</dc:creator>
      <pubDate>Mon, 05 Oct 2026 16:49:11 +0000</pubDate>
      <link>https://dev.to/gustavosis/airuncode-154-is-here-and-its-on-oih</link>
      <guid>https://dev.to/gustavosis/airuncode-154-is-here-and-its-on-oih</guid>
      <description>&lt;p&gt;I've been changing something fundamental in AIRUNCODE.&lt;/p&gt;

&lt;p&gt;I don't think the frontier model should do all the work.&lt;/p&gt;

&lt;p&gt;Right now we have Claude, GPT, Chinese models, API endpoints, local models, different subscriptions, different context windows and completely different pricing.&lt;/p&gt;

&lt;p&gt;But most software treats the model as the product.&lt;/p&gt;

&lt;p&gt;I'm trying to make the model replaceable.&lt;/p&gt;

&lt;p&gt;In AIRUNCODE, different models can operate inside the same environment and use the same tools. A frontier model can solve the difficult part of a problem, while a smaller or local model continues the workflow instead of burning expensive tokens doing work it is perfectly capable of doing locally.&lt;/p&gt;

&lt;p&gt;Basically: don't pay the architect to carry every brick.&lt;/p&gt;

&lt;p&gt;This becomes much more interesting when the environment itself is programmable.&lt;/p&gt;

&lt;p&gt;I've now connected AIRUNCODE's graphical engine deeply enough that models can build, compile, inspect the result, modify it and compile again.&lt;/p&gt;

&lt;p&gt;That's how I think generative software should work.&lt;/p&gt;

&lt;p&gt;Not:&lt;/p&gt;

&lt;p&gt;prompt → generate demo → congratulations.&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;p&gt;build → compile → inspect → correct → rebuild → repeat.&lt;/p&gt;

&lt;p&gt;A sample should be something the system can continue working on until it becomes an actual product.&lt;/p&gt;

&lt;p&gt;The easiest analogy I have is LEGO.&lt;/p&gt;

&lt;p&gt;I don't want to give the model a finished LEGO set and permission to move three pieces.&lt;/p&gt;

&lt;p&gt;I want to give it the box, the pieces, the tools and enough understanding of the environment to build what it needs.&lt;/p&gt;

&lt;p&gt;And coding is probably only the first environment where I'm testing this idea.&lt;/p&gt;

&lt;p&gt;The next thing I want to explore is simulation.&lt;/p&gt;

&lt;p&gt;Imagine a robotics lab where thousands of simulated attempts aren't evaluated only by a reward function.&lt;/p&gt;

&lt;p&gt;A frontier model can observe a robot performing a complex procedure, understand what it is trying to accomplish, identify where the procedure went wrong and provide corrective supervision.&lt;/p&gt;

&lt;p&gt;Not just:&lt;/p&gt;

&lt;p&gt;failed → -1&lt;br&gt;
succeeded → +1&lt;/p&gt;

&lt;p&gt;But:&lt;/p&gt;

&lt;p&gt;you grabbed the correct component, your position was correct, but step 4 happened before the safety verification required in step 3.&lt;/p&gt;

&lt;p&gt;That becomes especially interesting for procedural skills where the order, context and rules matter as much as reaching the final state.&lt;/p&gt;

&lt;p&gt;Frontier intelligence becomes the teacher.&lt;/p&gt;

&lt;p&gt;Smaller models become workers.&lt;/p&gt;

&lt;p&gt;Simulation provides experience.&lt;/p&gt;

&lt;p&gt;And the environment keeps the knowledge instead of forcing every new model to rediscover everything from zero.&lt;/p&gt;

&lt;p&gt;That's the direction I'm exploring with AIRUNCODE.&lt;/p&gt;

&lt;p&gt;The model shouldn't own the workflow.&lt;/p&gt;

&lt;p&gt;The environment should.&lt;a href="//Airuncode.com"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
      <category>devops</category>
    </item>
    <item>
      <title>Why I’m building an AI coding runtime that doesn’t depend on one model</title>
      <dc:creator>GUSTAVOSIS</dc:creator>
      <pubDate>Mon, 07 Sep 2026 00:02:41 +0000</pubDate>
      <link>https://dev.to/gustavosis/why-im-building-an-ai-coding-runtime-that-doesnt-depend-on-one-model-3k0a</link>
      <guid>https://dev.to/gustavosis/why-im-building-an-ai-coding-runtime-that-doesnt-depend-on-one-model-3k0a</guid>
      <description>&lt;p&gt;AI coding tools are getting better very fast, but there’s one architectural decision I don’t really like: most of them are deeply tied to a specific model, provider, or workflow.&lt;/p&gt;

&lt;p&gt;That works well while that model is the best option.&lt;/p&gt;

&lt;p&gt;But models change constantly.&lt;/p&gt;

&lt;p&gt;One month one provider is ahead, then another gets cheaper, local models improve, pricing changes, limits change, and suddenly your whole workflow is attached to a different stack.&lt;/p&gt;

&lt;p&gt;That’s the problem I’m trying to solve with Airuncode.&lt;/p&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%2Fszof5s3yu5ewrk636aok.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%2Fszof5s3yu5ewrk636aok.png" alt=" " width="800" height="432"&gt;&lt;/a&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%2Fbtff7ol7fpgic8faqvup.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%2Fbtff7ol7fpgic8faqvup.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;``&lt;br&gt;
The idea is simple:&lt;/p&gt;

&lt;p&gt;The runtime should stay stable. The model should be replaceable.&lt;/p&gt;

&lt;p&gt;Airuncode runs locally and acts as the execution layer around the agent. The model is just one component of that system.&lt;/p&gt;

&lt;p&gt;So instead of rebuilding your workflow around each provider, the runtime handles things like:&lt;/p&gt;

&lt;p&gt;project files&lt;br&gt;
terminal access&lt;br&gt;
git&lt;br&gt;
tests&lt;br&gt;
execution&lt;br&gt;
agent orchestration&lt;br&gt;
context&lt;br&gt;
provider switching&lt;/p&gt;

&lt;p&gt;You can use cloud models, your own API keys, or local models depending on the task.&lt;/p&gt;

&lt;p&gt;I think this matters because developers are going to use multiple models, not one.&lt;/p&gt;

&lt;p&gt;Maybe you want a frontier model for architecture, a cheaper model for repetitive work, and a local model when privacy or cost matters.&lt;/p&gt;

&lt;p&gt;The workflow shouldn’t have to change every time.&lt;/p&gt;

&lt;p&gt;I’m also experimenting with a second idea inside Airuncode called V-CORE.&lt;/p&gt;

&lt;p&gt;Instead of asking an AI agent to recreate rendering, physics, terrain, animation, and other low-level systems from scratch, V-CORE gives the agent native capabilities it can build on top of.&lt;/p&gt;

&lt;p&gt;That leads to a broader question I’m interested in:&lt;/p&gt;

&lt;p&gt;How much of an agent’s capability comes from the model, and how much comes from the runtime and tools around it?&lt;/p&gt;

&lt;p&gt;My suspicion is that the runtime matters much more than people currently give it credit for.&lt;/p&gt;

&lt;p&gt;Airuncode is already usable, and I’m building it in public:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://airuncode.com" rel="noopener noreferrer"&gt;https://airuncode.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I’d especially like feedback from people using Cursor, Claude Code, Codex, OpenCode or local models every day.&lt;/p&gt;

&lt;p&gt;Do you actually want model independence, or would you rather use a coding agent that is deeply optimized around one provider?&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>coding</category>
      <category>development</category>
    </item>
  </channel>
</rss>
