<?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: Swapnoneel Saha</title>
    <description>The latest articles on DEV Community by Swapnoneel Saha (@swapnoneel123).</description>
    <link>https://dev.to/swapnoneel123</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%2F1320336%2Fc601d462-6b3a-47ac-b0ae-889c5fc913d1.png</url>
      <title>DEV Community: Swapnoneel Saha</title>
      <link>https://dev.to/swapnoneel123</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/swapnoneel123"/>
    <language>en</language>
    <item>
      <title>Nobody's Testing AI Coding Agents Enough</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Thu, 23 Jul 2026 22:52:30 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/nobodys-testing-ai-coding-agents-enough-4bo</link>
      <guid>https://dev.to/swapnoneel123/nobodys-testing-ai-coding-agents-enough-4bo</guid>
      <description>&lt;p&gt;Code review used to be the part everyone complained about. Slow, nitpicky, the thing standing between you and shipping.&lt;/p&gt;

&lt;p&gt;And for a while, AI coding agents made it feel optional. The agent writes the code, the code compiles, the tests pass, ship it.&lt;/p&gt;

&lt;p&gt;But have you ever wondered, what does that actually look like once you zoom out to the whole industry, and not just your own repo? Not great. Somewhere between 40 to 62% of AI-generated code got shipped with security or design flaws by March 2026, and roughly one in five breaches this year traces back to AI-written code, &lt;a href="https://futurumgroup.com/insights/why-ai-coding-agents-need-an-independent-review-layer-trust-not-output-is-the-bottleneck/" rel="noopener noreferrer"&gt;according to industry analysis on the verification gap&lt;/a&gt;. Code generation got really fast. Verification did not pick up the same pace. Testing AI coding agents properly is where that gap actually lives, whether your team has staffed for it or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually breaking?
&lt;/h2&gt;

&lt;p&gt;Let's get specific.&lt;/p&gt;

&lt;p&gt;In late June 2026, security researchers at Adversa AI disclosed something called GuardFall, a shell-interpretation bypass that worked against 10 of 11 popular open-source AI coding and computer-use agents, &lt;a href="https://securityaffairs.com/194546/ai/guardfall-flaw-hits-10-of-11-popular-open-source-ai-agents.html" rel="noopener noreferrer"&gt;including Aider, Cline, Goose, and OpenHands&lt;/a&gt;. The agents were checking the raw command text for danger before running it, but bash rewrites that text through quoting, substitution, and expansion before it actually executes. So a command that looks harmless to the safety check can still detonate once the shell gets its hands on it. And only one tool in the survey actually held up!&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%2Fdqrhjxe6vv42kpavy1i7.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%2Fdqrhjxe6vv42kpavy1i7.png" alt="The check reads the label. It never sees what the parcel turns into." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And it's not just an edge case for people running agents locally. A scan of 5,600 vibe-coded apps already in production &lt;a href="https://digitalbiztalk.com/article/vibe-coding-is-killing-open-source-the-2026-developer-crisis" rel="noopener noreferrer"&gt;found 2,000 highly critical vulnerabilities and 400 exposed secrets&lt;/a&gt;, some of them exposing medical records and payment information. Georgia Tech's Vibe Security Radar tracked the trend line getting worse, and not better: 6 confirmed AI-generated vulnerabilities in January 2026, 15 in February, 35 in March.&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%2Fo2y40tpd92ygq15d0kmv.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%2Fo2y40tpd92ygq15d0kmv.png" alt="Even Kernel doesn't like where this evidence is pointing." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why is this happening if the models got so much better?
&lt;/h2&gt;

&lt;p&gt;Well, that's exactly the part people get backwards.&lt;/p&gt;

&lt;p&gt;Better models didn't remove the need for verification, they just moved the bottleneck. Generating a solution stopped being the hard part a while ago. Deciding whether you can actually trust that solution is the hard part now, and &lt;a href="https://futurumgroup.com/insights/why-ai-coding-agents-need-an-independent-review-layer-trust-not-output-is-the-bottleneck/" rel="noopener noreferrer"&gt;55.4% of enterprise decision-makers already name agent reliability and hallucination management as their top production challenge&lt;/a&gt;. The code compiles, the tests pass, and reviewers still have to reconstruct what the change was even trying to do before they can tell if it's safe.&lt;/p&gt;

&lt;h2&gt;
  
  
  I've actually had this job, and it's not glamorous
&lt;/h2&gt;

&lt;p&gt;I'm not writing this from the outside. I recently worked with an early-stage startup that's figuring out their PMF before going full-throttle. I was the first layer of internal testing for the product, which was a self-evolving super agent (keeping it a bit vague, can't reveal more than this lol), and my entire job was catching bugs before the core users on it ever saw them. I also built an internal tool which was an agent chain based on strict rules that pulled the agent's data logs and evaluated them to ensure that the self-learning from feedback and real-life scenarios aren't being hallucinated, and if the agent is trying to manipulate the guidelines itself. Also, I generated reports on latency and probable slowdowns, because "it seems to be working" isn't a testing strategy, numbers are.&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%2Fmdbtkslryias3nlhhl09.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%2Fmdbtkslryias3nlhhl09.png" alt="Someone has to stand between the output and the door. That someone had a job title." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before that, I spent time at Keploy building and improving sample apps specifically to demo API testing. So when I say testing agent output is a real, staffable job and not a checkbox, that's not a hot take pulled from a headline, it's what I got paid to do.&lt;/p&gt;

&lt;p&gt;And to be fair to the agents themselves: they are genuinely fast, and genuinely useful. I use Claude Code, Antigravity and Codex daily, and I'm not about to pretend otherwise. The problem was never that the code they write is bad on average. The problem is that "on average" is exactly the wrong bar for security and correctness, because the failures cluster in the 5-10% you didn't specifically check.&lt;/p&gt;

&lt;p&gt;(And yes, this post was drafted by an agent skill I built, and I'm going to go through and edit it before it goes anywhere near publish. That's not irony, that's the actual point: the draft can get the facts and the structure right, but deciding which of my receipts actually belong here, and how hard to steelman the agents, is still a job for a human. Mine, in this case.)&lt;/p&gt;

&lt;h2&gt;
  
  
  What should you actually do differently?
&lt;/h2&gt;

&lt;p&gt;Stop reviewing agent output the way you review your own code, and start reviewing it the way you'd review a fast junior developer's very first PR: assume competence, verify everything, especially the parts that touch execution.&lt;/p&gt;

&lt;p&gt;Concretely: never let an agent pipe raw, unreviewed strings into a shell without a real evaluator in between, GuardFall exists because teams assumed string-matching was enough. Budget actual human review time as a fixed cost of using these tools, not a nice-to-have. And track your own vulnerability trend line the way Georgia Tech tracked the industry's, because "it hasn't broken yet" is not the same thing as "it's fine."&lt;/p&gt;

&lt;p&gt;And testing an agent isn't only about catching bugs before they ship, it's also about watching what the agent quietly costs you over time. That's exactly why I built that internal latency-tracking tool in the first place, numbers on slowdowns catch problems long before a user ever complains. If you don't want to build that yourself, tools are starting to do it for you: I recently found &lt;a href="https://www.getmaxim.ai/bifrost" rel="noopener noreferrer"&gt;Bifrost&lt;/a&gt; from Maxim AI, a gateway that sits between you and your coding agents and gives you latency, cost, and token usage in one dashboard, plus fallback logic for when a model starts misbehaving. Worth a look if you're juggling as many agents and LLMs as most of us are these days.&lt;/p&gt;

&lt;p&gt;Do use these agents. Really do, they're not going anywhere and they've earned their place in my own workflow. But treat testing them as the actual job, not the afterthought, because right now, for most teams, it still is one.&lt;/p&gt;

&lt;p&gt;If you're building your own testing layer for an AI tool, or you've been burned by one that didn't have one, I'd genuinely like to hear about it, drop it in the comments. I write more about agent tooling and building with AI at &lt;a href="https://www.swapnoneel.site" rel="noopener noreferrer"&gt;swapnoneel.site&lt;/a&gt;, including &lt;a href="https://www.swapnoneel.site/blog/make-ai-write-in-your-voice" rel="noopener noreferrer"&gt;how I built a self-improving writing agent&lt;/a&gt;, and you can find me on &lt;a href="https://x.com/swapnoneel123" rel="noopener noreferrer"&gt;X (swapnoneel123)&lt;/a&gt;.&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%2F8ykh56b7eagvqvr8gnl3.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%2F8ykh56b7eagvqvr8gnl3.png" alt="Your turn. What did your testing layer catch?" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>security</category>
      <category>agents</category>
    </item>
    <item>
      <title>Kimi K3 and the Rise of Open Weight Frontier Models</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Thu, 23 Jul 2026 12:09:46 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/kimi-k3-and-the-rise-of-open-weight-frontier-models-241h</link>
      <guid>https://dev.to/swapnoneel123/kimi-k3-and-the-rise-of-open-weight-frontier-models-241h</guid>
      <description>&lt;p&gt;Apparently everyone is talking about the launch of Kimi K3 right now. So I wanted to share my two cents on this, especially for those who consider this to be just a "cheap chinese model". Because honestly, that joke doesn't land well anymore.&lt;/p&gt;

&lt;p&gt;Here is the actual reason why I'm saying so. Moonshot AI released Kimi K3 on July 16, 2026, a 2.8 trillion parameter open weight model, and it landed at #4 on the Artificial Analysis Intelligence Index, just behind Claude Fable 5 and GPT-5.6 Sol, and ahead of Claude Opus 4.8. Full weights are dropping on July 27. Pricing is 3USD and 15USD per million input and output tokens respectively, a fraction of what the closed labs charge. That's why open weight frontier models are suddenly a real conversation and not just a budget footnote.&lt;/p&gt;

&lt;h2&gt;
  
  
  The old belief was that closed labs own the frontier
&lt;/h2&gt;

&lt;p&gt;For most of the last two years, the assumption was simple: if you want the smartest model, you pay OpenAI or Anthropic, period. Open weight models were the budget option, good enough for chatbots and side projects, but never good enough for the actual frontier.&lt;/p&gt;

&lt;p&gt;But those walls started shaking when we got GLM 5.2 from Z.ai, just a few weeks ago. And then came Kimi K3, which is the moment that assumption stopped being obviously true. Not because it beats GPT-5.6 Sol and Fable 5 outright, it doesn't, but because the gap has gotten small enough that "just use the closed model" is no longer an automatic decision. According to Nathan Lambert's analysis on Interconnects, the gap between open and closed, and between US and Chinese labs, has shrunk from a debated 6 to 9 months down to something closer to 3 to 5 months (&lt;a href="https://www.interconnects.ai/p/kimi-k3-the-open-weights-escalation" rel="noopener noreferrer"&gt;interconnects.ai&lt;/a&gt;).&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%2Fn2oyhuh4p1el7u73bhrn.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%2Fn2oyhuh4p1el7u73bhrn.png" alt="The wall didn't fall. It just isn't airtight anymore." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What's actually inside Kimi K3
&lt;/h2&gt;

&lt;p&gt;The specs are genuinely wild. It's a mixture-of-experts model with 896 experts, and it only activates 16 of them per token, so despite being 2.8 trillion parameters total, the compute cost per token stays manageable (&lt;a href="https://www.kimi.com/blog/kimi-k3" rel="noopener noreferrer"&gt;kimi.com&lt;/a&gt;). It ships with a 1 million token context window, native vision, and a new attention mechanism called Kimi Delta Attention.&lt;/p&gt;

&lt;p&gt;On raw benchmarks, K3 takes first place on Program Bench, SWE Marathon, BrowseComp, and Frontend Code Arena. Program Bench specifically jumped from 53.6 to 77.8 over its predecessor, a 45% jump (&lt;a href="https://wan27.org/blog/kimi-k3-benchmarks" rel="noopener noreferrer"&gt;wan27.org&lt;/a&gt;). In blind developer testing on Arena, people preferred Kimi K3 over both Fable 5 and GPT-5.6 Sol for front-end coding specifically (&lt;a href="https://codersera.com/blog/kimi-k3-benchmarks-comparison-2026/" rel="noopener noreferrer"&gt;codersera.com&lt;/a&gt;).&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%2F8e30q00qh3ztb3x6cfzi.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%2F8e30q00qh3ztb3x6cfzi.png" alt="896 experts on the wall, and only 16 of them ever have to show up for work." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Does that mean the closed labs are done?
&lt;/h2&gt;

&lt;p&gt;Well, not entirely. GPT-5.6 Sol and Fable 5 still sit ahead on the general Intelligence Index, around 59 and 60 versus K3's 57. And Moonshot's own success became a problem within days. Demand strained their compute capacity hard enough that they had to pause new subscriptions. That's not a small footnote. Running a 2.8T model at scale is expensive even when you're the one giving the weights away for free, and it shows that "open" doesn't automatically mean "infinitely available."&lt;/p&gt;

&lt;p&gt;And here's the honest catch on price too. K3 spends way more tokens in reasoning. So, Sol and Fable both tend to get to an answer in noticeably fewer tokens than K3 needs for the same task, so once you look at cost per task instead of cost per million tokens, the gap almost closes. The sticker price makes K3 look like a steal, the actual bill at the end of the month is a lot closer.&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%2Fuinoqqnkifadoeg9a002.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%2Fuinoqqnkifadoeg9a002.png" alt="Weigh cost per task instead of cost per token, and the scale barely tips." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open weight frontier models actually matter to you
&lt;/h2&gt;

&lt;p&gt;I ship AI products for a living, and most of my projects live and die by which model I pick underneath them, and cost per task isn't some abstract line item for me, it directly decides whether a feature is worth shipping. When a model that's a few points behind on intelligence lands close on actual cost and you can self-host it once the weights are out, that's not a footnote, that's a real decision every team building on LLMs now has to make. I ran into a version of this same tradeoff when I wrote about &lt;a href="https://www.swapnoneel.site/blog/testing-ai-coding-agents" rel="noopener noreferrer"&gt;testing AI coding agents&lt;/a&gt;, model choice was never just about the leaderboard, it was about what actually held up under my own usage.&lt;/p&gt;

&lt;p&gt;And there's a bigger reason than cost. A model whose weights you hold cannot be shut off by someone else's pricing decision, rate limit, or policy change. That's the sovereignty argument people keep making about open weight models, and it stops being theoretical the moment your product depends on an API you don't control.&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%2Fttfanykfdtcz6ice3x64.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%2Fttfanykfdtcz6ice3x64.png" alt="A borrowed key opens the box until someone decides it doesn't." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The verdict
&lt;/h2&gt;

&lt;p&gt;Open weight models are no longer the consolation prize. Kimi K3 is proof that you can be a handful of benchmark points behind the absolute frontier and still be the more rational choice for a huge chunk of real work, especially coding. GPT-5.6 Sol and Fable 5 are still the smartest models on the planet right now, and if you need every last point of reasoning, use them. But if you want to not depend on someone else's uptime, and you're fine with the actual bill landing close either way, going and actually trying K3 instead of assuming the closed model wins by default is worth your afternoon.&lt;/p&gt;

&lt;p&gt;That's just me though, and your workflow might be different depending on what you're actually building.&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%2Faz7um68ztq915wabjbf0.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%2Faz7um68ztq915wabjbf0.png" alt="Your turn. Close the loop and tell me what you picked." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're experimenting with model choice for your own AI products, drop a comment with which model you've moved to since K3 landed.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>opensource</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Posted about the same in the r/nextjs subreddit and daily.dev, and people are really engaging with it there. Got lots of comments and 50k views. If you are interested in this, go and read the blog.</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Thu, 16 Jul 2026 13:55:49 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/posted-about-the-same-in-the-rnextjs-subreddit-and-dailydev-and-people-are-really-engaging-with-1efa</link>
      <guid>https://dev.to/swapnoneel123/posted-about-the-same-in-the-rnextjs-subreddit-and-dailydev-and-people-are-really-engaging-with-1efa</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6" class="crayons-story__hidden-navigation-link"&gt;Why Vercel is still my default for shipping frontend projects&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="/swapnoneel123" 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%2F1320336%2Fc601d462-6b3a-47ac-b0ae-889c5fc913d1.png" alt="swapnoneel123 profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/swapnoneel123" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Swapnoneel Saha
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Swapnoneel Saha
                
              
              &lt;div id="story-author-preview-content-4134935" 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="/swapnoneel123" 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%2F1320336%2Fc601d462-6b3a-47ac-b0ae-889c5fc913d1.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Swapnoneel Saha&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/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 13&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/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6" id="article-link-4134935"&gt;
          Why Vercel is still my default for shipping frontend projects
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/discuss"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;discuss&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;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/reviews"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;reviews&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/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6" 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;10&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/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6#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;
            10 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

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

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Why Vercel is still my default for shipping frontend projects</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Mon, 13 Jul 2026 15:39:49 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6</link>
      <guid>https://dev.to/swapnoneel123/why-vercel-is-still-my-default-for-shipping-frontend-projects-2dd6</guid>
      <description>&lt;p&gt;Last week, I was working on a client project with a fast approaching deadline. The work had already piled up, so I had to move really fast; I was constantly making changes, pushing them straight to GitHub, checking them through the preview link of the deployment, and going straight to the next task. And while doing so, I barely stopped and worried about hosting, because Vercel was already connected. And after successfully delivering the project within the stipulated time, it hit me that I probably could not have moved that quickly if the deployment itself had been another thing to manage.&lt;/p&gt;

&lt;p&gt;That made me realise: Vercel has been my default choice for a long time, and it is not because I am completely locked into the platform. From time to time, I still reach for other services like Cloudflare, Netlify, and Railway as well, but for my personal projects and fast development cycles, I somehow always end up coming back to Vercel.&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%2Ffhi0hdheml3nyt0vahqv.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%2Ffhi0hdheml3nyt0vahqv.png" alt="Easy deployment using Vercel" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I mostly use Next.js, so I know the tech nerds out there will assume that, it is the entire reason why I choose Vercel, and that's a fair assumption to make, because it's partly true. Vercel develops and maintains Next.js, so of course it provides the best hosting for Next.js, but that's just one side of the coin.&lt;/p&gt;

&lt;h2&gt;
  
  
  How I use Vercel in my projects
&lt;/h2&gt;

&lt;p&gt;If you check the projects section on &lt;a href="https://www.swapnoneel.site/work" rel="noopener noreferrer"&gt;my portfolio&lt;/a&gt;, you will find that most of the web projects I currently have are deployed through Vercel. And not all of them are Next.js applications; you will find projects with React, TanStack tooling, Node.js, and Bun as well. These are not just weekend experiments or hobby projects, either. Some of them have real users as well! Let me give you &lt;a href="https://scholarian.vercel.app" rel="noopener noreferrer"&gt;Scholarian&lt;/a&gt; as an example. It is a research platform built on Next.js, and according to my latest project analytics, it currently has more than 75 active users and over 700 chat sessions.&lt;/p&gt;

&lt;p&gt;The funny thing is that I did not think twice about deploying most of these projects. I connected the repository, gave Vercel the required environment variables, and pushed the code. That absence of thought is the whole point. But then again, I also use Cloudflare Pages and Railway for actual work, so this is not a “Vercel is perfect and everything else is bad” argument. I have reasons for coming back, but I also know where the platform starts becoming the wrong tool. So, let's discuss!&lt;/p&gt;

&lt;h2&gt;
  
  
  Why do I keep coming back to Vercel?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;First of all, Vercel's preview deployment workflow!&lt;/strong&gt; It makes my development cycle much smoother. By default, every non-production branch can receive its own preview URL, and I can share that URL before merging the branch. That's extremely useful for catching visual problems before they reach production. A pull request may look completely fine during code review, but you can never know when the actual interface breaks at a particular viewport width. This has happened to me a lot. Just a few days ago, I shipped the near-final version of a project to one of my clients without noticing that, in the mobile version, a heading was overlapping one of the image assets. Preview deployments let people test the thing instead of trying to imagine it from a diff.&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%2Fv2i3pb2qsck36pkmg69w.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%2Fv2i3pb2qsck36pkmg69w.png" alt="Two collaborators pass browser-preview cards between them; one catches a mobile layout issue before the preview reaches the production flag, illustrating Vercel preview deployments for visual QA" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a solo developer and freelancer like me, this saves a lot of time because, as you can see in the above screenshot, Vercel adds a toolbar to preview deployments where collaborators can leave comments directly on the page. This was especially useful during hackathons, when we were short on time. And our team always communicated in that way, and my teammates would drop in and leave comments like "the link to this button is redirecting to the pricing page instead of the features page" or "the color is way too contrasty." The small catch is that they need a Vercel account to comment, and external collaboration has some plan-specific limits, so it is not entirely frictionless, but still, it is much easier than sending Loom videos, annotated screenshots, or five messages explaining which button or font your client or peers want. And they have an optional third-party integration as well that can convert a preview comment into a GitHub issue. This makes conversations with my clients and non-technical collaborators much easier!&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%2Fhqg1urb8i88yv7xv4xp0.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%2Fhqg1urb8i88yv7xv4xp0.png" alt="A Vercel preview deployment with the toolbar open, showing on-page comments and collaboration controls" width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Next.js experience is the other reason I keep using it.&lt;/strong&gt; Vercel develops the framework, so features such as Incremental Static Regeneration, Server Actions, React Server Components, route handlers, and streaming work with very little platform-specific configuration, and I don't have to spend an afternoon figuring out how a new Next.js feature maps onto the hosting environment. Vercel covers that part for me by default.&lt;/p&gt;

&lt;p&gt;Now, to be fair, other platforms have improved a lot, and Netlify currently supports the major Next.js features through its OpenNext adapter, including Server Components, Server Actions, streaming, ISR, and Partial Prerendering. Cloudflare can also run Next.js using its own OpenNext-based adapter. So the difference is no longer that Next.js features simply do not work elsewhere, because that would be an outdated argument. The difference is that Vercel remains the first-party deployment target, and that means there is one less compatibility layer to worry about. And this removes a pain point for me, especially when I am using a newer framework feature. And that's the edge I'm actually talking about. For a normal static React or Vite application, this advantage matters much less, but for a serious Next.js project, it becomes my go-to option.&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%2Fyjsg16c5dflp26kwpu8a.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%2Fyjsg16c5dflp26kwpu8a.png" alt="Vercel Analytics dashboard displaying visitor, page-view, and bounce-rate trends for swapnoneel.site" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And then there's the DX at the dashboard level. These are minute things, but together, they make a big difference for me. For example, the environment variables are scoped per environment (local, preview, and production; all of them are isolated). Rolling back to any previous deployment takes two clicks. And the deployment logs actually tell you what failed, not just that it did, and because of that, they become much easier to fix if you are taking the “pasting it into Claude Code” route.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are the alternatives to Vercel?
&lt;/h2&gt;

&lt;p&gt;Well, when we are talking about the alternatives, &lt;strong&gt;Cloudflare Pages&lt;/strong&gt; is the one that comes the closest. And we know how much tech Twitter is divided on this one, and how frequently we see their representatives fight each other on open threads regarding this (I enjoy watching those heated arguments, lol). And yeah, Cloudflare is genuinely fast, and &lt;a href="https://www.cloudflare.com/network/" rel="noopener noreferrer"&gt;their edge network spans 300+ locations&lt;/a&gt;, and for static content, the performance gap over Vercel is actually quite measurable. And what I appreciate most is that the pricing is much more predictable; because, first of all, there are no egress fees, and they also provide unlimited bandwidth on the free tier. And as a bonus, I have also seen them &lt;a href="https://x.com/IanLandsman/status/2059289714264273337" rel="noopener noreferrer"&gt;helping start-ups from time to time as well&lt;/a&gt;, which is a great initiative, in my opinion.&lt;/p&gt;

&lt;p&gt;I respect all of this, but the problem is that Cloudflare's Workers environment runs on V8 isolates, which is different from a standard Node.js runtime. And this is where I face the most problems. For purely static sites or projects that have lightweight edge functions, it's totally fine, but sometimes, with specific packages that exclusively require a Node.js runtime, you start to face error messages. And although &lt;code&gt;nodejs_compat&lt;/code&gt; mode now supports a substantial portion of the Node API, the compatibility is still not perfect.&lt;/p&gt;

&lt;p&gt;There is also a trade-off in how the two platforms approach infrastructure. If you want databases, KV stores, or smart routing in your project, you must understand Cloudflare's broader ecosystem, like D1, KV, and routing rules, which is great when you want that level of control. But Vercel abstracts all of that by default. It is basically a trade-off of infrastructure control for speed, and I prefer Vercel's simpler deployment workflow in this regard.&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%2Fe3h31y2wjulcmgfq09qf.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%2Fe3h31y2wjulcmgfq09qf.png" alt="A developer considers two workshop paths: a rich, intricate tool cart on one side and a smooth launch ramp carrying a website paper airplane on the other, illustrating the trade-off between infrastructure control and shipping speed" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Netlify&lt;/strong&gt; was my original platform before I switched. I have nothing against it, honestly. It is very similar to Vercel in a lot of ways. But Vercel's integration with Next.js, which I just discussed in detail in the previous section, makes Netlify feel like it's one step behind. Features like Server Actions and React Server Components work natively on Vercel, while on Netlify, they have to go through adapters that often lag behind new framework releases, which is a big compromise. And another thing: Netlify's core CDN infrastructure also has fewer edge locations than Vercel's 100+ node network, and that's visible in the global TTFB numbers as well. I'd still use Netlify for a simple static site with a form or two because their built-in form handling is actually clever. But for a Next.js project, Vercel is my primary choice.&lt;/p&gt;

&lt;p&gt;Now, for &lt;strong&gt;Railway&lt;/strong&gt;, it's a bit different, and I use it when I need a persistent backend, like maybe a WebSocket server, a background job, or something that can't be serverless. In Scholarian, I have a long-running task where the background worker has to produce a long report using Gemini, and that process generally takes three to four minutes, so I switched the backend of my app to Railway. For Vercel, that's where it genuinely breaks down. If you need a long-running process, you're either doing something hacky with edge functions or you're reaching for a different platform. And there are a couple of good options besides Railway, and for that, &lt;a href="https://encore.dev" rel="noopener noreferrer"&gt;Encore&lt;/a&gt; would be my personal recommendation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where Vercel actually falls short
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;The pricing model!&lt;/strong&gt; And that's the part I like the least. The free Hobby plan is capped, so it cannot generate an on-demand surprise bill, but if a hobby project exceeds its allowances, it may be paused or restricted instead. That's why I keep an eye out for my portfolio site, because that's the one that gets the most traffic. The bigger billing concern begins as soon as you switch to the Pro plan, where usage beyond the included credit can be charged across multiple resources. Being mindful enough is particularly important here, because I have seen a lot of posts on Reddit and X where developers have complained about the same issue.&lt;/p&gt;

&lt;p&gt;Vercel Pro currently has a 20 USD monthly platform fee, which includes one deploying seat and 20 USD of usage credit. And for additional developer seats that can deploy or configure the projects, they will cost you another 20 USD per month, but the read-only viewer seats are free. And that combination can become difficult to predict when a project grows.&lt;/p&gt;

&lt;p&gt;Vercel provides spending alerts and lets paid teams configure actions such as pausing projects after reaching a limit. Hence, it's better to enable those controls instead of assuming that traffic will always stay predictable. Sudden bot traffic, a poorly optimized function, image transformations, or a sudden spike in legitimate users can all consume usage faster than expected. So, it's always better to keep those factors in mind so that you don't get overcharged accidentally.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The other limitation is compute.&lt;/strong&gt; Vercel Functions can handle APIs, server-rendered routes, streaming, and other request-driven tasks, and the current function limits are far more generous. But if your application requires a continuously running background process or custom Docker containers, Vercel isn't the right fit. There are platforms like &lt;a href="https://render.com" rel="noopener noreferrer"&gt;Render&lt;/a&gt; or &lt;a href="https://northflank.com" rel="noopener noreferrer"&gt;Northflank&lt;/a&gt; that are built for that kind of workload. Vercel is a frontend cloud, so the moment you need full-stack infrastructure, you're pairing Vercel with something else anyway. Hence, the title of my blog says why I prefer it for frontend projects, and not full-stack projects!&lt;/p&gt;

&lt;p&gt;And then there is also vendor lock-in, although I do not think it is as simple as people make it sound. And it's not limited to Vercel either; almost every service provider has its own kind of vendor lock-in. A static React or Vite project is easy to move, but a Next.js application that depends heavily on Vercel’s caching behavior, image optimization, routing, integrations, and deployment settings will take more effort to migrate. The more platform-specific behavior you adopt, the less portable your application becomes, and that's true for Vercel, Cloudflare, AWS, and almost every other cloud platform. I have not experienced the issue myself, but I have seen people complaining about it, so I included it in the blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is the Vercel free tier actually good enough?
&lt;/h2&gt;

&lt;p&gt;For most side projects, yes! And their &lt;a href="https://vercel.com/pricing" rel="noopener noreferrer"&gt;Hobby plan&lt;/a&gt; is free for personal use and is pretty generous. It comes with unlimited projects, automatic HTTPS, custom domains, preview deployments, and 100 GB of bandwidth per month, and that's mostly enough for personal use. And I never felt the need to purchase their paid Pro plans.&lt;/p&gt;

&lt;p&gt;But the moment you add a team or need more bandwidth or function execution, you have to go to the Pro plan that starts at $20/month for each member.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is the verdict?
&lt;/h2&gt;

&lt;p&gt;Vercel is still my default for frontend deployment and a part of my development cycle. The preview URL workflow alone has saved me more debugging cycles than I can count. I've tried the alternatives in actual projects, and none of them gave me back the time I was spending on deployment issues.&lt;/p&gt;

&lt;p&gt;That said, if you're cost-conscious and don't mind the learning curve, then Cloudflare is still a great choice. And if you need a backend, pick Railway and point your Vercel frontend at it. And if you've moved away from Vercel for something specific, or if you have a setup that works better for you, I'd genuinely love to hear about it in the comments! &lt;a href="https://www.reddit.com/r/nextjs/s/NgNpVNAgDC" rel="noopener noreferrer"&gt;Made a reddit post for this discussion as well, I would really appreciate if you can discuss there.&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;And I have also recorded a short video, where I compared the deployment of one single Next.js project on three platforms, namely Vercel, Netlify and Cloudflare, so if you want to check it out, &lt;a href="https://drive.google.com/file/d/18NzYW7glI1DY3EBPhvZWCK1WmkKXq30j/view?usp=drive_link" rel="noopener noreferrer"&gt;you can do that from here&lt;/a&gt;.&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%2Fc5ibesykgl49praqtv1c.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%2Fc5ibesykgl49praqtv1c.png" alt="Thanks for reading! What are you using to ship? Tell me in the comments." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And if you want to see the kinds of projects I've actually shipped on Vercel, check them out at &lt;a href="https://www.swapnoneel.site" rel="noopener noreferrer"&gt;my site&lt;/a&gt;. Also, you can find me on &lt;a href="https://x.com/swapnoneel123" rel="noopener noreferrer"&gt;X&lt;/a&gt; or &lt;a href="https://github.com/Swpn0neel" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; if you want to talk or connect.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>reviews</category>
      <category>discuss</category>
    </item>
    <item>
      <title>GEO for Developers: Get Cited by ChatGPT and Perplexity</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Tue, 07 Jul 2026 23:53:53 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/geo-for-developers-get-cited-by-chatgpt-and-perplexity-34mf</link>
      <guid>https://dev.to/swapnoneel123/geo-for-developers-get-cited-by-chatgpt-and-perplexity-34mf</guid>
      <description>&lt;p&gt;Have you ever asked ChatGPT or Perplexity a coding question and get a suspiciously specific, correct answer, with zero link back to whoever actually wrote it?&lt;/p&gt;

&lt;p&gt;Yeah, that's been happening to my blog too, and I finally sat down to fix it.&lt;/p&gt;

&lt;p&gt;So here's the real answer: GEO for developers doesn't need an agency or a 40-page audit. It just needs three simple things: a properly structured content so a model can lift one paragraph and have it make sense on its own, real evidence instead of vague claims, and let the right bots get into your &lt;code&gt;robots.txt&lt;/code&gt;. That's genuinely most of it, and in this blog I'll walk you through exactly how!&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%2Fijsp4wps170nncup5fqe.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%2Fijsp4wps170nncup5fqe.png" alt="Dot the Debugger re-inking a return-address stamp as developer writing slides into an AI answers sack with missing source labels." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What is GEO, actually?
&lt;/h2&gt;

&lt;p&gt;GEO stands for Generative Engine Optimization, and it's the practice of writing content so AI answer engines (ChatGPT, Perplexity, Google's AI Overviews) quote it directly instead of just ranking it in ten blue links.&lt;/p&gt;

&lt;p&gt;It's pretty self-explanatory, and it sits right next to SEO (Search Engine Optimization). We used to optimize purely for search engines like Google, but the times have changed, so now you're writing for generative engines too, Perplexity, Gemini, ChatGPT, all of them.&lt;/p&gt;

&lt;p&gt;The term comes from an actual peer-reviewed study, presented at KDD 2024 by researchers from Princeton, Georgia Tech, and IIT Delhi, and it's become its own line item in 2026 marketing budgets. &lt;a href="https://www.omnibound.ai/blog/generative-engine-optimization-statistics" rel="noopener noreferrer"&gt;The paper's numbers are wild&lt;/a&gt;: adding statistics to a page boosted its visibility in AI answers by 41%, and content optimized for generative engines improved visibility by up to 40% overall.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why doesn't most GEO advice fit a dev blogger?
&lt;/h2&gt;

&lt;p&gt;Here's the thing though, and I say this as someone who's done SEO freelancing and used Semrush since my first year of college: almost every GEO guide I found while researching this is written for a marketing team running brand-mention trackers across a hundred pages. That's not you if you're publishing one post a week on your own domain, or worse, on Hashnode.&lt;/p&gt;

&lt;p&gt;You don't need consensus-signal dashboards. You need to know which five things to do to your next post, and that's what I'm giving you.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually works in GEO?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Answer the question in your first 40-60 words, standalone.&lt;/strong&gt; &lt;a href="https://www.omnibound.ai/blog/generative-engine-optimization-statistics" rel="noopener noreferrer"&gt;Roughly 44% of everything AI engines quote comes from the first third of a page&lt;/a&gt;, so don't bury your point under three paragraphs of throat-clearing. Say the thing, then explain it. If you notice carefully, I have already mentioned the three GEO optimisation steps in the introduction itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phrase your headings as questions.&lt;/strong&gt; Not "Benefits of X", but "Why does X matter?" or "What is X?". This is also just a more natural way to write, so it's a rare case where the AI-friendly move and the human-friendly move are the same move. Check how I have framed the headings of each section =]&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Every section has to make sense if someone rips it out of the page.&lt;/strong&gt; AI engines lift paragraphs, not entire posts. If your section starts with "This also means...", restate what "this" is. Small habit, big difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Put real numbers in, with sources.&lt;/strong&gt; Not "many developers prefer X", but "X handles 50,000 requests per second, per their own benchmark, published in June 2026". Vague claims don't get quoted. Specific, sourced ones do. You will find multiple such statements in this blog itself, and also with linked citations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fix your &lt;code&gt;robots.txt&lt;/code&gt;.&lt;/strong&gt; This one's just a config file, and most bloggers never touch it (yes, that's a real file sitting on your domain right now, doing nothing). &lt;a href="https://www.mersel.ai/blog/how-to-block-or-allow-ai-bots-on-your-website" rel="noopener noreferrer"&gt;The bots you want to allow for citations are different from the bots that scrape for training data&lt;/a&gt;: &lt;code&gt;OAI-SearchBot&lt;/code&gt; and &lt;code&gt;PerplexityBot&lt;/code&gt; are the ones fetching pages to answer live questions, while &lt;code&gt;GPTBot&lt;/code&gt; and &lt;code&gt;ClaudeBot&lt;/code&gt; are the training crawlers. You can allow the first pair and still block the second, if that's the line you want to draw.&lt;/p&gt;

&lt;h2&gt;
  
  
  Should you bother with llms.txt?
&lt;/h2&gt;

&lt;p&gt;Honestly? Probably not yet, and I want to be straight with you about this because most GEO posts won't be.&lt;/p&gt;

&lt;p&gt;The idea is simple: drop a markdown file at &lt;code&gt;/llms.txt&lt;/code&gt; summarizing your site so a model doesn't have to parse your HTML. &lt;a href="https://www.mintlify.com/blog/what-is-llms-txt" rel="noopener noreferrer"&gt;Over 844,000 sites have added one already&lt;/a&gt;, including Anthropic's own docs. But no major AI company has confirmed they actually read it, and Google's John Mueller called it a "temporary crutch" that isn't done for search at all.&lt;/p&gt;

&lt;p&gt;So add one if you want, it costs you ten minutes and can't hurt. Just don't mistake it for the thing that's going to get you cited. That's the structure and the sourcing, not the file.&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%2F4f924waqkaq4a2j6zxx8.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%2F4f924waqkaq4a2j6zxx8.png" alt="Professor Kernel comparing a light llms.txt scroll against heavier evidence tablets labeled stats, sources, and structure." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What if you don't even own your blog?
&lt;/h2&gt;

&lt;p&gt;If you cross-post to Hashnode or Dev.to like I do, you don't control the &lt;code&gt;robots.txt&lt;/code&gt; on that domain, and you can't add schema markup either. That's the platform's call, not yours.&lt;/p&gt;

&lt;p&gt;What you can still control everywhere: the content structure itself, and your canonical URL. Always point the canonical tag back to your personal site, always write the answer-first paragraphs regardless of platform, and let the schema/&lt;code&gt;robots.txt&lt;/code&gt; tactics apply fully only where you actually own the domain.&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%2Fzsk2kxur6v815lg9m2w8.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%2Fzsk2kxur6v815lg9m2w8.png" alt="Milo the Micro-Archivist carrying a portable structure case between an owned site shelf and a locked platform rules shelf." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Is GEO worth your time?
&lt;/h2&gt;

&lt;p&gt;Yes, but not the version most people are selling you. I recently rebuilt my own blog-writing process around exactly this, direct-answer blocks first, real stats with sources, extractable sections, and it's honestly made the drafts read better for humans too, not just for whichever bot happens to crawl them. I wrote up &lt;a href="https://www.swapnoneel.site/blog/make-ai-write-in-your-voice" rel="noopener noreferrer"&gt;the whole build here&lt;/a&gt;, if you want the longer version.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Do I need to block GPTBot to protect my writing?&lt;/strong&gt;&lt;br&gt;
That's a separate decision from GEO. Blocking &lt;code&gt;GPTBot&lt;/code&gt; stops your content from training future models, but blocking &lt;code&gt;OAI-SearchBot&lt;/code&gt; too would also stop you from showing up in ChatGPT's live search results. Decide which trade-off you actually want.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Will GEO replace SEO for blogs?&lt;/strong&gt;&lt;br&gt;
No, they overlap more than they compete. Structuring for extraction and citing real sources helps you rank in Google too. Think of GEO as SEO with an extra, stricter bar for evidence and standalone clarity.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How long before I see actual citations?&lt;/strong&gt;&lt;br&gt;
I don't have a clean number for this yet, since I only rebuilt my own process around it in mid-2026. Perplexity re-crawls constantly, so that's the faster feedback loop; ChatGPT search is slower and more selective about which pages it trusts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Do I need schema markup if I only publish on Hashnode or Dev.to?&lt;/strong&gt;&lt;br&gt;
Not directly, since the platform controls that layer. Focus your energy on content structure and canonical URLs instead, those travel with you no matter where you publish.&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%2F7qjfs91cyfbq8gfa8y11.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%2F7qjfs91cyfbq8gfa8y11.png" alt="Thanks for reading about GEO for Developers" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're building or rebuilding your own writing process around this, I'd genuinely love to hear what worked for you, drop it in the comments. You can also find me on &lt;a href="https://x.com/swapnoneel123" rel="noopener noreferrer"&gt;X (swapnoneel123)&lt;/a&gt; or check out more of my work at &lt;a href="https://www.swapnoneel.site" rel="noopener noreferrer"&gt;swapnoneel.site&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>tutorial</category>
      <category>writing</category>
    </item>
    <item>
      <title>How I made an AI Agent write in my voice</title>
      <dc:creator>Swapnoneel Saha</dc:creator>
      <pubDate>Mon, 06 Jul 2026 09:54:48 +0000</pubDate>
      <link>https://dev.to/swapnoneel123/how-i-made-an-ai-agent-write-in-my-voice-5dli</link>
      <guid>https://dev.to/swapnoneel123/how-i-made-an-ai-agent-write-in-my-voice-5dli</guid>
      <description>&lt;p&gt;Let's be honest, AI-written blogs have a certain... vibe. You know it, I know it, and your readers can smell it from the very first paragraph.&lt;/p&gt;

&lt;p&gt;But here's my take: you can make AI write in your voice, just not with a "generic" prompt. What actually worked for me is an agent skill with three parts: a voice profile built from seven of my real writing samples, a kill list of AI phrases, and a feedback loop that turns my edits into permanent rules. And here comes the twist, the blog you are reading right now is the very first output of that system!&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%2Fj17en7k310o6uj6v3e9a.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%2Fj17en7k310o6uj6v3e9a.png" alt="Hand-drawn illustration showing why a generic AI prompt creates bland writing, while a voice system with profile, kill list, and feedback loop creates personal output." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;So, let me walk you through exactly how I built it, and you can judge for yourself whether it sounds like a human or not.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why does AI writing sound so... AI?
&lt;/h2&gt;

&lt;p&gt;Before fixing the problem, let's understand it from the ground up.&lt;/p&gt;

&lt;p&gt;An LLM is trained on billions of documents, so by default, it writes like the average of all of them. That's where phrases like "in today's fast-paced world"s come from, and those perfectly balanced conclusions that never pick a side. It's not that the model is dumb. It's that the average of a million voices is no voice at all.&lt;/p&gt;

&lt;p&gt;And your voice is the exact opposite of average. It's the specific way you break grammar rules, and the things you're willing to admit that others won't.&lt;/p&gt;

&lt;p&gt;I've written multiple technical blogs for different startups including Keploy, Devbytes and many more, and have been blogging on Hashnode since 2023. So when I asked AI to draft posts "in my style" with a simple prompt, the result was always the same: grammatically perfect, structurally neat, and absolutely not me.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, can you actually make AI write in your voice?
&lt;/h2&gt;

&lt;p&gt;Well, yes. But you have to show it, not describe it.&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%2Fign7lvcoescktvdblw4g.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%2Fign7lvcoescktvdblw4g.png" alt="Minimal sketch of an AI voice system extracting writing mechanics from real blog samples instead of relying on vague tone instructions." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;"Write in a friendly, conversational tone" gives everyone on the internet the same friendly, conversational tone. What you need instead is a system that extracts the mechanics of your writing from real samples, and then enforces them like rules. Mine has three parts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 1: The voice profile
&lt;/h3&gt;

&lt;p&gt;I gave the agent seven samples of my writing: two journey blogs, one tutorial, one opinion piece, one comparison, three cold intros, and a small questionnaire about my tastes. And these are not just "any" samples, three of them are my past works that was cherry-picked by the system. And the other four were literally the topics given to me by Fable 5, so that it can understand my writing style better.&lt;/p&gt;

&lt;p&gt;But here's the important part, the profile it built isn't a list of adjectives. It's mechanics:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;My sentences constantly open with And, But, So, and Now (this exact paragraph included).&lt;/li&gt;
&lt;li&gt;My posts move forward by asking the reader's next question, and then answering it.&lt;/li&gt;
&lt;li&gt;Every big claim needs a personal receipt with a number, not a vague "many developers say".&lt;/li&gt;
&lt;li&gt;At most two "!!" per post. Yes, it literally counts them.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And one more thing: newer samples always outrank older ones. My 2023 writing had habits I've dropped since, and the system knows my current voice wins every conflict.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 2: The kill list
&lt;/h3&gt;

&lt;p&gt;The second file is a banned-patterns list. Every AI-ism I hate goes there: "delve", "seamless", "game-changer", rule-of-three sentences, em-dash chains, hedged conclusions that refuse to pick a winner, and emojis (all of them, I don't use emojis in my blogs, period).&lt;/p&gt;

&lt;p&gt;The rule is zero tolerance. If a banned pattern shows up in a draft, the agent doesn't just delete it, it rewrites the sentence the way I would say it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Part 3: The feedback loop (this is the part that actually matters)
&lt;/h3&gt;

&lt;p&gt;Now, the first two parts get you maybe 80% of the way. The remaining 20% is where every "write like me" tool I've seen gives up.&lt;/p&gt;

&lt;p&gt;Here's my loop: the agent writes a draft, I edit it like I normally would, and then a second skill diffs my final version against the draft. Every meaningful change gets generalized into a rule. If I cut a long intro once, that's a hypothesis. If I do it twice, it gets promoted to a confirmed rule that every future draft must follow.&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%2Flrbu0o9co58jp599cz5j.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%2Flrbu0o9co58jp599cz5j.png" alt="Hand-drawn feedback loop showing how human edits become reusable writing rules for future AI-generated drafts." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there's a hard cap of 30 active rules. Why? Because this whole system runs on a smaller, cheaper model, and a smaller model follows 30 rules well and drowns in 80. The intelligence lives in the files, not the model.&lt;/p&gt;

&lt;h2&gt;
  
  
  But does it learn from every single edit?
&lt;/h2&gt;

&lt;p&gt;Well, no. And this was a deliberate design decision.&lt;/p&gt;

&lt;p&gt;A one-off change (fixing a fact, rephrasing something topic-specific) teaches nothing about my voice, so it gets logged and forgotten. Only patterns become rules. Otherwise the agent would overfit to whatever mood I was in during one editing session.&lt;/p&gt;

&lt;p&gt;There's also one rule I consider non-negotiable: the agent can never invent a story about me. All personal facts live in a single profile file, and if a post needs an anecdote that isn't in there, the agent has to stop and ask me. An AI confidently fabricating a personal memory in your published blog is so much worse than a boring paragraph.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does it actually work?
&lt;/h2&gt;

&lt;p&gt;Honest answer: I don't fully know yet, and I won't pretend otherwise.&lt;/p&gt;

&lt;p&gt;This post is literally draft number one. The feedback loop has learned exactly zero rules from my edits so far, because there were no edits before this. You are looking at the "before" photo. If you can tell which sentences I touched after the agent wrote them, tell me in the comments, seriously!&lt;/p&gt;

&lt;p&gt;And another honest admission: setting this up took me more effort than just writing 2-3 posts by hand (I literally wrote four new blogs as an assignment lol, so that the LLM can infer my writing style better). The payoff only makes sense because it compounds, every post I edit makes the next draft closer to me.&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%2F1xghbi4l07kjmzy7es71.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%2F1xghbi4l07kjmzy7es71.png" alt="Illustration of an AI writing guardrail where only verified profile facts enter the blog, while fake memories are blocked." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But the direction feels right, and I'm clearly not alone in thinking this way. The dev community has moved past one-shot prompting: Peter Steinberger's viral post ("you shouldn't be prompting coding agents anymore, you should be designing loops that prompt your agents") pulled 6.5 million views in June 2026 and &lt;a href="https://explainx.ai/blog/loop-engineering-coding-agents-claude-code-guide-2026" rel="noopener noreferrer"&gt;set the timeline on fire for a week&lt;/a&gt;. And the &lt;a href="https://www.developersdigest.tech/blog/what-hacker-news-gets-right-about-ai-coding-agents-2026" rel="noopener noreferrer"&gt;Hacker News discourse in 2026&lt;/a&gt; has shifted from shiny demos to making agents repeatable and trustworthy. A writing agent with a feedback loop is just that same idea, pointed at a blog.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are agent skills, anyway?
&lt;/h2&gt;

&lt;p&gt;If the term is new to you, let's zoom out for a second.&lt;/p&gt;

&lt;p&gt;An agent skill is basically an onboarding document for an AI. It's a markdown file (usually called SKILL.md) with step-by-step instructions, plus supporting files it should read, that a coding agent like Claude Code loads before doing a task. Think of it like the difference between telling a new intern "write a blog" and handing them your company's full writing playbook.&lt;/p&gt;

&lt;p&gt;And the beautiful part is that skills are portable and dumb-model-friendly. I have orchestrated multiple agentic workflows, and the lesson from there was the same: agents don't fail because the model is weak, they fail because the instructions are vague.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;How many writing samples do you need to clone your voice?&lt;/strong&gt;&lt;br&gt;
Seven worked for me, but coverage beats volume. One sample per content type (tutorial, opinion, comparison, narrative) teaches far more than ten samples of the same type, because your voice changes with the mode.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Can this work with a cheaper model?&lt;/strong&gt;&lt;br&gt;
That's the whole point. The voice profile, kill list, and rules carry the intelligence, so a smaller model just has to follow instructions. Save the expensive model for building the system, not running it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do you stop the AI from making up facts about you?&lt;/strong&gt;&lt;br&gt;
One canonical profile file, and a hard rule: if the fact isn't in the file, ask the human. Never generate a personal claim from thin air. Accepting that AI can't do the entire job for you, and you have to keep yourself in the loop, creates the difference.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Does this replace writing?&lt;/strong&gt;&lt;br&gt;
No, and I don't want it to. It replaces the first draft and the SEO chores. The opinions and the final edit are still mine, and honestly, that's the part I enjoy anyway. Even the current sentence that you are reading right now, was actually inserted by me during the edit.&lt;/p&gt;

&lt;h2&gt;
  
  
  So, should you build one?
&lt;/h2&gt;

&lt;p&gt;If you publish regularly, yes. Build the voice profile. Really do. But don't skip the feedback loop, because without it you've just built a fancy prompt that will drift back into AI-slop within three posts.&lt;/p&gt;

&lt;p&gt;And start smaller than I did: pick your five most representative pieces, extract the mechanics (not adjectives!), list ten phrases you'd never say, and make reviewing the diffs a habit. If you want a more detailed analysis about the system, just comment down below and I would be happy to help you all!&lt;/p&gt;

&lt;p&gt;I'll be sharing more about this system as the feedback loop matures, including the numbers on how many edits it actually takes before drafts start needing none. If you want to follow that experiment, you can find me on &lt;a href="https://x.com/swapnoneel123" rel="noopener noreferrer"&gt;X (swapnoneel123)&lt;/a&gt; or check out my other works at &lt;a href="https://www.swapnoneel.site" rel="noopener noreferrer"&gt;swapnoneel.site&lt;/a&gt;.&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%2Fi97zkriofj8bl1no5h4h.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%2Fi97zkriofj8bl1no5h4h.png" alt="Hand-drawn thank-you illustration with a published draft, feedback loop, and voice-print machine for the end of an AI writing blog." width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's a wrap! Have you tried making AI write like you? What worked, and what came out sounding like a LinkedIn bot? I would love to hear your experience. Thank you for reading, and have a nice day ahead!!&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>tutorial</category>
      <category>writing</category>
    </item>
  </channel>
</rss>
