<?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>Forem: &lt;devtips/&gt;</title>
    <description>The latest articles on Forem by &lt;devtips/&gt; (@dev_tips).</description>
    <link>https://forem.com/dev_tips</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2901662%2F1dcce5de-7920-43a0-a337-e1dfb375b204.png</url>
      <title>Forem: &lt;devtips/&gt;</title>
      <link>https://forem.com/dev_tips</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/dev_tips"/>
    <language>en</language>
    <item>
      <title>10 Claude Code commands that actually changed how I ship</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 07:02:51 +0000</pubDate>
      <link>https://forem.com/dev_tips/10-claude-code-commands-that-actually-changed-how-i-ship-45oj</link>
      <guid>https://forem.com/dev_tips/10-claude-code-commands-that-actually-changed-how-i-ship-45oj</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="fb3e"&gt;I was re-typing the same prompts from memory every day. Then I found out Claude Code had a whole command system I’d been ignoring for months.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="fd79"&gt;You know that moment when you realize the tool you’ve been using for half a year has a feature that would’ve saved you hundreds of hours and it was in the docs the whole time? &lt;strong&gt;&lt;em&gt;Yeah. That’s this article.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p id="51e2"&gt;I’d been running Claude Code daily since early 2025. Writing prompts, getting code, copy-pasting, repeat. Classic vibe coding loop. What I didn’t realize was that I was basically driving a sports car in first gear the entire time. Every code review, I’d retype the same 12-line checklist. Every new component, same scaffold instructions. Every commit, same “write me a conventional commit message” prompt from memory slightly different each time, slightly worse output each time. Turns out there’s a name for that: prompt drift. And it quietly tanks your results without you ever noticing.&lt;/p&gt;
&lt;p id="ee09"&gt;Claude Code has a slash command system that lets you save any prompt as a reusable command, version-control it with your team via Git, and fire it with a single &lt;code&gt;/command-name&lt;/code&gt;. It's been there the whole time. Most devs skip it because nobody told them it existed.&lt;/p&gt;
&lt;p id="0d95"&gt;So this is that article. No fluff, no “AI will 10x your productivity” nonsense just 10 commands, what they actually do, real code you can drop into your project today, and the specific moments they saved me from myself.&lt;/p&gt;
&lt;p id="6565"&gt;&lt;strong&gt;Here’s what’s coming:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="a292"&gt;How slash commands work (and the 4-minute setup you’ll actually do)&lt;/li&gt;

&lt;li id="bfa3"&gt;

&lt;strong&gt;Commands 1–3: &lt;/strong&gt;The daily drivers you’ll use every single session&lt;/li&gt;

&lt;li id="f8d4"&gt;

&lt;strong&gt;Commands 4–6:&lt;/strong&gt; The workflow multipliers that kill repetitive grunt work&lt;/li&gt;

&lt;li id="2e23"&gt;

&lt;strong&gt;Commands 7–9:&lt;/strong&gt; The power moves most devs don’t know exist&lt;/li&gt;

&lt;li id="a841"&gt;

&lt;strong&gt;Command 10: &lt;/strong&gt;The team play that ended merge conflicts for a full sprint&lt;/li&gt;

&lt;li id="8479"&gt;

&lt;strong&gt;Resources&lt;/strong&gt;, &lt;strong&gt;links&lt;/strong&gt;, and the full repo to steal everything&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="d7b1"&gt;&lt;strong&gt;Let’s go.&lt;/strong&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b700"&gt;How slash commands actually work (set this up first)&lt;/h2&gt;
&lt;p id="9e86"&gt;Before the commands, two minutes of context because this tripped me up early and I don’t want it to trip you up.&lt;/p&gt;
&lt;p id="e0d3"&gt;Claude Code has two different things that look identical but aren’t: &lt;strong&gt;built-in slash commands&lt;/strong&gt; and &lt;strong&gt;custom slash commands&lt;/strong&gt;. Built-ins are hardcoded into the CLI things like &lt;code&gt;/clear&lt;/code&gt;, &lt;code&gt;/compact&lt;/code&gt;, &lt;code&gt;/help&lt;/code&gt;, &lt;code&gt;/diff&lt;/code&gt;. They just exist. Custom commands are markdown files you create yourself that become slash commands. That's the system we're mostly talking about today.&lt;/p&gt;
&lt;p id="b663"&gt;&lt;strong&gt;To create a custom command, you drop a &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt; file into one of two folders:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="8d89"&gt;&lt;span&gt;# Project-scoped — shared with your team via Git&lt;/span&gt;&lt;br&gt;your-repo/.claude/commands/preflight.md   →   /preflight&lt;br&gt;&lt;span&gt;# User-scoped - personal, works across all your projects&lt;/span&gt;&lt;br&gt;~/.claude/commands/orient.md              →   /orient&lt;br&gt;&lt;span&gt;# Subdirectories create prefixed commands&lt;/span&gt;&lt;br&gt;.claude/commands/db/migrate.md            →   /db:migrate&lt;/span&gt;&lt;/pre&gt;
&lt;p id="abe4"&gt;The filename becomes the command name. The file content becomes the prompt. That’s the whole system. Stupidly simple once you see it.&lt;/p&gt;
&lt;p id="1141"&gt;You can optionally add YAML frontmatter at the top to pre-approve tools (so Claude stops asking permission on every &lt;code&gt;git&lt;/code&gt; call), pin a model, or add a description:&lt;/p&gt;
&lt;pre&gt;&lt;span id="d0e8"&gt;&lt;span&gt;---&lt;/span&gt;&lt;br&gt;&lt;span&gt;description:&lt;/span&gt; &lt;span&gt;Pre-commit&lt;/span&gt; &lt;span&gt;check&lt;/span&gt; &lt;span&gt;for&lt;/span&gt; &lt;span&gt;debug&lt;/span&gt; &lt;span&gt;artifacts&lt;/span&gt; &lt;span&gt;and&lt;/span&gt; &lt;span&gt;code&lt;/span&gt; &lt;span&gt;smells&lt;/span&gt;&lt;br&gt;&lt;span&gt;allowed-tools:&lt;/span&gt; &lt;span&gt;Bash(git&lt;/span&gt; &lt;span&gt;&lt;em&gt;),&lt;/em&gt;&lt;/span&gt; &lt;span&gt;Bash(grep&lt;/span&gt; &lt;span&gt;),&lt;/span&gt; &lt;span&gt;Read,&lt;/span&gt; &lt;span&gt;Glob&lt;/span&gt;&lt;br&gt;&lt;span&gt;model:&lt;/span&gt; &lt;span&gt;claude-sonnet-4-6&lt;/span&gt;&lt;br&gt;&lt;span&gt;---&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="f1e7"&gt;&lt;strong&gt;And if you need dynamic input like passing a filename or a ticket number use &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;$ARGUMENTS&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="bef7"&gt;/fix-issue 142 high&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span id="a367"&gt;&lt;span&gt;# In your .md file:&lt;/span&gt;&lt;br&gt;Fix issue #$1 with priority $2. Check the issue description&lt;br&gt;and implement the necessary changes.&lt;/span&gt;&lt;/pre&gt;
&lt;p id="0143"&gt;One more thing worth knowing: Anthropic merged the old &lt;code&gt;.claude/commands/&lt;/code&gt; system with a newer &lt;code&gt;.claude/skills/&lt;/code&gt; system. Your existing command files still work fine, but new ones should go in &lt;code&gt;.claude/skills/&lt;/code&gt; if you want access to newer features like shell-injected context and agent configuration. For everything in this article, either location works.&lt;/p&gt;
&lt;p id="972e"&gt;Setup time is genuinely four minutes. Create the folder, add your first &lt;code&gt;.md&lt;/code&gt; file, type &lt;code&gt;/&lt;/code&gt; in Claude Code and watch it appear in autocomplete. Once you see it, you can't unsee it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="9172"&gt;&lt;strong&gt;Now the actual commands.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;blockquote&gt;

&lt;p id="f21b"&gt;&lt;strong&gt;Commands 1–3: The daily drivers&lt;/strong&gt;&lt;/p&gt;

&lt;p id="a713"&gt;These three you’ll use every single session. If you only set up three commands from this entire article, make it these.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;h2 id="95da"&gt;Command 1: &lt;code&gt;/init&lt;/code&gt; give Claude a memory&lt;/h2&gt;
&lt;p id="2956"&gt;Every time you start a fresh Claude Code session, it has zero context about your project. No idea what your build command is, what conventions you follow, what folders matter. So it scans. It reads. It figures things out from scratch, eating your tokens and your time before you’ve even asked it anything useful.&lt;/p&gt;
&lt;p id="ca76"&gt;&lt;code&gt;/init&lt;/code&gt; fixes this. Run it once in a new project and it generates a &lt;code&gt;CLAUDE.md&lt;/code&gt; file a persistent memory file that Claude reads at the start of every session automatically.&lt;/p&gt;
&lt;pre&gt;&lt;span id="18ee"&gt;&lt;span&gt;# CLAUDE.md&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span&gt;## Project overview&lt;/span&gt;&lt;br&gt;FastAPI inference service with scikit-learn models and Alembic migrations.&lt;br&gt;&lt;span&gt;## Key commands&lt;/span&gt;&lt;br&gt;&lt;span&gt;-&lt;/span&gt; &lt;span&gt;&lt;code&gt;make dev&lt;/code&gt;&lt;/span&gt; - start local server&lt;br&gt;&lt;span&gt;-&lt;/span&gt; &lt;span&gt;&lt;code&gt;make test&lt;/code&gt;&lt;/span&gt; - run pytest suite&lt;br&gt;&lt;span&gt;-&lt;/span&gt; &lt;span&gt;&lt;code&gt;make lint&lt;/code&gt;&lt;/span&gt; - black + ruff&lt;br&gt;&lt;span&gt;## Conventions&lt;/span&gt;&lt;br&gt;&lt;span&gt;-&lt;/span&gt; All endpoints return typed Pydantic models&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Never commit directly to main&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Migrations live in /alembic/versions&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7ce2"&gt;You can edit this file manually after generation and you should. The more specific it is, the less Claude wastes time figuring out context that you already know. Think of it as your project’s onboarding doc, except the new hire is an AI that reads at the speed of light and forgets everything between sessions.&lt;/p&gt;
&lt;p id="ec08"&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://shipyard.build/blog/claude-code-cheat-sheet/" rel="noopener ugc nofollow noreferrer"&gt;CLAUDE.md explained Shipyard&lt;/a&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="5768"&gt;Command 2: &lt;code&gt;/compact&lt;/code&gt; save your context window before it saves you&lt;/h2&gt;
&lt;p id="ec8f"&gt;Here’s a thing that happens to everyone once: your session gets long, Claude starts referencing variables that don’t exist, suggests refactors you already did an hour ago, and generally acts like it’s been awake for 30 hours. That’s context window overflow. The conversation history got too big and it’s degrading the outputs.&lt;/p&gt;
&lt;p id="0ab5"&gt;&lt;code&gt;/compact&lt;/code&gt; compresses the conversation history keeps the important stuff, strips the redundant back-and-forth, and gives you clean working memory again.&lt;/p&gt;
&lt;pre&gt;&lt;span id="0729"&gt;&lt;span&gt;# Basic compact&lt;/span&gt;&lt;br&gt;/compact&lt;br&gt;&lt;br&gt;&lt;span&gt;# Compact with focus instruction - keeps specific context&lt;/span&gt;&lt;br&gt;/compact focus on the auth refactor, ignore the CSS discussion&lt;/span&gt;&lt;/pre&gt;
&lt;p id="5269"&gt;The trick is using it &lt;em&gt;proactively&lt;/em&gt;, not reactively. Don’t wait for Claude to start hallucinating. Run it before switching to a new phase of work within the same session. I run it roughly every 45 minutes on long coding days.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="4211"&gt;Command 3: &lt;code&gt;/review&lt;/code&gt; automated PR review that actually finds bugs&lt;/h2&gt;
&lt;p id="5c69"&gt;&lt;code&gt;/review&lt;/code&gt; triggers a code review of your recent changes. Out of the box it's useful, but out of the box it's also extremely chatty it'll write a paragraph about your variable naming while missing the actual logic error two lines below.&lt;/p&gt;
&lt;p id="0073"&gt;The fix is a &lt;code&gt;claude-code-review.yml&lt;/code&gt; override file that tightens the prompt. This is the one the &lt;a href="https://www.builder.io/blog/claude-code" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Builder.io team&lt;/strong&gt;&lt;/a&gt; landed on after their default review was "way too verbose":&lt;/p&gt;
&lt;pre&gt;&lt;span id="38ea"&gt;&lt;span&gt;# .claude/claude-code-review.yml&lt;/span&gt;&lt;br&gt;&lt;span&gt;direct_prompt:&lt;/span&gt; &lt;span&gt;|&lt;br&gt;  Review this pull request and look for bugs and security issues only.&lt;br&gt;  Do not comment on style, naming, or formatting.&lt;br&gt;  Be concise. Only report what you actually find.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="8b01"&gt;With that config in place, &lt;code&gt;/review&lt;/code&gt; stops being a noisy linter and starts behaving like a senior dev who skips the lectures and just spots real problems. It catches logic errors. It catches security gaps. It doesn't care that you named a variable &lt;code&gt;data&lt;/code&gt;.&lt;/p&gt;
&lt;p id="479e"&gt;If you’re on a team and your PR volume is climbing because of AI-assisted development and it probably is this command pays for itself inside a week.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;blockquote&gt;

&lt;p id="5ee1"&gt;&lt;strong&gt;Commands 4–6: The workflow multipliers&lt;/strong&gt;&lt;/p&gt;

&lt;p id="5f32"&gt;These are the commands that kill the grunt work. The stuff that isn’t hard, just annoyingly repetitive and repetitive tasks are exactly where prompt drift quietly destroys your consistency.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;h2 id="d209"&gt;Command 4: &lt;code&gt;/commit-msg&lt;/code&gt; never write a commit message again&lt;/h2&gt;
&lt;p id="f2fd"&gt;Show of hands: how many of your last ten commit messages were some variation of “fix bug”, “update”, or “wip”? Yeah. We’ve all been there. And if you’re on a team that actually enforces conventional commits, you’ve probably spent a non-trivial portion of your career typing &lt;code&gt;feat(auth):&lt;/code&gt; before a sentence you half-thought through.&lt;/p&gt;
&lt;p id="2e7b"&gt;&lt;strong&gt;Create this file at &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.claude/commands/commit-msg.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="7178"&gt;---&lt;br&gt;description: Generate a conventional commit message from staged changes&lt;br&gt;&lt;span&gt;allowed-tools: Bash(git diff --staged), Bash(git log --oneline -5)&lt;br&gt;---&lt;/span&gt;&lt;br&gt;Read the staged diff and the last 5 commits for context.&lt;br&gt;Generate a conventional commit message following this format:&lt;br&gt;&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;short summary&amp;gt;&lt;br&gt;Types: feat, fix, refactor, test, docs, chore, perf&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Summary must be under 72 characters&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Use imperative mood ("add" not "added")&lt;br&gt;&lt;span&gt;-&lt;/span&gt; If breaking change, append ! after type/scope&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Output only the commit message, nothing else&lt;/span&gt;&lt;/pre&gt;
&lt;p id="bb58"&gt;Now run &lt;code&gt;/commit-msg&lt;/code&gt; after staging your files and Claude reads the actual diff, understands the scope, and writes the message. Not from memory. Not from vibe. From the code.&lt;/p&gt;
&lt;p id="0924"&gt;My commit history went from “fix stuff” to something a PM could read and a changelog generator could parse. It felt like cheating for about two days and then it just felt normal.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="12d9"&gt;Command 5: &lt;code&gt;/scaffold&lt;/code&gt; boilerplate at warp speed&lt;/h2&gt;
&lt;p id="f93b"&gt;Every project has patterns. A React component always needs the same basic structure. An Express route always gets the same middleware stack. An API handler always needs the same error boundary. You know this. You’ve written it four hundred times.&lt;/p&gt;
&lt;p id="7283"&gt;&lt;code&gt;/scaffold&lt;/code&gt; is a custom command where you encode &lt;em&gt;your&lt;/em&gt; project's patterns not some generic template from the internet, but the actual conventions your codebase uses and generate new files that already fit.&lt;/p&gt;
&lt;p id="2291"&gt;&lt;strong&gt;Create &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.claude/commands/scaffold.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="4b77"&gt;---&lt;br&gt;description: Scaffold a new component or module following project conventions&lt;br&gt;allowed-tools: Read, Write, Bash(ls src/)&lt;br&gt;&lt;span&gt;argument-hint: [type] [name] [--tests] [--stories]&lt;br&gt;---&lt;/span&gt;&lt;br&gt;Scaffold a new $1 named $2 following the existing patterns in src/.&lt;br&gt;&lt;br&gt;Before generating, read 2-3 existing $1 files to match conventions exactly.&lt;br&gt;If --tests flag is passed, generate a test file alongside it.&lt;br&gt;If --stories flag is passed, generate a Storybook story file.&lt;br&gt;&lt;br&gt;Match: naming conventions, import style, export pattern, folder structure.&lt;br&gt;Do not invent patterns that don't exist in the codebase.&lt;br&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="3d8e"&gt;&lt;strong&gt;Then fire it:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="73a1"&gt;/scaffold react-component UserProfile --tests --stories&lt;br&gt;/scaffold express-route /api/payments --tests&lt;br&gt;/scaffold db-model Subscription&lt;/span&gt;&lt;/pre&gt;
&lt;p id="b2cf"&gt;The key line is &lt;em&gt;“read 2–3 existing files to match conventions exactly.”&lt;/em&gt; That’s what makes this different from every other scaffold tool it learns from your actual codebase instead of generating code that looks slightly off and needs four manual edits before it fits.&lt;/p&gt;
&lt;p id="26cd"&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://github.com/alirezarezvani/claude-code-tresor/tree/main/commands" rel="noopener ugc nofollow noreferrer"&gt;claude-code-tresor commands library&lt;/a&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AqtgHkEopIPQIYptVBL3llQ.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b369"&gt;Command 6: &lt;code&gt;/test-gen&lt;/code&gt; from 28% coverage to something respectable&lt;/h2&gt;
&lt;p id="7ef1"&gt;Test coverage is one of those things every dev agrees matters and approximately nobody enjoys actually writing. The work is tedious, the feedback loop is slow, and there’s always something more interesting to build. So coverage sits at 28% for six months while everyone silently agrees not to mention it in standup.&lt;/p&gt;
&lt;p id="ce50"&gt;&lt;strong&gt;Create &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.claude/commands/test-gen.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="774e"&gt;---&lt;br&gt;description: Generate comprehensive tests for a given file&lt;br&gt;allowed-tools: Read, Write, Bash(cat package.json)&lt;br&gt;&lt;span&gt;argument-hint: [filepath] [--framework] [--coverage-gaps]&lt;br&gt;---&lt;/span&gt;&lt;br&gt;&lt;br&gt;Generate tests for $1.&lt;br&gt;First, read the file and identify: exported functions, edge cases,&lt;br&gt;error paths, and any integration points.&lt;br&gt;Check package.json to confirm the test framework in use.&lt;br&gt;If --coverage-gaps is passed, run existing tests first and only&lt;br&gt;generate tests for uncovered paths.&lt;br&gt;Follow the existing test style in the &lt;span&gt;&lt;strong&gt;tests&lt;/strong&gt;&lt;/span&gt; folder.&lt;br&gt;Do not test implementation details - test behavior.&lt;/span&gt;&lt;/pre&gt;
&lt;p id="9eeb"&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="581a"&gt;/test-gen src/utils/auth.ts --framework vitest&lt;br&gt;/test-gen src/api/payments.ts --coverage-gaps&lt;/span&gt;&lt;/pre&gt;
&lt;p id="d97c"&gt;The &lt;code&gt;--coverage-gaps&lt;/code&gt; flag is the real unlock. Instead of generating redundant tests for already-covered paths, it reads what exists and fills the holes. Pointed this at a legacy utils folder on a Friday afternoon. Coverage went from 28% to 71% before I closed my laptop. First time I've ever looked forward to writing tests because I wasn't really writing them.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;blockquote&gt;

&lt;p id="5ab6"&gt;Commands 7–9: The power moves&lt;/p&gt;

&lt;p id="fa1c"&gt;These three are the ones most devs never discover because they’re not in any getting-started guide. They’re also the ones I’d miss most if they disappeared tomorrow.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;h2 id="cc6c"&gt;Command 7: &lt;code&gt;/security-check&lt;/code&gt; your own security scanner, always on&lt;/h2&gt;
&lt;p id="c81f"&gt;Security audits are one of those things teams either do religiously or completely skip depending on whether someone got burned recently. The problem with the “wait until it hurts” approach is obvious in retrospect and invisible in the moment.&lt;/p&gt;
&lt;p id="9c94"&gt;This command runs a focused security scan on your codebase every time you want it no external service, no SaaS subscription, no waiting for a quarterly audit.&lt;/p&gt;
&lt;p id="b029"&gt;&lt;strong&gt;Create &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.claude/commands/security-check.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="209c"&gt;---&lt;br&gt;description: Scan codebase for common security vulnerabilities&lt;br&gt;allowed-tools: Read, Grep, Glob&lt;br&gt;&lt;span&gt;model: claude-opus-4-6&lt;br&gt;---&lt;/span&gt;&lt;br&gt;&lt;br&gt;Analyze the codebase at $1 (or current directory if no argument) for:&lt;br&gt;&lt;br&gt;&lt;span&gt;-&lt;/span&gt; SQL injection risks (raw queries, unparameterized inputs)&lt;br&gt;&lt;span&gt;-&lt;/span&gt; XSS vulnerabilities (unsanitized user input in rendered output)&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Exposed credentials (hardcoded keys, secrets in non-.env files)&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Insecure configurations (debug mode in prod, open CORS, weak auth)&lt;br&gt;&lt;span&gt;-&lt;/span&gt; Dependency confusion risks in package manifests&lt;br&gt;&lt;br&gt;For each issue found:&lt;br&gt;&lt;span&gt;1.&lt;/span&gt; Show the exact file and line number&lt;br&gt;&lt;span&gt;2.&lt;/span&gt; Explain why it's a risk&lt;br&gt;&lt;span&gt;3.&lt;/span&gt; Suggest the specific fix&lt;br&gt;&lt;br&gt;If nothing is found, say so clearly. Do not invent issues.&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7f50"&gt;&lt;strong&gt;Usage:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="c3b0"&gt;/security-check src/api&lt;br&gt;/security-check .   &lt;span&gt;# scans everything&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="ee80"&gt;Two things worth noting. First, the &lt;code&gt;model: claude-opus-4-6&lt;/code&gt; pin — this is the one command where you want the smartest model on the job, not the fastest. Security reasoning is exactly the kind of nuanced, multi-step analysis where Opus earns its cost. Second, the "do not invent issues" line at the bottom is load-bearing. Without it, Claude occasionally hallucinates vulnerabilities in clean code. Guardrails in prompts matter.&lt;/p&gt;
&lt;p id="1047"&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://platform.claude.com/docs/en/agent-sdk/slash-commands" rel="noopener ugc nofollow noreferrer"&gt;Anthropic slash commands docs&lt;/a&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b7b7"&gt;Command 8: &lt;code&gt;/rewind&lt;/code&gt; the undo button for your entire session&lt;/h2&gt;
&lt;p id="c925"&gt;This one’s a built-in, not a custom command and it might be the most underrated thing in Claude Code.&lt;/p&gt;
&lt;p id="52d6"&gt;Here’s the scenario: Claude misunderstands your intent, goes down a rabbit hole, and refactors three files you didn’t ask it to touch. You come back from grabbing coffee and the codebase looks like it had an argument with itself. Now you have to figure out what changed, manually revert files, and re-explain your original intent from scratch while Claude carries the wrong context from the previous exchange.&lt;/p&gt;
&lt;p id="a70b"&gt;&lt;code&gt;/rewind&lt;/code&gt; handles all of that in one command. It reverts both the conversation history &lt;em&gt;and&lt;/em&gt; the file changes back to a previous checkpoint implicit checkpoints that Claude creates as you work.&lt;/p&gt;
&lt;pre&gt;&lt;span id="1002"&gt;/rewind&lt;br&gt;&lt;span&gt;# Opens interactive checkpoint picker — select how far back to go&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="67be"&gt;&lt;strong&gt;The workflow that actually works:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="0635"&gt;&lt;span&gt;# 1. Ask Claude to attempt something risky&lt;/span&gt;&lt;br&gt;&lt;span&gt;# 2. Review with /diff before accepting&lt;/span&gt;&lt;br&gt;&lt;span&gt;# 3. If it went sideways → /rewind back to before the attempt&lt;/span&gt;&lt;br&gt;&lt;span&gt;# 4. Rephrase the prompt with more constraints&lt;/span&gt;&lt;br&gt;&lt;span&gt;# 5. Try again&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="5664"&gt;I used to waste 30–45 minutes manually reverting bad sessions and re-establishing context. Now it’s a 10-second &lt;code&gt;/rewind&lt;/code&gt; and a better prompt. The number of times this has saved a late-night session from becoming a full rollback is embarrassing to admit.&lt;/p&gt;
&lt;p id="4e62"&gt;&lt;strong&gt;Reference:&lt;/strong&gt; &lt;a href="https://batsov.com/articles/2026/03/11/essential-claude-code-skills-and-commands/" rel="noopener ugc nofollow noreferrer"&gt;batsov.com essential Claude Code commands&lt;/a&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AdahO6v000HWhS8mOEZ6i0A.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="83b1"&gt;Command 9: &lt;code&gt;/diff&lt;/code&gt; catch mistakes before they compound&lt;/h2&gt;
&lt;p id="298f"&gt;Also built-in. Also criminally underused.&lt;/p&gt;
&lt;p id="03ca"&gt;&lt;code&gt;/diff&lt;/code&gt; opens an interactive viewer showing every single file change Claude has made in the current session. Not just the last change everything, across all files, since the session started.&lt;/p&gt;
&lt;pre&gt;&lt;span id="5406"&gt;/diff&lt;br&gt;&lt;span&gt;# Interactive viewer: scroll through all changes, file by file&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="24ae"&gt;The reason this matters is compounding. Claude makes a small wrong assumption in step 2, builds on it in step 4, builds on &lt;em&gt;that&lt;/em&gt; in step 7, and by step 9 you have a structurally coherent but fundamentally misaligned set of changes that are painful to unpick. Each individual edit looked fine in isolation. The sum of them drifted from what you actually wanted.&lt;/p&gt;
&lt;p id="3af2"&gt;The practice that fixed this for me: run &lt;code&gt;/diff&lt;/code&gt; before every &lt;code&gt;/commit-msg&lt;/code&gt;. Every time, without exception. It takes 90 seconds and it's caught at least a dozen "wait, why did it touch that file" moments that would've shipped as bugs.&lt;/p&gt;
&lt;p id="a7ac"&gt;Think of it as a mandatory code review with yourself before anything reaches Git. Not glamorous. Genuinely important.&lt;/p&gt;
&lt;pre&gt;&lt;span id="12d7"&gt;&lt;span&gt;# The rhythm that works:&lt;/span&gt;&lt;br&gt;/test-gen src/feature.ts&lt;br&gt;&lt;span&gt;# ... Claude writes tests ...&lt;/span&gt;&lt;br&gt;/diff                    &lt;span&gt;# review everything before committing&lt;/span&gt;&lt;br&gt;/commit-msg              &lt;span&gt;# generate message from clean, verified diff&lt;/span&gt;&lt;br&gt;git commit -m &lt;span&gt;"&lt;span&gt;$(pbpaste)&lt;/span&gt;"&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="293a"&gt;Command 10: &lt;code&gt;/preflight&lt;/code&gt; the team play that ended merge conflicts&lt;/h2&gt;
&lt;p id="da57"&gt;This one’s a custom command but it thinks like a system. It’s not doing one thing it’s doing everything your team agreed should happen before code touches the remote branch, automated into a single slash command that runs the same way every time for every person on the team.&lt;/p&gt;
&lt;p id="86db"&gt;&lt;strong&gt;Create &lt;/strong&gt;&lt;code&gt;&lt;strong&gt;.claude/commands/preflight.md&lt;/strong&gt;&lt;/code&gt;&lt;strong&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="fd02"&gt;---&lt;br&gt;description: Full pre-commit check — lint, types, debug artifacts, code smells&lt;br&gt;&lt;span&gt;allowed-tools: Bash(git &lt;span&gt;&lt;em&gt;), Bash(grep *&lt;/em&gt;&lt;/span&gt;), Bash(make &lt;span&gt;), Read, Glob&lt;br&gt;---&lt;br&gt;&lt;br&gt;Run a full preflight check before committing. In order:&lt;br&gt;1. Scan staged files for debug artifacts:&lt;br&gt;   - console.log, debugger, TODO, FIXME, hardcoded localhost URLs&lt;br&gt;   - Report file + line number for each hit&lt;br&gt;&lt;br&gt;2. Run linter: &lt;code&gt;make lint&lt;/code&gt;&lt;br&gt;   - If it fails, show only the errors, not the full output&lt;br&gt;&lt;br&gt;3. Run type check: &lt;code&gt;make typecheck&lt;/code&gt;&lt;br&gt;   - If it fails, show the first 10 errors only&lt;br&gt;&lt;br&gt;4. Check for obvious code smells:&lt;br&gt;   - Functions over 50 lines&lt;br&gt;   - Deeply nested conditionals (4+ levels)&lt;br&gt;   - Duplicate logic blocks over 10 lines&lt;br&gt;&lt;br&gt;5. Final summary:&lt;br&gt;   - ✅ if all checks pass - safe to commit&lt;br&gt;   - ❌ list of what failed and where - do not auto-fix anything&lt;br&gt;&lt;br&gt;Do not make any changes. Report only.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="bc80"&gt;The last two lines are critical. This command is an observer, not an actor. It tells you what’s wrong, you decide what to fix. Giving an automated pre-commit command write access to your staged files is how you end up with a codebase that fixed itself into a broken state.&lt;/p&gt;
&lt;p id="9b7d"&gt;The team impact is the real story here. When this command lives in &lt;code&gt;.claude/commands/&lt;/code&gt; and gets committed to Git, every developer on the team runs the exact same preflight check. Same lint rules, same type check, same artifact scan, same code smell thresholds. No more "it passed on my machine." No more forgotten &lt;code&gt;console.log&lt;/code&gt; that makes it to staging. No more merge conflicts because two people formatted the same file differently.&lt;/p&gt;
&lt;p id="0251"&gt;Zero merge conflicts last sprint. First time in 18 months. I’m not saying &lt;code&gt;/preflight&lt;/code&gt; is entirely responsible for that but it's not not responsible either.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="49a7"&gt;Wrapping up: your prompts are code now, treat them that way&lt;/h2&gt;
&lt;p id="421b"&gt;Here’s the thing that took me too long to fully internalize: the way you use Claude Code is a skill that compounds. Every command you write, version-control, and share with your team is a permanent improvement to how your entire team ships. It doesn’t reset when you close the terminal. It doesn’t drift when someone new joins. It just works, every time, the same way.&lt;/p&gt;
&lt;p id="0ecb"&gt;Most devs are still using Claude Code like a chatbot with a terminal window. That’s not a criticism it’s just where the default usage pattern lands. But there’s a real gap between “using Claude Code” and “building a command library that encodes your team’s best practices into reusable, version-controlled workflows.” The teams on the right side of that gap are shipping noticeably faster, with fewer regressions, and with less tribal knowledge living inside individual developers’ heads.&lt;/p&gt;
&lt;p id="e002"&gt;The slightly uncomfortable take: in a year or two, your &lt;code&gt;.claude/commands/&lt;/code&gt; folder is going to matter as much as your dotfiles. It's going to be one of the first things you clone when you set up a new machine. Devs will share command libraries the way they share vim configs today obsessively, opinionatedly, and with strong feelings about the right way to do it.&lt;/p&gt;
&lt;p id="b0a3"&gt;So start building yours. Start small one &lt;code&gt;/preflight&lt;/code&gt;, one &lt;code&gt;/commit-msg&lt;/code&gt;, one &lt;code&gt;/review&lt;/code&gt; override. Get it into Git. Share it with your team. See what happens to your sprint velocity.&lt;/p&gt;
&lt;p id="8a0a"&gt;What’s your most-used custom command? Drop it in the comments I’m genuinely curious what workflows people are encoding that I haven’t thought of yet.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="d8f6"&gt;Helpful resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="68e6"&gt;&lt;a href="https://platform.claude.com/docs/en/agent-sdk/slash-commands" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Claude Code custom slash commands&lt;/strong&gt; official docs&lt;/a&gt;&lt;/li&gt;

&lt;li id="4dcd"&gt;&lt;a href="https://github.com/hesreallyhim/awesome-claude-code" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;awesome-claude-code&lt;/strong&gt; curated skills, hooks, and commands&lt;/a&gt;&lt;/li&gt;

&lt;li id="f2bb"&gt;&lt;a href="https://github.com/wshobson/commands" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;wshobson/commands &lt;/strong&gt;57 production-ready commands&lt;/a&gt;&lt;/li&gt;

&lt;li id="f4d7"&gt;&lt;a href="https://github.com/alirezarezvani/claude-code-tresor/tree/main/commands" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;claude-code-tresor &lt;/strong&gt;open source command library&lt;/a&gt;&lt;/li&gt;

&lt;li id="de7e"&gt;&lt;a href="https://www.builder.io/blog/claude-code" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Builder.io&lt;/strong&gt; how I use Claude Code (deep dive)&lt;/a&gt;&lt;/li&gt;

&lt;li id="8775"&gt;&lt;a href="https://batsov.com/articles/2026/03/11/essential-claude-code-skills-and-commands/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;batsov.com&lt;/strong&gt; essential Claude Code skills and commands&lt;/a&gt;&lt;/li&gt;

&lt;li id="93ae"&gt;&lt;a href="https://shipyard.build/blog/claude-code-cheat-sheet/" rel="noopener ugc nofollow noreferrer"&gt;Shipyard Claude Code cheatsheet&lt;/a&gt;&lt;/li&gt;

&lt;li id="aea1"&gt;&lt;a href="https://blog.dailydoseofds.com/p/10-must-use-slash-commands-in-claude" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Daily Dose of DS&lt;/strong&gt; 10 must-use slash commands&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>claude</category>
      <category>coding</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why GitHub feels like it’s dying in the AI era?</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 07:01:04 +0000</pubDate>
      <link>https://forem.com/dev_tips/why-github-feels-like-its-dying-in-the-ai-era-519o</link>
      <guid>https://forem.com/dev_tips/why-github-feels-like-its-dying-in-the-ai-era-519o</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="ff3f"&gt;&lt;/h1&gt;
&lt;h2 id="258b"&gt;&lt;strong&gt;We didn’t stop coding. we just stopped exploring. AI quietly replaced one of the most important dev habits and nobody’s really talking about it.&lt;/strong&gt;&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="52b8"&gt;“&lt;strong&gt;GitHub is dying&lt;/strong&gt;” sounds like one of those takes you see, roll your eyes at, and keep scrolling.&lt;/p&gt;
&lt;p id="54f8"&gt;Like yeah, sure. Next you’ll tell me tabs are better than spaces and start a war in the comments.&lt;/p&gt;
&lt;p id="7f74"&gt;But here’s the uncomfortable part: something &lt;em&gt;is&lt;/em&gt; changing and it’s not subtle.&lt;/p&gt;
&lt;p id="b281"&gt;A few months ago, if I hit a weird bug, my flow was basically muscle memory:&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="a4cf"&gt;Google → random blog → GitHub issue → Stack Overflow → copy something questionable → pray → ship.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="de5f"&gt;&lt;strong&gt;Now?&lt;/strong&gt;&lt;/p&gt;
&lt;p id="35f6"&gt;I just open ChatGPT or let GitHub Copilot autocomplete half my brain, and I’m done before my coffee cools.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="4763"&gt;No digging through repos.&lt;br&gt;No reading long issue threads.&lt;br&gt;No “why does this even work?” moment.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="e4a8"&gt;Just… solution acquired.&lt;/p&gt;
&lt;p id="a605"&gt;And I realized something slightly weird:&lt;/p&gt;
&lt;p id="56f6"&gt;I hadn’t &lt;em&gt;browsed GitHub&lt;/em&gt; in days.&lt;/p&gt;
&lt;p id="e040"&gt;Not for discovery. Not for learning. Not even out of curiosity.&lt;/p&gt;
&lt;p id="a81d"&gt;That felt off. Because GitHub wasn’t just a tool it used to be a place. You’d wander into random repos at midnight, read code like a detective, star things you didn’t fully understand, and somehow come out smarter.&lt;/p&gt;
&lt;p id="b24b"&gt;Now it’s starting to feel like background infrastructure. Like electricity. Still essential… but invisible.&lt;/p&gt;
&lt;h3 id="d411"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="5f33"&gt;GitHub isn’t actually dying&lt;/li&gt;

&lt;li id="9214"&gt;But the way developers &lt;em&gt;use&lt;/em&gt; it is shifting fast&lt;/li&gt;

&lt;li id="a142"&gt;AI tools are replacing exploration with instant answers&lt;/li&gt;

&lt;li id="ff11"&gt;Open-source culture might be taking a quiet hit because of it&lt;/li&gt;

&lt;li id="98c5"&gt;And most of us didn’t even notice it happening&lt;/li&gt;

&lt;/ul&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b9ac"&gt;Github was never just code hosting&lt;/h2&gt;
&lt;p id="2f2f"&gt;It’s easy to think of GitHub as “that place where my repos live.”&lt;br&gt;Like a cloud Dropbox… but with commit guilt and merge conflicts.&lt;br&gt;But if you’ve been around long enough, you know that’s not even close to the full story.&lt;br&gt;GitHub wasn’t just infrastructure it was a &lt;em&gt;hangout spot&lt;/em&gt; for developers.&lt;br&gt;When I first started pushing code, I didn’t care about CI/CD pipelines or clean commit history. I cared about one thing:&lt;/p&gt;
&lt;p id="2c21"&gt;&lt;strong&gt;Someone starring my repo.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="c2ac"&gt;That tiny star felt illegal. Like… why is a random person on the internet validating my spaghetti code?&lt;/p&gt;
&lt;p id="cb68"&gt;And then you start exploring.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="1d05"&gt;You click on who starred your repo → check their profile → see what &lt;em&gt;they’re&lt;/em&gt; building → fall into a rabbit hole of projects → suddenly it’s been an hour and you’ve learned three new ways to structure an API without opening a single tutorial.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="2de8"&gt;That loop? That was GitHub’s real power.&lt;/p&gt;
&lt;p id="af2c"&gt;&lt;strong&gt;GitHub quietly became this weird hybrid of:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="534f"&gt;A portfolio (your green squares were basically your XP bar)&lt;/li&gt;

&lt;li id="606a"&gt;A social network (stars, forks, followers)&lt;/li&gt;

&lt;li id="8612"&gt;A discovery engine (trending page was dev TikTok before TikTok)&lt;/li&gt;

&lt;li id="a394"&gt;And yeah… a code host&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8c61"&gt;It wasn’t just where code &lt;em&gt;lived&lt;/em&gt; it was where developers &lt;em&gt;learned by osmosis&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="5a16"&gt;You didn’t just read docs.&lt;br&gt;You read real code. Messy code. Genius code. Code that made you question your life choices.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="9cef"&gt;And that mattered.&lt;/p&gt;
&lt;p id="f613"&gt;&lt;strong&gt;Because there’s a huge difference between:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="ecc8"&gt;Reading a tutorial on how authentication works&lt;/li&gt;

&lt;li id="2d04"&gt;Vs digging through a production repo and seeing how someone &lt;em&gt;actually&lt;/em&gt; handled auth, edge cases, and all the weird hacks they didn’t put in the blog post&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="373c"&gt;One teaches you theory.&lt;br&gt;The other teaches you survival.&lt;/p&gt;
&lt;p id="8a29"&gt;There was also this unspoken culture around it.&lt;/p&gt;
&lt;p id="0d22"&gt;You’d find a repo with 20k stars and think, “okay this is probably legit.”&lt;br&gt;You’d read through issues like you were reading a story arc bugs, drama, fixes, debates.&lt;br&gt;Sometimes the comments were more educational than entire courses.&lt;/p&gt;
&lt;p id="f743"&gt;And contributing? That was a whole character arc.&lt;/p&gt;
&lt;p id="e359"&gt;Your first PR felt like applying for a job. You reread your own code ten times, convinced you broke the internet. &lt;br&gt;&lt;strong&gt;Then a maintainer leaves a comment like:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="8c59"&gt;“Hey, can you rename this variable?”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="000e"&gt;&lt;strong&gt;And you’re like… that’s it? I’m in??&lt;/strong&gt;&lt;/p&gt;
&lt;p id="828b"&gt;Even the UI nudged you into curiosity.&lt;/p&gt;
&lt;p id="29c2"&gt;You’d land on the trending page and see things like React or TensorFlow blowing up, and suddenly you’re opening repos you had no business understanding yet.&lt;/p&gt;
&lt;p id="00ca"&gt;But you tried anyway.&lt;br&gt;And that’s kind of the point.&lt;br&gt;GitHub trained an entire generation of developers to &lt;em&gt;explore first, understand later&lt;/em&gt;.&lt;/p&gt;
&lt;p id="49a0"&gt;&lt;strong&gt;The wild part?&lt;/strong&gt;&lt;/p&gt;
&lt;p id="e937"&gt;None of this was explicitly designed as “learning.”&lt;br&gt;There was no curriculum. No structured path. No roadmap.&lt;/p&gt;
&lt;p id="7835"&gt;&lt;strong&gt;Just:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="6122"&gt;Curiosity&lt;/li&gt;

&lt;li id="a82c"&gt;Public code&lt;/li&gt;

&lt;li id="79e8"&gt;And a little bit of ego&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="e893"&gt;And somehow, that combination worked ridiculously wellso when people say “GitHub is just a tool,” it feels incomplete because for a lot of us, it was more like a playground.&lt;/p&gt;
&lt;p id="09bf"&gt;A messy, chaotic, sometimes broken playground… but one where you leveled up faster than you realized and that’s exactly why what’s happening now feels different not because GitHub is going away but because fewer people are &lt;em&gt;wandering around it anymore&lt;/em&gt;.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="3f97"&gt;The shift: from searching code to generating code&lt;/h2&gt;
&lt;p id="ef37"&gt;There’s a subtle shift happening in how we solve problems as developers and it didn’t arrive with a big announcement. It just… slipped into our workflow.&lt;/p&gt;
&lt;p id="b5fc"&gt;The old loop was almost ritualistic. You’d hit an error, copy it, throw it into Google, open three tabs you didn’t trust, land on Stack Overflow, scroll past a passive-aggressive comment, and eventually find a thread that &lt;em&gt;almost&lt;/em&gt; matched your issue. Then you’d end up on a GitHub issue page from 2019, where someone had the exact same problem and a fix that may or may not break everything else.&lt;/p&gt;
&lt;p id="b1d0"&gt;It was messy. Slow. Sometimes painful. But it forced you to &lt;em&gt;think&lt;/em&gt;. You read context. You compared solutions. You accidentally learned things you weren’t even looking for.&lt;/p&gt;
&lt;p id="ed74"&gt;Now the loop looks completely different.&lt;/p&gt;
&lt;p id="e614"&gt;You open ChatGPT or rely on GitHub Copilot, paste your error, maybe add a sentence like “this is happening in my React auth flow,” and boom — you get a clean, confident answer. Sometimes even multiple options. No tabs. No digging. No wandering.&lt;/p&gt;
&lt;p id="c8e7"&gt;Just output.&lt;/p&gt;
&lt;p id="1f51"&gt;And yeah… it works.&lt;/p&gt;
&lt;p id="0227"&gt;That’s the part that makes this shift hard to argue against. It’s not worse it’s &lt;em&gt;better&lt;/em&gt; in terms of speed. You go from “I need to understand this problem” to “I need this problem gone” in seconds.&lt;/p&gt;
&lt;p id="ae6c"&gt;But something quietly disappears in that transition.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="22d4"&gt;You stop exploring.&lt;br&gt;You stop reading other people’s code.&lt;br&gt;You stop seeing how different developers approached the same problem.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="8da5"&gt;Instead of navigating through a messy ecosystem of ideas, you’re handed a synthesized answer that feels final even when it isn’t.&lt;/p&gt;
&lt;p id="26af"&gt;It’s like going from exploring an open-world game to using fast travel everywhere. You still reach the destination, but you miss everything in between.&lt;/p&gt;
&lt;p id="7cc5"&gt;I noticed this the other day while fixing a weird token refresh issue. A year ago, I would’ve gone deep read through auth libraries, checked how other repos handled edge cases, maybe even discovered a better pattern along the way. This time? I asked AI, got a solution, tweaked two lines, and moved on.&lt;/p&gt;
&lt;p id="b04e"&gt;It worked. I shipped.&lt;/p&gt;
&lt;p id="5de5"&gt;But if you asked me &lt;em&gt;why&lt;/em&gt; it worked… I’d probably give you a half-confident answer and change the subject.&lt;/p&gt;
&lt;p id="9f97"&gt;And that’s the trade-off we’re starting to normalize.&lt;/p&gt;
&lt;p id="4246"&gt;We’re compressing the learning process into a black box.&lt;/p&gt;
&lt;p id="348d"&gt;There’s also this weird side effect where code feels more disposable now. Before, you’d recognize snippets from popular repos or patterns you’d seen in the wild. Now, a lot of what we write (or generate) feels… anonymous. Like it could’ve come from anywhere.&lt;/p&gt;
&lt;p id="8e30"&gt;Because it kinda did.&lt;/p&gt;
&lt;p id="08b4"&gt;We’re no longer pulling from a specific repo or developer we’re pulling from a statistical blend of &lt;em&gt;everything&lt;/em&gt;.&lt;/p&gt;
&lt;p id="9284"&gt;And that changes your relationship with code in a subtle way.&lt;/p&gt;
&lt;p id="d19b"&gt;You’re not tracing ideas back to their source anymore. You’re not thinking, “oh this is how that library does it.” You’re thinking, “cool, this works.”&lt;/p&gt;
&lt;p id="a34a"&gt;Even boilerplate has changed. Instead of cloning starter repos or browsing templates on GitHub, you just ask for a setup. Need a Node API with JWT auth and rate limiting? Done. Need a Docker config? Generated. Need tests? Sure, why not.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="a275"&gt;No repo required.&lt;br&gt;No exploration needed.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="98a9"&gt;And again, this isn’t a complaint it’s just… different.&lt;/p&gt;
&lt;p id="29aa"&gt;Faster. Smoother. More efficient.&lt;/p&gt;
&lt;p id="add4"&gt;But also a little bit flatter.&lt;/p&gt;
&lt;p id="6a56"&gt;Because when everything becomes instant, you lose the friction that used to teach you something.&lt;/p&gt;
&lt;p id="cbd7"&gt;And that friction? That’s exactly what made GitHub such a valuable place to wander in the first place.&lt;/p&gt;
&lt;p id="099e"&gt;If the old internet taught us how to search, this new one is teaching us how to ask.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="91a3"&gt;The question is… what are we &lt;em&gt;not&lt;/em&gt; learning anymore?&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="df8c"&gt;Open source is quietly losing oxygen&lt;/h2&gt;
&lt;p id="ac18"&gt;Here’s the part nobody really wants to say out loud.&lt;/p&gt;
&lt;p id="f3ae"&gt;AI didn’t just change how we write code it changed how we &lt;em&gt;participate&lt;/em&gt; in the ecosystem that taught us how to code in the first place.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="e116"&gt;Open source used to run on a simple loop: you use something → you break something → you dig into the repo → maybe you fix something → eventually you contribute.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="6b8f"&gt;That loop wasn’t perfect, but it worked.&lt;/p&gt;
&lt;p id="9784"&gt;Now? A lot of that loop just… stops halfway.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="4d72"&gt;You use something → it breaks → you ask ChatGPT → you get a fix → you move on.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p id="225e"&gt;No issue opened.&lt;br&gt;No repo explored.&lt;br&gt;No contribution made.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="1eb3"&gt;Multiply that by millions of developers, and you start to feel the shift.&lt;/p&gt;
&lt;p id="cb0c"&gt;It’s like everyone still &lt;em&gt;consumes&lt;/em&gt; open source, but fewer people are actually &lt;em&gt;feeding it back&lt;/em&gt;.&lt;/p&gt;
&lt;p id="603b"&gt;There’s a weird analogy that keeps popping into my head.&lt;/p&gt;
&lt;p id="e659"&gt;Open source is starting to feel like Wikipedia if everyone read articles, but nobody edited them anymore.&lt;/p&gt;
&lt;p id="2c1c"&gt;The knowledge stays useful… for a while. But eventually, it gets stale. Maintainers burn out. Things stop evolving.&lt;/p&gt;
&lt;p id="755e"&gt;And we’re already seeing early signs of that.&lt;/p&gt;
&lt;p id="a945"&gt;Maintainers complaining about burnout.&lt;br&gt;Projects going quiet.&lt;br&gt;Issues sitting unanswered longer than they used to.&lt;/p&gt;
&lt;p id="fec2"&gt;Not because people don’t care but because fewer people are &lt;em&gt;showing up&lt;/em&gt;.&lt;/p&gt;
&lt;p id="01bb"&gt;And then there’s the other side of it.&lt;/p&gt;
&lt;p id="115e"&gt;When people &lt;em&gt;do&lt;/em&gt; contribute now, there’s a growing wave of low-effort, AI-generated pull requests.&lt;/p&gt;
&lt;p id="03d1"&gt;&lt;strong&gt;You’ll see things like:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="0316"&gt;Random refactors that don’t solve real problems&lt;/li&gt;

&lt;li id="242b"&gt;Overly verbose code that technically works but feels off&lt;/li&gt;

&lt;li id="36b6"&gt;PR descriptions that read like they were written by a polite robot&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="975b"&gt;Maintainers have to filter through that noise, which honestly sounds exhausting.&lt;/p&gt;
&lt;p id="61b4"&gt;Imagine reviewing 20 PRs and half of them feel like someone just pasted from an AI without understanding the codebase.&lt;/p&gt;
&lt;p id="0efd"&gt;That’s not contribution that’s cleanup duty.&lt;/p&gt;
&lt;p id="3dd5"&gt;&lt;strong&gt;The uncomfortable truth is this:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="14c6"&gt;AI is trained on open source, but it doesn’t contribute back to it.&lt;br&gt;It extracts value at scale, but the feedback loop the human part starts weakening.&lt;br&gt;And if that loop breaks long enough, the whole system slows down.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="d465"&gt;Less contribution → fewer improvements → weaker tools → more reliance on AI → even less contribution.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="ea9d"&gt;You can see where that spiral goes.&lt;/p&gt;
&lt;p id="7832"&gt;I felt this recently when I opened a repo I used to rely on. Issues were piling up, last meaningful commit was months ago, and the maintainer had a pinned note basically saying, “I don’t have time for this anymore.”&lt;/p&gt;
&lt;p id="72e3"&gt;That hit a bit harder than expected.&lt;/p&gt;
&lt;p id="dfd3"&gt;Because open source wasn’t just free tools it was people. Random devs on the internet deciding to build things and share them.&lt;/p&gt;
&lt;p id="ca60"&gt;And if fewer people feel the need to engage with that process, something important starts fading.&lt;/p&gt;
&lt;p id="be05"&gt;This doesn’t mean open source is “dying.”&lt;/p&gt;
&lt;p id="35fe"&gt;But it does mean the &lt;em&gt;energy&lt;/em&gt; around it is shifting.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="5a53"&gt;Less curiosity.&lt;br&gt;Less contribution.&lt;br&gt;More consumption.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="ba00"&gt;And if GitHub was the place where that energy used to live…&lt;/p&gt;
&lt;p id="9a32"&gt;then yeah, it makes sense why it feels a little quieter lately.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="1033" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Aqam69eNdpd6FUsBNCIVBuA.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="cf1a"&gt;Github isn’t dying it’s being abstracted away&lt;/h2&gt;
&lt;p id="1076"&gt;Saying GitHub is “dying” is a bit dramatic.&lt;/p&gt;
&lt;p id="c994"&gt;What’s actually happening is simpler and honestly more interesting.&lt;/p&gt;
&lt;p id="dbb9"&gt;It’s becoming invisible.&lt;/p&gt;
&lt;p id="8702"&gt;Most of us still use GitHub every day… we just don’t &lt;em&gt;go to GitHub&lt;/em&gt; anymore.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="c0d9"&gt;You commit from your IDE.&lt;br&gt;You review PRs inside your editor.&lt;br&gt;You let GitHub Copilot suggest changes inline.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="0dc2"&gt;GitHub is still there it’s just sitting in the background like plumbing.&lt;/p&gt;
&lt;p id="9e8b"&gt;This is what happens to successful tools.&lt;/p&gt;
&lt;p id="b1a4"&gt;They stop being destinations and start becoming layers.&lt;/p&gt;
&lt;p id="ed20"&gt;Nobody “browses AWS” for fun. You just deploy stuff.&lt;br&gt;Nobody thinks about Git anymore you just commit and move on.&lt;/p&gt;
&lt;p id="2021"&gt;GitHub is heading in the same direction.&lt;/p&gt;
&lt;p id="9e76"&gt;Less website.&lt;br&gt;More infrastructure.&lt;/p&gt;
&lt;p id="d70e"&gt;I realized this when I checked my own workflow.&lt;/p&gt;
&lt;p id="35d1"&gt;There are days where I push commits, review code, even merge PRs… and never open github.com once.&lt;/p&gt;
&lt;p id="820b"&gt;Everything happens inside the editor.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="bfa4"&gt;No trending page.&lt;br&gt;No random repo exploration.&lt;br&gt;No falling into code rabbit holes.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p id="7a57"&gt;Just task → commit → done.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="77ef"&gt;And that shift matters more than it looks.&lt;/p&gt;
&lt;p id="6ea5"&gt;Because when a platform becomes invisible, you stop &lt;em&gt;interacting&lt;/em&gt; with it beyond necessity.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="910b"&gt;You don’t wander.&lt;br&gt;You don’t discover.&lt;br&gt;You don’t get curious.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="c52a"&gt;You just use it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="a291"&gt;So yeah GitHub isn’t going anywhere.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="a791"&gt;But it’s slowly turning into something we &lt;em&gt;use without noticing&lt;/em&gt;.&lt;/p&gt;
&lt;p id="c0b0"&gt;Like electricity.&lt;/p&gt;
&lt;p id="cb9a"&gt;Always there.&lt;br&gt;Always critical.&lt;/p&gt;
&lt;p id="28b2"&gt;Just… no longer a place you hang out.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="ee38"&gt;What this means for developers&lt;/h2&gt;
&lt;p id="e371"&gt;This shift isn’t just about tools it changes what it means to be a developer.&lt;/p&gt;
&lt;p id="a73c"&gt;Before, a big part of leveling up was learning how to search. You got good at digging through GitHub, reading messy code, comparing approaches, and slowly building intuition.&lt;/p&gt;
&lt;p id="cd2e"&gt;Now the skill is different.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="2918"&gt;It’s less “can you find the answer?”&lt;br&gt;and more “can you judge if this answer is actually good?”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="0c6f"&gt;Because tools like ChatGPT and GitHub Copilot will give you something almost instantly.&lt;/p&gt;
&lt;p id="ba55"&gt;The problem is… it’s not always the right thing.&lt;/p&gt;
&lt;p id="baca"&gt;There’s a growing gap forming between two types of devs.&lt;/p&gt;
&lt;p id="47a9"&gt;The first one ships fast. Uses AI for everything. Gets things working quickly.&lt;/p&gt;
&lt;p id="1732"&gt;The second one still digs deeper. Understands why things work. Knows when AI is hallucinating or suggesting something slightly dangerous.&lt;/p&gt;
&lt;p id="478c"&gt;Both can build.&lt;/p&gt;
&lt;p id="9b4c"&gt;But only one can debug when things go sideways.&lt;/p&gt;
&lt;p id="bcd7"&gt;I’ve felt this myself reviewing AI-generated code.&lt;/p&gt;
&lt;p id="4595"&gt;On the surface, it looks clean. Functions named well. Comments make sense. Tests even pass.&lt;/p&gt;
&lt;p id="1cb3"&gt;But something feels… off.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="2b40"&gt;Maybe it’s over-engineered.&lt;br&gt;Maybe it ignores an edge case.&lt;br&gt;Maybe it solves the problem but in a way that won’t scale.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="f0f3"&gt;You can’t always see the issue immediately you feel it from experience and that’s the part AI can’t shortcut for you.&lt;/p&gt;
&lt;p id="4f80"&gt;There’s also a risk for newer developers.&lt;br&gt;If you skip the “wander around GitHub and break things” phase, you miss out on building that intuition.&lt;/p&gt;
&lt;p id="5400"&gt;You become really good at prompting… but not as good at reasoning.&lt;/p&gt;
&lt;p id="0ee1"&gt;Like using auto-aim in a shooter you’ll hit targets, but your raw aim never improves.&lt;/p&gt;
&lt;p id="a7a9"&gt;That said, it’s not all doom.&lt;/p&gt;
&lt;p id="b2d0"&gt;This is also kind of a superpower era.&lt;/p&gt;
&lt;p id="d642"&gt;Solo devs can build faster than ever.&lt;br&gt;Side projects that used to take weeks now take days.&lt;br&gt;You can prototype ideas without getting stuck in boilerplate hell.&lt;/p&gt;
&lt;p id="0c46"&gt;That’s huge.&lt;/p&gt;
&lt;p id="0c87"&gt;So the move isn’t to reject AI or go back to manually digging through repos like it’s 2015.&lt;/p&gt;
&lt;p id="2b7f"&gt;It’s to balance it.&lt;/p&gt;
&lt;p id="6e5d"&gt;Use AI to move fast.&lt;br&gt;But still take time to understand what you’re shipping.&lt;br&gt;Still read real code sometimes.&lt;br&gt;Still open a random repo and explore like you used to.&lt;/p&gt;
&lt;p id="c0de"&gt;Because in the end, the devs who win won’t be the ones who rely on AI the most.&lt;/p&gt;
&lt;p id="d983"&gt;It’ll be the ones who can work with it without losing their ability to think.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="622c"&gt;Conclusion github isn’t dead, but the culture might be&lt;/h2&gt;
&lt;p id="7e90"&gt;So no GitHub isn’t dying.&lt;br&gt;If anything, it’s more critical than ever.&lt;/p&gt;
&lt;p id="9d0b"&gt;But the way we &lt;em&gt;interact&lt;/em&gt; with it? That’s changing fast.&lt;/p&gt;
&lt;p id="56c1"&gt;We used to explore.&lt;br&gt;Now we execute.&lt;/p&gt;
&lt;p id="b131"&gt;We used to learn by wandering through repos.&lt;br&gt;Now we get answers handed to us.&lt;/p&gt;
&lt;p id="9dd1"&gt;And yeah, that makes us faster but maybe a little less curious.&lt;/p&gt;
&lt;p id="8a07"&gt;The real loss isn’t the platform.&lt;/p&gt;
&lt;p id="e31c"&gt;It’s the culture around it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="e83b"&gt;The late-night repo deep dives.&lt;br&gt;The random discoveries.&lt;br&gt;The “wait… this is how they did it?” moments.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="2ee2"&gt;That’s the stuff that quietly made people better developers.&lt;/p&gt;
&lt;p id="b841"&gt;Moving forward, it’s probably not about choosing sides.&lt;/p&gt;
&lt;p id="9708"&gt;Not “AI vs GitHub.”&lt;/p&gt;
&lt;p id="d012"&gt;It’s about not letting speed replace understanding completely.&lt;/p&gt;
&lt;p id="620b"&gt;Because the devs who stay curious even in an AI-first world are the ones who’ll actually stand out.&lt;/p&gt;
&lt;p id="a4d9"&gt;We didn’t lose GitHub.&lt;br&gt;We just stopped visiting it.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="8fcb"&gt;Helpful resources&lt;/h2&gt;
&lt;p id="f8ac"&gt;If you want to explore this shift yourself (or just go down a few good rabbit holes again), here are some solid starting points:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="4f5b"&gt;

&lt;strong&gt;GitHub Docs&lt;/strong&gt; &lt;a href="https://docs.github.com" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://docs.github.com" rel="noopener noreferrer"&gt;https://docs.github.com&lt;/a&gt;
&lt;/li&gt;

&lt;li id="2aca"&gt;

&lt;strong&gt;GitHub Copilot Docs&lt;/strong&gt; &lt;a href="https://docs.github.com/en/copilot" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://docs.github.com/en/copilot" rel="noopener noreferrer"&gt;https://docs.github.com/en/copilot&lt;/a&gt;
&lt;/li&gt;

&lt;li id="0eea"&gt;

&lt;strong&gt;OpenAI API&lt;/strong&gt; &lt;a href="https://platform.openai.com/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://platform.openai.com/docs" rel="noopener noreferrer"&gt;https://platform.openai.com/docs&lt;/a&gt;
&lt;/li&gt;

&lt;li id="3871"&gt;

&lt;strong&gt;Visual Studio Code GitHub integration &lt;/strong&gt;&lt;a href="https://code.visualstudio.com/docs/sourcecontrol/overview" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://code.visualstudio.com/docs/sourcecontrol/overview" rel="noopener noreferrer"&gt;https://code.visualstudio.com/docs/sourcecontrol/overview&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>git</category>
      <category>github</category>
    </item>
    <item>
      <title>Vibe coding is dead. Long live actual coding.</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:59:22 +0000</pubDate>
      <link>https://forem.com/dev_tips/vibe-coding-is-dead-long-live-actual-coding-24e2</link>
      <guid>https://forem.com/dev_tips/vibe-coding-is-dead-long-live-actual-coding-24e2</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="fba0"&gt;We prompt-engineered ourselves into a corner. Now the market wants engineers again not prompt jockeys.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;p id="1b80"&gt;You ever ship a product nobody wanted?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="a4f1"&gt;Same. Specifically, a SaaS tool. I built it in a weekend. &lt;a href="https://cursor.sh" rel="noopener ugc nofollow noreferrer"&gt;Cursor&lt;/a&gt; wrote 90% of it. It had a landing page, a pricing table, a waitlist. Looked genuinely good. Felt like cheating.&lt;/p&gt;
&lt;p id="5273"&gt;Nobody signed up.&lt;/p&gt;
&lt;p id="6688"&gt;Not because the idea was bad. Because the idea was &lt;em&gt;everywhere&lt;/em&gt;. By the time I shipped, there were already six nearly identical tools on Product Hunt. Same gradient blob header. Same &lt;em&gt;“seamless, effortless automation”&lt;/em&gt; hero copy. Same three-tier pricing. Same vibe.&lt;/p&gt;
&lt;p id="9567"&gt;That’s the thing about vibe coding it worked too well.&lt;/p&gt;
&lt;p id="fbbd"&gt;In early 2024, &lt;a href="https://twitter.com/karpathy/status/1886192184808149383" rel="noopener ugc nofollow noreferrer"&gt;Andrej Karpathy dropped the term&lt;/a&gt; and basically handed every developer, designer, PM, and guy-with-a-napkin-idea a skeleton key to software. &lt;em&gt;“Fully give in to the vibes,”&lt;/em&gt; he said. &lt;em&gt;“Forget that the code even exists.”&lt;/em&gt; And we did. God, we did. Cursor blew up. Bolt.new launched. Replit got a second wind. A whole generation of builders who’d never touched a terminal shipped real products in real weekends. It was electric.&lt;/p&gt;
&lt;p id="c429"&gt;Then everyone got the cheat code at the same time.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AMFVlYHGkq8SlidNDOcQzuw.png"&gt;&lt;p id="c700"&gt;The internet didn’t get richer. It got noisier. Identical tools. Identical copy. Identical forgettable experiences that bounce users in four seconds because they’ve already seen this page twice today. What started as a unlock became a commodity. And commodities don’t make money.&lt;/p&gt;
&lt;p id="2955"&gt;So here we are. The vibe is fading. Not because AI got worse. Because &lt;em&gt;everyone&lt;/em&gt; has it now and “everyone can build” turns out to mean “nothing you build automatically stands out.”&lt;/p&gt;
&lt;p id="d55d"&gt;This piece is about what actually killed vibe coding, what the market quietly started asking for instead, and what kind of engineer actually wins in 2026. Not hype. Just pattern recognition from watching a lot of weekend SaaS tools die in silence.&lt;/p&gt;
&lt;p id="b1d9"&gt;&lt;strong&gt;Here’s what we’re covering:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="2e81"&gt;The vibe coding era and how it ate itself&lt;/li&gt;

&lt;li id="9aad"&gt;The slop problem when everyone builds, nothing stands out&lt;/li&gt;

&lt;li id="59f5"&gt;Why the market is quietly pivoting back to real engineers&lt;/li&gt;

&lt;li id="1075"&gt;The new skill stack that actually matters now&lt;/li&gt;

&lt;li id="866b"&gt;What comes after the vibes&lt;/li&gt;

&lt;/ul&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a6a3"&gt;The vibe coding era and how it ate itself&lt;/h2&gt;
&lt;p id="f175"&gt;Let’s be fair to vibe coding for a second. Because before we bury it, it deserves a real eulogy.&lt;/p&gt;
&lt;p id="f4ac"&gt;What Karpathy described wasn’t laziness. It was a genuine unlock. For the first time, the bottleneck between &lt;em&gt;having an idea&lt;/em&gt; and &lt;em&gt;shipping an idea&lt;/em&gt; basically disappeared. You didn’t need to know React. You didn’t need to understand why your CSS was broken. You just described what you wanted, iterated in natural language, and something real came out the other side. Designers started shipping backends. PMs started prototyping their own feature requests. Solo founders stopped waiting on dev agencies and just built the thing themselves.&lt;/p&gt;
&lt;p id="d47a"&gt;That was real. That mattered. Vibe coding democratized building the same way smartphones democratized photography.&lt;/p&gt;
&lt;p id="284f"&gt;And then same as smartphones everyone became a photographer.&lt;/p&gt;
&lt;p id="aeed"&gt;The problem with cheat codes is they stop being cheat codes the moment everyone has them. In 2024, shipping a functional web app in a weekend felt like a superpower. By mid-2025, it was table stakes. By the time you’re reading this, it’s basically the minimum bar for a side project. The speed advantage compressed to zero. What took a 10x engineer two weeks now takes a prompt-comfortable beginner two days. Great for the beginner. Rough for differentiation.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="e247"&gt;“When everybody can build without effort, the value of building also decreases.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="37b9"&gt;That line is from Michal Malewicz’s piece and it’s the cleanest way to say it. The floor rose. But so did the noise.&lt;/p&gt;
&lt;p id="f7bb"&gt;Think about what actually happened on Product Hunt over the last eighteen months. A tidal wave of GPT wrappers. AI summarizers for every possible document format. “Notion but with AI.” “Slack but with AI.” “Email but with AI.” Each one functional. Each one shipped fast. Each one forgotten in a week. The Hacker News graveyard of vibe-coded microsaas is long and it keeps growing.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ALhxJyVDJkXqMgep6_8s6Lw.png"&gt;&lt;p id="6a4e"&gt;I remember the exact moment it clicked for me. I was doing competitive research which, yes, just means googling your own idea to see who beat you and I found a tool that was basically what I was building. Fine, happens. Then I found another one. Then three more. Then I realized I was looking at the same Tailwind template with different color schemes and different domain names. Different founders. Same vibe. Same outcome: none of them had meaningful traction.&lt;/p&gt;
&lt;p id="101a"&gt;That’s the tragedy of the commons playing out in SaaS form. When the resource is “ability to build software quickly,” and everyone gets access to it simultaneously, the resource stops being scarce. And in markets, scarcity is where value lives.&lt;/p&gt;
&lt;p id="dd21"&gt;Vibe coding didn’t fail because the tools got worse. It failed because it succeeded too completely.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="9c66"&gt;The slop problem: when everyone builds, nothing stands out&lt;/h2&gt;
&lt;p id="f745"&gt;There’s a word that’s been floating around developer Twitter for a while now and it finally stuck: &lt;em&gt;slop&lt;/em&gt;.&lt;/p&gt;
&lt;p id="7f48"&gt;&lt;a href="https://simonwillison.net/2024/May/8/slop/" rel="noopener ugc nofollow noreferrer"&gt;Simon Willison coined it cleanly&lt;/a&gt; AI-generated content that’s technically correct, aesthetically acceptable, and completely, soul-crushingly generic. Not broken enough to reject. Not good enough to remember. It just exists. Takes up space. Occupies a URL.&lt;/p&gt;
&lt;p id="f2fc"&gt;We have a slop epidemic. And it’s not just content anymore it’s products.&lt;/p&gt;
&lt;p id="1d2e"&gt;Open any three AI tools launched in the last year. I’ll wait. Notice anything? Gradient blob in the hero. Sans-serif headline that says something about &lt;em&gt;streamlining your workflow&lt;/em&gt;. Feature grid with checkmarks. Pricing table, three tiers, middle one highlighted. Testimonials section with suspiciously perfect five-star reviews from people named “Sarah, Marketing Manager.” A footer with a cookie banner that nobody reads.&lt;/p&gt;
&lt;p id="f904"&gt;You’ve seen this page. You’ve seen it forty times. Your brain pattern-matches it in about 1.3 seconds and files it under &lt;em&gt;skip&lt;/em&gt;. Not because it’s bad. Because it’s &lt;em&gt;identical&lt;/em&gt;. And identical things don’t convert. They don’t get remembered. They don’t get shared. They quietly die with eleven monthly active users, three of whom are the founder’s friends doing a favor.&lt;/p&gt;
&lt;p id="cfd4"&gt;This is what happens when the tool abstracts away not just the complexity of building but the &lt;em&gt;craft&lt;/em&gt; of building.&lt;/p&gt;
&lt;p id="bd83"&gt;Craft is the thing that used to slow people down and also the thing that made work distinct. When building something took weeks, you made decisions. You had opinions. You pushed back on bad ideas because you were the one who’d be living in that codebase for months. Vibe coding removed the friction. But friction, it turns out, was doing some useful filtering.&lt;/p&gt;
&lt;p id="54fc"&gt;The users noticed before the builders did. Conversion rates on AI-generated microsaas have been quietly disappointing across the board. Not because users hate AI tools they use them constantly. But because they’ve developed a very fast radar for soulless products. They bounce. They churn. They don’t recommend. The attention economy isn’t getting fooled by a well-prompted landing page anymore.&lt;/p&gt;
&lt;p id="9a5d"&gt;What’s worse is the security layer nobody talks about. Vibe-coded apps often skip the boring parts input validation, auth edge cases, rate limiting, dependency hygiene. Not maliciously. Just because the vibe doesn’t naturally lead you there. AI autocomplete isn’t going to stop mid-generation and say &lt;em&gt;“hey, should we think about SQL injection here?”&lt;/em&gt; &lt;a href="https://owasp.org/www-project-top-ten/" rel="noopener ugc nofollow noreferrer"&gt;OWASP has been quietly updating their guidance&lt;/a&gt; on AI-assisted development risks and the pattern is consistent: fast shipping without fundamentals creates exploitable surface area at scale.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Ay7C0VYhkPNohUOqg2fiNsg.png"&gt;&lt;p id="353f"&gt;The slop problem isn’t a design problem or a marketing problem. It’s a depth problem. You can’t vibe your way to a product that people trust, return to, and tell their colleagues about. That takes something the AI can accelerate but cannot replace: genuine understanding of what you’re building and why it should exist differently than the other 192 things exactly like it.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="02ee"&gt;Why the market is quietly pivoting back to real engineers&lt;/h2&gt;
&lt;p id="2b2a"&gt;Nobody’s going to announce this. There won’t be a TechCrunch headline that says &lt;em&gt;“vibe coding era officially over, fundamentals back in fashion.”&lt;/em&gt; It’s happening the way most market corrections happen quietly, in hiring docs and Slack threads and post-mortems that never get published.&lt;/p&gt;
&lt;p id="d336"&gt;But it’s happening.&lt;/p&gt;
&lt;p id="f762"&gt;Talk to anyone doing technical hiring right now and you start hearing the same thing. The bar shifted. Not away from AI fluency that’s still table stakes but &lt;em&gt;toward&lt;/em&gt; people who can actually reason about what the AI produces. Who can read a stack trace. Who can look at a 400-line function Cursor generated and say &lt;em&gt;“this works but it’s going to fall over at scale and here’s why.”&lt;/em&gt; That person is suddenly very hard to find.&lt;/p&gt;
&lt;p id="80d4"&gt;Because a lot of people spent the last eighteen months optimizing for speed of generation instead of depth of understanding.&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="8726"&gt;“I can build anything.”&lt;/p&gt;

&lt;p id="18e7"&gt;“Okay. Can you debug it?”&lt;/p&gt;

&lt;p id="40ab"&gt;“…give me a sec, I’ll ask Claude.”&lt;/p&gt;


&lt;/blockquote&gt;
&lt;p id="a73f"&gt;That conversation is happening in interviews right now. And it’s ending careers.&lt;/p&gt;
&lt;p id="0cf2"&gt;The dirty secret of vibe-coded codebases is what happens six months after launch. The MVP shipped fast. Users came in. Things broke in ways the AI didn’t anticipate because the AI was pattern-matching on training data, not reasoning about your specific architecture. Now you’ve got a production system, real users, and nobody on the team who actually understands what they built. The tech debt isn’t just messy it’s &lt;em&gt;illegible&lt;/em&gt;. You can’t refactor what you can’t read.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2A_Wz3QxkIhuy-N-ofZENRhg.png"&gt;&lt;p id="a255"&gt;Companies that moved fast on vibe coding are now quietly hiring people to clean up the aftermath. Not prompt engineers. Engineers. People who understand memory management, database indexing, API design, security boundaries. The boring stuff that never made it into the weekend build tutorial.&lt;/p&gt;
&lt;p id="6bfa"&gt;And here’s the thing that should make every developer feel something between vindicated and relieved: the &lt;a href="https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/" rel="noopener ugc nofollow noreferrer"&gt;GitHub research on Copilot&lt;/a&gt; showed a 55% productivity gain for developers using AI assistance. But that gain compounds &lt;em&gt;on top of&lt;/em&gt; existing skill. A strong engineer with Cursor is terrifyingly productive. A weak engineer with Cursor is just a faster way to produce confused code nobody can maintain.&lt;/p&gt;
&lt;p id="11aa"&gt;The multiplier needs a base number to multiply.&lt;/p&gt;
&lt;p id="5db2"&gt;&lt;a href="https://roadmap.sh" rel="noopener ugc nofollow noreferrer"&gt;roadmap.sh&lt;/a&gt; never stopped being relevant. DSA never stopped mattering. System design never became optional. The market just temporarily forgot that because the demo always works. It’s production that filters signal from noise.&lt;/p&gt;
&lt;p id="7f4e"&gt;The devs who kept their fundamentals sharp while picking up AI tooling? They are the rarest, most in-demand creature in the current market. Not because they rejected the new tools. Because they never let the new tools replace the old thinking.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="326f"&gt;The new skill stack that actually matters now&lt;/h2&gt;
&lt;p id="fa4f"&gt;Let me kill a bad take before it spreads further.&lt;/p&gt;
&lt;p id="b30e"&gt;This is not &lt;em&gt;“AI bad, go back to writing everything by hand.”&lt;/em&gt; Nobody’s asking you to ditch Cursor and suffer through boilerplate like it’s 2019. That’s not the point and anyone selling you that narrative is either scared of the tools or trying to sell you a course about being scared of the tools.&lt;/p&gt;
&lt;p id="43fc"&gt;The point is simpler and slightly more uncomfortable: &lt;strong&gt;AI is a multiplier. Multipliers need a base stat.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="8eeb"&gt;If your base stat is zero, multiplying it by ten still gets you zero. Just faster. With a nicer landing page.&lt;/p&gt;
&lt;p id="2fff"&gt;The engineers winning right now actually winning, not just shipping demos are running a specific combination. They have genuine fundamentals. They understand how systems talk to each other, where things break under load, why that database query is slow, what that error actually means two layers below where it surfaced. And &lt;em&gt;on top of that&lt;/em&gt;, they use AI tooling the way a surgeon uses a good scalpel. Precisely. Intentionally. With full awareness of what they’re cutting.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="cedf"&gt;“Vibe coding is a power tool. Power tools still require the user to know what they’re building.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="7c7d"&gt;Figma is a useful comparison. When Figma launched, a certain category of designer panicked the ones whose value was mostly in knowing the software, not in the craft of design itself. The designers who understood visual hierarchy, typography, user psychology, interaction patterns? Figma made them faster. It didn’t replace them. It filtered them &lt;em&gt;up&lt;/em&gt;.&lt;/p&gt;
&lt;p id="1740"&gt;Same thing is happening now. AI is the new Figma. It’s separating the people who understood the craft from the people who understood the process.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="400" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AI6dT_N74ZsIAZ5NRrBBm_A.png"&gt;&lt;p id="5a87"&gt;So what’s the actual stack? What should you be building or rebuilding right now?&lt;/p&gt;
&lt;p id="aead"&gt;Systems design still matters maybe more than ever, because AI will generate the components but you have to architect the thing they fit into. Debugging is now a superpower, not a chore because everyone can generate code but almost nobody can read the AI’s code and understand &lt;em&gt;why&lt;/em&gt; it fails. Security fundamentals are non-negotiable because vibe coding skips them by default and someone has to care. And reading documentation actual docs, not the AI’s summary of the docs is back on the menu, because &lt;a href="https://roadmap.sh" rel="noopener ugc nofollow noreferrer"&gt;roadmap.sh&lt;/a&gt; and &lt;a href="https://developer.mozilla.org" rel="noopener ugc nofollow noreferrer"&gt;MDN&lt;/a&gt; and &lt;a href="https://docs.aws.amazon.com" rel="noopener ugc nofollow noreferrer"&gt;AWS docs&lt;/a&gt; contain things the model occasionally hallucinates away.&lt;/p&gt;
&lt;p id="b7e3"&gt;&lt;a href="https://youtube.com/@ThePrimeagen" rel="noopener ugc nofollow noreferrer"&gt;ThePrimeagen&lt;/a&gt; has been saying this for two years and getting called a doomer for it. He wasn’t being a doomer. He was just early.&lt;/p&gt;
&lt;p id="3657"&gt;The irony is that AI making everything easier has made genuine depth &lt;em&gt;more&lt;/em&gt; valuable, not less. When the floor rises, the ceiling is the only place left to compete.&lt;/p&gt;
&lt;p id="0099"&gt;You don’t have to choose between AI fluency and engineering depth. The devs who framed it as a choice are the ones getting lapped right now. Pick both. Use the tools. Keep the brain running underneath them.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="c1d0"&gt;What comes after the vibes&lt;/h2&gt;
&lt;p id="93a7"&gt;Here’s the take I’ll probably get ratio’d for: vibe coding dying is the best thing that could’ve happened to software engineering.&lt;/p&gt;
&lt;p id="f5ca"&gt;Not because AI is bad. Not because fast shipping is bad. But because the signal-to-noise problem was getting genuinely unsustainable. When every weekend produces a thousand new tools that look identical, feel identical, and die identical the users stop trusting. The market stops caring. And the actual good ideas get buried under an avalanche of gradient blobs and three-tier pricing tables nobody asked for.&lt;/p&gt;
&lt;p id="e05f"&gt;The correction was necessary. And it’s not over yet.&lt;/p&gt;
&lt;p id="dfee"&gt;What comes next isn’t a return to the old world. Nobody’s going back to writing CSS floats by hand and feeling noble about it. The tools are here, they’re good, and they’re getting better. What’s shifting is the &lt;em&gt;expectation layer&lt;/em&gt; sitting on top of the tools. The bar for “good enough to matter” just got raised permanently. Fast is no longer enough. Fast &lt;em&gt;and real&lt;/em&gt; is the new minimum.&lt;/p&gt;
&lt;p id="baed"&gt;The developers who come out of this moment strongest are the ones who treated the last two years as a skill expansion, not a skill replacement. They learned the tools. They also kept the fundamentals alive. They can generate code &lt;em&gt;and&lt;/em&gt; understand it. Ship fast &lt;em&gt;and&lt;/em&gt; debug what breaks. Prototype in a weekend &lt;em&gt;and&lt;/em&gt; architect for what happens after the weekend.&lt;/p&gt;
&lt;p id="977d"&gt;That’s not a rare archetype. It’s just a disciplined one.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="d027"&gt;“The vibe was never the enemy. Mistaking the vibe for the whole job was.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="0676"&gt;I’ve watched enough dev cycles to know how this one ends. The hype fades. The dust settles. And what’s left standing is what was always left standing people who genuinely understand the thing they’re building, using whatever tools the current era provides to build it better and faster than they could before.&lt;/p&gt;
&lt;p id="895c"&gt;Vibe coding was a chapter. A genuinely exciting one. But the book isn’t about the vibe. It’s about what you actually ship, how it holds up, and whether anyone’s still using it six months later.&lt;/p&gt;
&lt;p id="9a8a"&gt;The era of building anything is over. The era of building something worth keeping is back.&lt;/p&gt;
&lt;p id="52c6"&gt;Drop your take in the comments are you a vibe coder, a fundamentals dev, or somewhere in the middle trying to figure out which half of your brain to trust? I want to know where people are landing on this one.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="abde"&gt;Helpful resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="22ad"&gt;&lt;a href="https://simonwillison.net/2024/May/8/slop/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Simon Willison&lt;/strong&gt; on AI slop&lt;/a&gt;&lt;/li&gt;

&lt;li id="c4ca"&gt;&lt;a href="https://michalmalewicz.medium.com/vibe-coding-is-over-5a84da799e0d" rel="noopener noreferrer"&gt;&lt;strong&gt;Michal Malewicz &lt;/strong&gt;Vibe Coding is OVER&lt;/a&gt;&lt;/li&gt;

&lt;li id="2011"&gt;&lt;a href="https://owasp.org/www-project-top-ten/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;OWASP Top Ten&lt;/strong&gt; AI-assisted development risks&lt;/a&gt;&lt;/li&gt;

&lt;li id="3cf3"&gt;&lt;a href="https://github.blog/2022-09-07-research-quantifying-github-copilots-impact-on-developer-productivity-and-happiness/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;GitHub research&lt;/strong&gt; Copilot productivity study&lt;/a&gt;&lt;/li&gt;

&lt;li id="9f01"&gt;&lt;a href="https://roadmap.sh" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;roadmap.sh&lt;/strong&gt; engineering fundamentals&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>coding</category>
      <category>programming</category>
      <category>vibecoding</category>
    </item>
    <item>
      <title>I used AI to write 100% of my code for a month. My pull request got rejected.</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:56:40 +0000</pubDate>
      <link>https://forem.com/dev_tips/i-used-ai-to-write-100-of-my-code-for-a-month-my-pull-request-got-rejected-4d2c</link>
      <guid>https://forem.com/dev_tips/i-used-ai-to-write-100-of-my-code-for-a-month-my-pull-request-got-rejected-4d2c</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h2 id="e0f3"&gt;Cursor, Copilot, zero manual typing and the code review that made me want to delete my GitHub account.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="6972"&gt;You ever submit a pull request feeling like an absolute genius, only to watch it get dissected like a first-year biology frog?&lt;/p&gt;
&lt;p id="787d"&gt;Yeah. That was me. February. Twelve commits deep into what I genuinely thought was my best work in years. My reviewer a senior engineer who communicates exclusively in terse Slack messages and code comments that feel like parking tickets came back with fourteen inline comments. Fourteen. On code I didn’t fully write. On code I couldn’t fully explain.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="3a6b"&gt;“What does this function actually do? Walk me through it.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="af2d"&gt;I stared at that comment for a solid three minutes. I had accepted the suggestion. I had seen it pass the linter. I had shipped it. But walk you through it? That was going to be a problem.&lt;/p&gt;
&lt;p id="5994"&gt;Here’s the context: for the entire month of January, I ran an experiment. Every line of code I wrote or rather, every line of code that went into my repos came from an AI tool. Cursor for the heavy lifting. Copilot for the inline fills. I wrote prompts. I reviewed suggestions. I pressed Tab and Enter more than I’ve ever pressed them in my life. But I did not manually write code. Not a function, not a variable name, not a comment. Full AI, full month, no exceptions.&lt;/p&gt;
&lt;p id="364d"&gt;The first two weeks felt like cheating. The last two weeks felt like a slow-motion disaster I didn’t have the vocabulary to describe yet. And then came the PR.&lt;/p&gt;
&lt;p id="616b"&gt;This is what I learned.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a3d5"&gt;The bet nobody asked me to make&lt;/h2&gt;
&lt;p id="12b8"&gt;It started, as most bad ideas do, with a Slack message.&lt;/p&gt;
&lt;p id="c87f"&gt;A teammate dropped a link to a blog post something about AI agents writing entire microservices overnight. The comments were the usual split: half the thread was "this changes everything," the other half was "yeah but it won't work in production." I read the whole thing, closed my laptop, and thought: I should just find out.&lt;/p&gt;
&lt;p id="a54d"&gt;The rules I set for myself were simple. For the full month of January, I would not manually type a single line of production code. Every function, every class, every config tweak would come from Cursor or Copilot. I could write prompts. I could review output. I could refactor suggestions. But the keyboard was for prompting only. No manual coding. Not even a quick fix I "already knew."&lt;/p&gt;
&lt;p id="1175"&gt;My stack wasn't anything exotic a TypeScript backend, some React on the frontend, a handful of Node scripts for internal tooling. Bread and butter stuff. The kind of code I've written so many times I could do it half-asleep. Which, honestly, made the experiment feel almost unfair to the AI. This should be easy for it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="99af"&gt;"I'm basically a senior prompt engineer now," I told my team on day three. Nobody laughed. I thought I was being self-aware. I was being an idiot.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="37c2"&gt;Week one was genuinely impressive. I was closing tickets faster than I had in months. Features that would normally take a day were done in a couple of hours. I stopped hitting walls. The blank-file anxiety that specific dread of staring at an empty editor not knowing where to start was just gone. Cursor would scaffold the structure, Copilot would fill the gaps, and I'd stitch it together like a very confident editor who definitely understood every word.&lt;/p&gt;
&lt;p id="9c69"&gt;Week two felt even better. I was in a rhythm. Prompt, review, accept, commit. My commit history looked like I'd been drinking coffee intravenously. Tickets closed. Standup updates were breezy. I genuinely started thinking about what I'd do with all this reclaimed time.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Am8RPZXbcToAyOUp7fPHVzQ.png"&gt;&lt;p id="fdf5"&gt;What I wasn't doing and this is the part I didn't notice until it was too late was understanding what I was shipping. I was reading the code. I was skimming it, really. Checking that it looked right the way you check that an email sounds okay before sending it. Syntax made sense. Logic seemed fine. Tests passed. Ship it.&lt;/p&gt;
&lt;p id="a935"&gt;I didn't realize I had stopped thinking. I had outsourced the hard part and kept only the approval step. And approval without comprehension is just a rubber stamp with a GitHub avatar on it.&lt;/p&gt;
&lt;p id="e5dd"&gt;Week three is where the cracks started showing. But I didn't see them yet. I was too busy closing tickets.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="78cb"&gt;Fast is not the same as good&lt;/h2&gt;
&lt;p id="9d0b"&gt;Here’s the thing about speed. It feels like proof. You’re moving fast, therefore you’re doing well. Commits are green, the board is clearing, your manager hasn’t pinged you in three days. What more evidence do you need?&lt;/p&gt;
&lt;p id="3bf4"&gt;By week three I had shipped more code in a single month than I typically do in six weeks. That number felt great right up until I started actually looking at what I’d shipped.&lt;/p&gt;
&lt;p id="e8ca"&gt;The first red flag was a helper function I found in the codebase while working on something unrelated. It looked familiar. It also looked almost identical to another helper function three files over. Same logic, slightly different variable names, both AI-generated, both accepted by me on different days. I had duplicated my own code without realizing it because I hadn’t written either version I’d just approved them two weeks apart and forgotten about both.&lt;/p&gt;
&lt;p id="4e49"&gt;That wasn’t a one-off. I started finding it everywhere. Little pockets of near-identical logic scattered across the project like the AI had been quietly plagiarizing itself and I’d been too busy closing tickets to notice. Utility functions reinvented from scratch. Error handlers that did the same thing three different ways. Code that worked, technically, but read like it was written by someone who had never seen the rest of the codebase. Because it was.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ddf3"&gt;The AI doesn’t know your project. It knows patterns. And if you don’t own the output, you end up with a codebase full of correct-looking patterns that don’t actually fit together.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="33f8"&gt;Turns out this isn’t a me problem. A GitClear analysis of 153 million lines of changed code found that code duplication increased fourfold when AI tools were in the mix. Fourfold. CodeRabbit found that pull requests containing AI-generated code had 1.7 times more issues than those written by hand. The DORA 2025 report which surveyed nearly 5,000 technology professionals put it bluntly: AI adoption correlates with faster delivery and higher instability simultaneously. More change failures. More rework. Longer time to recover when things break.&lt;/p&gt;
&lt;p id="73bb"&gt;Their question for 2026 is one I’d already answered the hard way: we may be shipping faster, but are we any better?&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="147" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AOxVkWc9kgb_LcU-HPMprBA.png"&gt;&lt;p id="ebf5"&gt;That last number is the one that should make every “AI is the future of coding” LinkedIn post pause for breath. 84% of developers now use AI tools. Only 29% trust what comes out. We’ve mass-adopted a tool we’re collectively skeptical of. We’re Tab-completing our way through codebases while quietly knowing something feels off.&lt;/p&gt;
&lt;p id="ee3f"&gt;I was in that 84%. I was not in that 29%. And I was about to find out exactly why that gap exists.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="0443"&gt;The pull request that ended the experiment&lt;/h2&gt;
&lt;p id="38aa"&gt;The PR looked fine. That’s the thing I keep coming back to. It looked completely fine.&lt;/p&gt;
&lt;p id="b6e9"&gt;It was a mid-sized feature a data transformation layer that sat between two internal services, cleaning and reshaping payloads before passing them downstream. Probably 400 lines across four files. Cursor wrote the scaffolding in about twenty minutes. Copilot handled the edge case logic. I reviewed, accepted, tweaked a few names, ran the tests, watched them pass, and opened the PR feeling quietly excellent about myself.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="3ffa"&gt;&lt;strong&gt;My reviewer came back the next morning with fourteen comments.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="07ed"&gt;&lt;strong&gt;Not fourteen nitpicks. Fourteen actual problems. Things like:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="a09a"&gt;why does this function re-implement something we already have in the utils folder?&lt;br&gt;Why are we catching this error and then doing absolutely nothing with it? This pipeline chain works, but who is going to maintain it in three months?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="c17f"&gt;The variable names here are inconsistent with every other file in this project.&lt;/p&gt;
&lt;p id="4b97"&gt;And then the first one. The one that actually stung.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="f1c3"&gt;“What does this function actually do? Walk me through it.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="41f3"&gt;I went back to the function. I read it. I read it again. I understood what it was doing in the way you understand a sentence in a language you half-speak you can get the gist, but you’d struggle to paraphrase it out loud. I had reviewed this code. I had accepted this code. I had written the PR description for this code. And I could not confidently explain what it was doing or why it was doing it that way.&lt;/p&gt;
&lt;p id="895d"&gt;The AI had written code that passed my review the same way a student passes an exam by sounding confident. Technically correct. Contextually clueless. Nobody home.&lt;/p&gt;
&lt;p id="02e1"&gt;The duplicate utility was the one that really buried me. I had accepted essentially the same normalization logic twice, in two different files, two weeks apart, because I had no mental model of what was already in the codebase. A developer who had written the original would have remembered it, or at least gone looking. I hadn’t written anything. I had no memory of any of it. My own project had become a codebase I was a stranger in.&lt;/p&gt;
&lt;p id="2755"&gt;The PR got rejected. Not closed, technically my reviewer is measured about these things. But “needs significant rework” lands the same way. I spent the next three days actually reading the code, actually understanding what it did, rewriting the parts that were wrong, removing the duplicate, and fixing the null case nobody had tested. It took longer to fix than it would have taken to write correctly the first time.&lt;/p&gt;
&lt;p id="c5a4"&gt;The experiment was over. Not because I decided to stop. The codebase decided for me.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a998"&gt;It’s not just you. The industry has the receipts.&lt;/h2&gt;
&lt;p id="1ff1"&gt;After the PR incident I did what any self-respecting developer does when they want to feel less alone about something embarrassing I went looking for data.&lt;/p&gt;
&lt;p id="ba8e"&gt;What I found wasn’t comforting exactly, but it was clarifying. I hadn’t discovered some personal character flaw. I had stumbled into an industry-wide pattern that researchers were already documenting in real time.&lt;/p&gt;
&lt;p id="5abd"&gt;&lt;strong&gt;Start with the trust gap.&lt;/strong&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="219" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AmT_EIMpw55vZa5-hu4q1bQ.png"&gt;&lt;p id="c099"&gt;That 55-point gap between usage and trust isn’t a small thing. It means the majority of developers shipping AI-generated code are doing it with an internal asterisk “this is probably fine.” That asterisk is doing a lot of invisible work. It’s the same asterisk I had on every commit in January, and it’s the asterisk my reviewer found in fourteen places.&lt;/p&gt;
&lt;p id="c906"&gt;Then there’s the delivery paradox. The DORA 2025 report the closest thing the industry has to an objective measure of software delivery health studied nearly 5,000 technology professionals and found that AI adoption correlates with both faster delivery and higher instability at the same time. Teams ship more. They also break more. More change failures, more rework cycles, longer recovery times when things fall over in production. The gains and the damage arrive together.&lt;/p&gt;
&lt;p id="7a43"&gt;We may be faster, but are we any better? That’s not a rhetorical question it’s the central finding of the most rigorous study of software delivery in 2025.&lt;/p&gt;
&lt;p id="7521"&gt;Gartner projects that 60% of new code will be AI-generated by the end of 2026. That number might feel high, but the direction is right. We are moving toward a world where the majority of production code was not typed by a human. The question nobody is seriously asking yet is: who understands it?&lt;/p&gt;
&lt;p id="5b06"&gt;Because here’s what the data doesn’t capture the invisible cost of approved code nobody owns. A bug in code you wrote is a bug you can debug. You know the intent. You know the edge cases you considered and the ones you didn’t. A bug in code you rubber-stamped is a mystery. You’re reading it cold, same as your reviewer, same as the on-call engineer at 2am when it falls over.&lt;/p&gt;
&lt;p id="9cf3"&gt;My PR was a small, recoverable version of that problem. In a larger system, with higher stakes, it’s an incident report and a post-mortem and a very awkward all-hands.&lt;/p&gt;
&lt;p id="67f6"&gt;The tools aren’t the problem. The abdication is.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="ea4f"&gt;What I actually changed&lt;/h2&gt;
&lt;p id="9502"&gt;I’m still using AI tools. I want to be clear about that because this is the part where these articles usually turn into a “I went back to Vim and hand-wrote my Makefiles” manifesto, and that’s not where this is going.&lt;/p&gt;
&lt;p id="03b7"&gt;Cursor is still open. Copilot is still on. I still let them generate scaffolding, handle boilerplate, and suggest implementations for things I’ve written fifty times before. The tools are good. The tools were never the problem.&lt;/p&gt;
&lt;p id="77fb"&gt;What changed is the contract I have with the output.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6d9d"&gt;AI generates. I own. There’s no middle ground where “I reviewed it” counts as ownership. You either understand what the code does and why, or you don’t ship it.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="68b9"&gt;In practice that means a few concrete things that sound obvious when you say them out loud but apparently needed a fourteen-comment PR to actually stick:&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="265c"&gt;&lt;strong&gt;&lt;em&gt;If I can’t explain it, it doesn’t ship.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p id="382e"&gt;Not “I could probably figure it out if I spent ten minutes.” Actually explain it, right now, to a rubber duck or a junior dev or a code comment. If I can’t, I go back and understand it before it gets near a PR.&lt;/p&gt;

&lt;p id="9d7d"&gt;&lt;strong&gt;&lt;em&gt;I search the codebase before accepting anything non-trivial.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p id="fdde"&gt;The AI has no idea what’s already in your project. You do. Before accepting a utility function or a helper or anything more than a one-liner, I spend thirty seconds checking if it already exists. Duplication is a you problem, not a Copilot problem.&lt;/p&gt;

&lt;p id="e2ee"&gt;&lt;strong&gt;&lt;em&gt;I write the tests myself.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p id="34f1"&gt;AI-generated tests are often testing the AI’s assumptions, not your requirements. Writing tests manually forces me to actually think about edge cases and intent rather than just watching a green checkmark appear.&lt;/p&gt;

&lt;p id="3560"&gt;&lt;strong&gt;&lt;em&gt;I stay in the loop on the hard parts.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p id="8c1a"&gt;Boilerplate, scaffolding, repetitive transforms AI can have all of that. The core logic, the tricky edge cases, the things that will matter at 2am during an incident I write those myself, or at minimum I rewrite the AI’s version until it sounds like code I wrote.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;p id="cb41"&gt;None of this is revolutionary. Most of it is just what good code review was supposed to enforce before we all got very fast and very sloppy at the same time.&lt;/p&gt;
&lt;p id="8210"&gt;The experiment wasn’t a failure. It was the most useful thing I’ve done for my own coding practice in years, mostly because it showed me exactly where the floor is. The floor is: you can use all the AI you want, but the moment you stop understanding your own codebase, you’re not a developer anymore. You’re a very expensive approval button.&lt;/p&gt;
&lt;p id="43c2"&gt;My next PR had two comments. Both were minor. My reviewer said nothing and merged it.&lt;/p&gt;
&lt;p id="3c79"&gt;That felt better than closing any ticket in January.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="736" height="736" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Ao2apfl-J8E3zPhE2OSXWGw.jpeg"&gt;Comment🤧🤧&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="d289"&gt;Conclusion&lt;/h2&gt;
&lt;p id="a753"&gt;AI didn’t kill my coding brain. I lent it out voluntarily and forgot to ask for it back.&lt;/p&gt;
&lt;p id="c83c"&gt;The tools are genuinely good. They’re getting better. In another year they’ll be better still. None of that changes the fundamental thing: code you can’t explain is a liability with a green checkmark on it. The speed is real. The debt is real too it just doesn’t show up until someone asks you to walk them through it.&lt;/p&gt;
&lt;p id="73aa"&gt;Use the tools. Own the output. And maybe, occasionally, close the autocomplete and write a for-loop yourself. Just to check that you still can.&lt;/p&gt;
&lt;p id="e2bc"&gt;If this resonated or if your PRs have a few too many “what does this do” comments lately drop a response below. You’re probably not alone.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="030b"&gt;&lt;strong&gt;Helpful Resources:&lt;/strong&gt;&lt;/h2&gt;
&lt;p id="853c"&gt;&lt;strong&gt;The data behind this article&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="0597"&gt;&lt;a href="https://survey.stackoverflow.co/2025" rel="noopener ugc nofollow noreferrer"&gt;Stack Overflow Developer Survey 2025&lt;/a&gt;&lt;/li&gt;

&lt;li id="3ffb"&gt;&lt;a href="https://dora.dev/research/2025/dora-report/" rel="noopener ugc nofollow noreferrer"&gt;DORA State of DevOps Report 2025&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="e4b8"&gt;&lt;strong&gt;Tools used in the experiment&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="14f0"&gt;

&lt;a href="https://www.cursor.com/" rel="noopener ugc nofollow noreferrer"&gt;Cursor&lt;/a&gt;AI&lt;/li&gt;

&lt;li id="0c14"&gt;&lt;a href="https://github.com/features/copilot" rel="noopener ugc nofollow noreferrer"&gt;GitHub Copilot&lt;/a&gt;&lt;/li&gt;

&lt;li id="1354"&gt;&lt;a href="https://coderabbit.ai/" rel="noopener ugc nofollow noreferrer"&gt;CodeRabbit&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="1470"&gt;&lt;strong&gt;Further reading&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="8006"&gt;&lt;a href="https://martinfowler.com/articles/exploring-gen-ai.html" rel="noopener ugc nofollow noreferrer"&gt;Martin Fowler Exploring Generative AI&lt;/a&gt;&lt;/li&gt;

&lt;li id="11de"&gt;&lt;a href="https://www.developing.dev/p/the-best-developers-dont-use-ai-less" rel="noopener ugc nofollow noreferrer"&gt;The best developers don’t use AI less they use it differently&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>coding</category>
    </item>
    <item>
      <title>The best programming language for 2026 isn’t what you think</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:54:26 +0000</pubDate>
      <link>https://forem.com/dev_tips/the-best-programming-language-for-2026-isnt-what-you-think-5do1</link>
      <guid>https://forem.com/dev_tips/the-best-programming-language-for-2026-isnt-what-you-think-5do1</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="2d9e"&gt;&lt;strong&gt;Not the cleanest. Not the fastest. Just the one that actually survives production.&lt;/strong&gt;&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;h2 id="d660"&gt;let’s stop pretending there’s a winner&lt;/h2&gt;
&lt;p id="cc95"&gt;Let’s not drag this out.&lt;/p&gt;
&lt;p id="1c47"&gt;&lt;strong&gt;There is no “best programming language” for 2026.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="2a41"&gt;If there was, the industry would’ve settled it already and we’d all be out of a job arguing about it.&lt;/p&gt;
&lt;p id="8d7b"&gt;&lt;strong&gt;Instead, every year looks the same:&lt;/strong&gt;&lt;br&gt;new languages pop up, old ones get declared dead, and somehow the same “boring” stack keeps running everything important.&lt;/p&gt;
&lt;p id="a054"&gt;Because in real-world engineering, the rules are different.&lt;/p&gt;
&lt;p id="515f"&gt;You’re not picking a language for fun.&lt;br&gt;&lt;strong&gt; You’re picking it for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="361a"&gt;Shipping features without breaking everything&lt;/li&gt;

&lt;li id="cae0"&gt;Scaling without rewriting your entire system&lt;/li&gt;

&lt;li id="9160"&gt;Hiring people who can actually work on it&lt;/li&gt;

&lt;li id="20ac"&gt;Debugging issues without decoding ancient error messages&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="d60e"&gt;And that’s where most “best language” discussions fall apart.&lt;/p&gt;
&lt;p id="24b9"&gt;They focus on syntax.&lt;/p&gt;
&lt;p id="5622"&gt;Reality focuses on everything else.&lt;/p&gt;
&lt;p id="1a97"&gt;I’ve seen teams switch to a “better” language because it looked cleaner and more modern. For a while, it felt great until they hit missing libraries, weird tooling gaps, and problems nobody had documented yet.&lt;/p&gt;
&lt;p id="cf38"&gt;Eventually, parts of the system quietly went back to the old stack.&lt;/p&gt;
&lt;p id="6b83"&gt;Not because it was better.&lt;/p&gt;
&lt;p id="d33f"&gt;Because it worked.&lt;/p&gt;
&lt;p id="d261"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="c2a6"&gt;There is no best programming language&lt;/li&gt;

&lt;li id="9257"&gt;Ecosystems matter more than syntax&lt;/li&gt;

&lt;li id="fb24"&gt;The real winners are stable, boring, and everywhere&lt;/li&gt;

&lt;li id="8df4"&gt;If it ships reliably, it wins&lt;/li&gt;

&lt;/ul&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="53c4"&gt;What actually makes a language “the best” in 2026&lt;/h2&gt;
&lt;p id="182a"&gt;Let’s keep this simple.&lt;/p&gt;
&lt;p id="cdce"&gt;A programming language isn’t “best” because it looks clean or feels nice to write.&lt;/p&gt;
&lt;p id="ae63"&gt;It’s “best” if it &lt;strong&gt;helps you ship, scale, and not regret your life choices later&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="f297"&gt;The real criteria&lt;/h3&gt;
&lt;p id="40b3"&gt;&lt;strong&gt;In 2026, a language wins if it checks these boxes:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e42a"&gt;

&lt;strong&gt;Ecosystem&lt;/strong&gt; does it have libraries that actually work?&lt;/li&gt;

&lt;li id="556e"&gt;

&lt;strong&gt;Job demand&lt;/strong&gt; can it pay your bills?&lt;/li&gt;

&lt;li id="a7ec"&gt;

&lt;strong&gt;Ai compatibility&lt;/strong&gt; does it play well with copilots and tools?&lt;/li&gt;

&lt;li id="5035"&gt;

&lt;strong&gt;Performance&lt;/strong&gt; does it hold up under load (when needed)?&lt;/li&gt;

&lt;li id="ee2a"&gt;

&lt;strong&gt;Developer experience&lt;/strong&gt; can you debug without losing sanity?&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="4aa1"&gt;&lt;strong&gt;Bonus points if:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="d5bf"&gt;It doesn’t break every few months&lt;/p&gt;

&lt;p id="199a"&gt;Error messages don’t feel like riddles&lt;/p&gt;


&lt;/blockquote&gt;
&lt;h3 id="79b7"&gt;What doesn’t matter as much as you think&lt;/h3&gt;
&lt;p id="55da"&gt;Syntax.&lt;/p&gt;
&lt;p id="0c0f"&gt;Seriously.&lt;/p&gt;
&lt;p id="fe12"&gt;&lt;strong&gt;Most of your time as a developer isn’t spent writing beautiful code. It’s spent:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="85e5"&gt;Debugging weird issues&lt;/li&gt;

&lt;li id="dc79"&gt;Integrating APIs&lt;/li&gt;

&lt;li id="3e47"&gt;Reading logs&lt;/li&gt;

&lt;li id="419f"&gt;Fixing edge cases&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="0dab"&gt;So choosing a language because it “feels nice” is like optimizing your keyboard while your server is on fire.&lt;/p&gt;
&lt;h3 id="8aaa"&gt;The shortcut answer&lt;/h3&gt;
&lt;p id="22ba"&gt;&lt;strong&gt;If you want a one-line rule:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6e82"&gt;&lt;strong&gt;&lt;em&gt;The best programming language is the one with the least friction between idea → production&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="64a2"&gt;Not the fastest.&lt;br&gt;Not the trendiest.&lt;/p&gt;
&lt;p id="651f"&gt;Just the one that lets you build without fighting everything around it.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="9d16"&gt;The actual winners of 2026&lt;/h2&gt;
&lt;p id="fd47"&gt;No hype. No guessing.&lt;/p&gt;
&lt;p id="1e1d"&gt;These are the languages actually doing the work.&lt;/p&gt;
&lt;h3 id="f4a1"&gt;Python: still everywhere&lt;/h3&gt;
&lt;p id="f450"&gt;&lt;strong&gt;Used for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="2cf9"&gt;AI / machine learning&lt;/li&gt;

&lt;li id="db0b"&gt;Automation&lt;/li&gt;

&lt;li id="a66b"&gt;Data pipelines&lt;/li&gt;

&lt;li id="ac93"&gt;Random scripts that became production&lt;/li&gt;

&lt;/ul&gt;
&lt;pre&gt;&lt;span id="948c"&gt;&lt;span&gt;print&lt;/span&gt;(&lt;span&gt;"this was supposed to be temporary"&lt;/span&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;p id="9ff3"&gt;&lt;strong&gt;Wins because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="5fee"&gt;Massive ecosystem&lt;/li&gt;

&lt;li id="6892"&gt;Easy to write&lt;/li&gt;

&lt;li id="810f"&gt;AI tools love it&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="2d20"&gt;&lt;strong&gt;loses because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li id="f47d"&gt;Slow for heavy workloads&lt;/li&gt;&lt;/ul&gt;
&lt;p id="5579"&gt;&lt;strong&gt;vibe:&lt;/strong&gt; duct tape that somehow holds the internet together&lt;/p&gt;
&lt;h3 id="91d2"&gt;Typescript: runs the modern web&lt;/h3&gt;
&lt;p id="e74e"&gt;&lt;strong&gt;Used for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="694b"&gt;Frontend apps&lt;/li&gt;

&lt;li id="0c44"&gt;Backend APIs&lt;/li&gt;

&lt;li id="275c"&gt;Full-stack systems&lt;/li&gt;

&lt;/ul&gt;
&lt;pre&gt;&lt;span id="f898"&gt;&lt;span&gt;const&lt;/span&gt; &lt;span&gt;deploy&lt;/span&gt; = (&lt;span&gt;app: &lt;span&gt;string&lt;/span&gt;&lt;/span&gt;) =&amp;gt; &lt;span&gt;&lt;code&gt;&amp;lt;span&amp;gt;${app}&amp;lt;/span&amp;gt; shipped&lt;/code&gt;&lt;/span&gt;;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="4425"&gt;&lt;strong&gt;wins because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="adb2"&gt;Type safety&lt;/li&gt;

&lt;li id="dcc9"&gt;Insane tooling&lt;/li&gt;

&lt;li id="4016"&gt;Scales with teams&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="a4b0"&gt;&lt;strong&gt;loses because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li id="058f"&gt;Still JavaScript underneath&lt;/li&gt;&lt;/ul&gt;
&lt;p id="d173"&gt;&lt;strong&gt;vibe:&lt;/strong&gt; JavaScript, but with consequences&lt;/p&gt;
&lt;h3 id="596a"&gt;Go: built to ship&lt;/h3&gt;
&lt;p id="b0ee"&gt;&lt;strong&gt;Used for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="b774"&gt;Cloud services&lt;/li&gt;

&lt;li id="b2a2"&gt;Microservices&lt;/li&gt;

&lt;li id="54f3"&gt;DevOps tools&lt;/li&gt;

&lt;/ul&gt;
&lt;pre&gt;&lt;span id="67c4"&gt;fmt.Println(&lt;span&gt;"it works. deploy it."&lt;/span&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;p id="ca79"&gt;&lt;strong&gt;wins because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="123b"&gt;Simple&lt;/li&gt;

&lt;li id="360b"&gt;Fast&lt;/li&gt;

&lt;li id="0d58"&gt;Great for concurrency&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="986f"&gt;&lt;strong&gt;loses because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li id="93be"&gt;Not very expressive&lt;/li&gt;&lt;/ul&gt;
&lt;p id="dd2c"&gt;&lt;strong&gt;vibe:&lt;/strong&gt; quiet engineer who keeps everything running&lt;/p&gt;
&lt;h3 id="db65"&gt;Java: still printing money&lt;/h3&gt;
&lt;p id="7011"&gt;&lt;strong&gt;Used for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="3781"&gt;Enterprise systems&lt;/li&gt;

&lt;li id="d72a"&gt;Large backend services&lt;/li&gt;

&lt;/ul&gt;
&lt;pre&gt;&lt;span id="2abb"&gt;System.out.println(&lt;span&gt;"still running."&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;p id="8eeb"&gt;&lt;strong&gt;Wins because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="b827"&gt;Stable&lt;/li&gt;

&lt;li id="b700"&gt;Huge ecosystem&lt;/li&gt;

&lt;li id="b208"&gt;Easy hiring&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="dc51"&gt;&lt;strong&gt;Loses because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="32e0"&gt;Verbose&lt;/li&gt;

&lt;li id="b512"&gt;Not exciting&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8e46"&gt;&lt;strong&gt;vibe:&lt;/strong&gt; boring, but pays the bills&lt;/p&gt;
&lt;h3 id="3e7a"&gt;Rust: power mode&lt;/h3&gt;
&lt;p id="b270"&gt;Used for:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="9a9b"&gt;systems programming&lt;/li&gt;

&lt;li id="587b"&gt;performance-heavy apps&lt;/li&gt;

&lt;/ul&gt;
&lt;pre&gt;&lt;span id="a791"&gt;&lt;span&gt;println!&lt;/span&gt;(&lt;span&gt;"hello, memory safety"&lt;/span&gt;);&lt;/span&gt;&lt;/pre&gt;
&lt;p id="013f"&gt;&lt;strong&gt;Wins because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="1f1d"&gt;Fast&lt;/li&gt;

&lt;li id="e20a"&gt;Safe&lt;/li&gt;

&lt;li id="74ad"&gt;Efficient&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="eddc"&gt;&lt;strong&gt;Loses because:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;&lt;li id="9b32"&gt;Hard to learn&lt;/li&gt;&lt;/ul&gt;
&lt;p id="94ae"&gt;&lt;strong&gt;vibe:&lt;/strong&gt; high skill, high reward&lt;/p&gt;
&lt;h3 id="737f"&gt;so who wins?&lt;/h3&gt;
&lt;p id="b38e"&gt;If you &lt;em&gt;force&lt;/em&gt; an answer:&lt;/p&gt;
&lt;p id="ef92"&gt;&lt;strong&gt;TypeScript.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="f52f"&gt;Because it&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e896"&gt;Runs the web&lt;/li&gt;

&lt;li id="05c9"&gt;Works frontend + backend&lt;/li&gt;

&lt;li id="4b06"&gt;Has massive demand&lt;/li&gt;

&lt;li id="75c1"&gt;Fits perfectly with modern tooling&lt;/li&gt;

&lt;/ul&gt;
&lt;blockquote&gt;&lt;p id="e50b"&gt;&lt;strong&gt;&lt;em&gt;The best language is the one your team can ship with… without chaos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AcSB7ZQQLMtYndopNsnR7_w.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="f164"&gt;Why boring tech keeps winning&lt;/h2&gt;
&lt;p id="a05d"&gt;&lt;strong&gt;Here’s the part nobody likes to admit:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="97f6"&gt;&lt;strong&gt;Boring tech wins. every time.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="0193"&gt;Not because it’s better.&lt;br&gt;Because it’s safer.&lt;/p&gt;
&lt;h3 id="fb89"&gt;Switching is expensive&lt;/h3&gt;
&lt;p id="ae56"&gt;Changing a programming language isn’t a small upgrade.&lt;/p&gt;
&lt;p id="63f6"&gt;&lt;strong&gt;It’s:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="afaa"&gt;Rewriting code&lt;/li&gt;

&lt;li id="d8a3"&gt;Retraining teams&lt;/li&gt;

&lt;li id="0605"&gt;Rebuilding tooling&lt;/li&gt;

&lt;li id="8e1e"&gt;Rethinking infrastructure&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="5031"&gt;That’s not a refactor.&lt;/p&gt;
&lt;p id="9e6b"&gt;That’s moving your entire house.&lt;/p&gt;
&lt;h3 id="fa05"&gt;Companies don’t optimize for “cool”&lt;/h3&gt;
&lt;p id="a3f5"&gt;&lt;strong&gt;They optimize for:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="9fbf"&gt;Stability&lt;/li&gt;

&lt;li id="f138"&gt;Predictability&lt;/li&gt;

&lt;li id="a2a2"&gt;Hiring ease&lt;/li&gt;

&lt;li id="618a"&gt;Not breaking production&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="aa41"&gt;&lt;strong&gt;That’s why you still see:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e0f4"&gt;Java in banks&lt;/li&gt;

&lt;li id="6298"&gt;Python everywhere&lt;/li&gt;

&lt;li id="f21d"&gt;TypeScript running half the internet&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="38c8"&gt;Not exciting.&lt;/p&gt;
&lt;p id="2e88"&gt;But reliable.&lt;/p&gt;
&lt;h3 id="6b51"&gt;The hidden truth&lt;/h3&gt;
&lt;p id="6e27"&gt;Most systems don’t fail because of language limitations.&lt;/p&gt;
&lt;p id="689a"&gt;&lt;strong&gt;They fail because of:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="f4b8"&gt;Bad architecture&lt;/li&gt;

&lt;li id="411d"&gt;Poor debugging&lt;/li&gt;

&lt;li id="e4b5"&gt;Scaling mistakes&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="da35"&gt;Switching languages doesn’t fix that.&lt;/p&gt;
&lt;h3 id="b119"&gt;The takeaway&lt;/h3&gt;
&lt;blockquote&gt;&lt;p id="f239"&gt;&lt;strong&gt;&lt;em&gt;Boring tech wins because it reduces risk&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5589"&gt;And in production…&lt;/p&gt;
&lt;p id="50d4"&gt;&lt;strong&gt;Risk matters more than elegance.&lt;/strong&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="6bdb"&gt;Where new languages actually win&lt;/h2&gt;
&lt;p id="b5b9"&gt;New languages aren’t useless.&lt;/p&gt;
&lt;p id="74f3"&gt;They just don’t win &lt;em&gt;everywhere&lt;/em&gt;.&lt;/p&gt;
&lt;h3 id="20ff"&gt;They win in specific problems&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="9818"&gt;

&lt;strong&gt;Rust&lt;/strong&gt; → performance + memory safety&lt;/li&gt;

&lt;li id="1888"&gt;

&lt;strong&gt;Go&lt;/strong&gt; → cloud + backend systems&lt;/li&gt;

&lt;li id="4a8c"&gt;

&lt;strong&gt;Kotlin&lt;/strong&gt; → cleaner Java&lt;/li&gt;

&lt;li id="73e5"&gt;

&lt;strong&gt;Swift&lt;/strong&gt; → Apple ecosystem&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="5d45"&gt;They succeed because they fix real pain.&lt;/p&gt;
&lt;p id="f3d3"&gt;Not because they’re “better overall.”&lt;/p&gt;
&lt;h3 id="bef0"&gt;They replace parts, not everything&lt;/h3&gt;
&lt;p id="34ff"&gt;You won’t see companies rewriting entire systems overnight.&lt;/p&gt;
&lt;p id="2284"&gt;&lt;strong&gt;What actually happens:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e25d"&gt;Small services get replaced&lt;/li&gt;

&lt;li id="9e71"&gt;Critical components get optimized&lt;/li&gt;

&lt;li id="f4a2"&gt;New projects experiment&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="f13e"&gt;Slow, controlled adoption.&lt;/p&gt;
&lt;h3 id="edb6"&gt;Why they don’t take over instantly&lt;/h3&gt;
&lt;p id="c34f"&gt;Because ecosystems take years to build:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="d6c1"&gt;Libraries&lt;/li&gt;

&lt;li id="9a32"&gt;Tooling&lt;/li&gt;

&lt;li id="9193"&gt;Community&lt;/li&gt;

&lt;li id="7ccc"&gt;Hiring pipeline&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="b41a"&gt;You can’t rush that.&lt;/p&gt;
&lt;h3 id="29d2"&gt;The takeaway&lt;/h3&gt;
&lt;blockquote&gt;&lt;p id="13fa"&gt;&lt;strong&gt;&lt;em&gt;New languages win as specialists, not replacements&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5160"&gt;They solve sharp problems.&lt;/p&gt;
&lt;p id="388a"&gt;The rest of the system? Still runs on the usual suspects.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="89f2"&gt;What developers should actually focus on&lt;/h2&gt;
&lt;p id="18a7"&gt;Chasing the “best language” is a trap.&lt;/p&gt;
&lt;p id="da59"&gt;The real advantage comes from things that don’t change every year.&lt;/p&gt;
&lt;h3 id="768c"&gt;Focus on fundamentals&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="d64e"&gt;Debugging real issues&lt;/li&gt;

&lt;li id="9312"&gt;Understanding how systems work&lt;/li&gt;

&lt;li id="1d80"&gt;Reading logs without panic&lt;/li&gt;

&lt;li id="c9a6"&gt;Knowing how things fail (not just how they work)&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="26da"&gt;Because when something breaks…&lt;/p&gt;
&lt;p id="4fa8"&gt;Syntax won’t save you.&lt;/p&gt;
&lt;h3 id="176b"&gt;Learn tools, not just languages&lt;/h3&gt;
&lt;p id="ae62"&gt;&lt;strong&gt;Pick:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="237d"&gt;One flexible language (Python or TypeScript)&lt;/li&gt;

&lt;li id="9cdf"&gt;One systems/infrastructure language (Go or Rust)&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="9f8f"&gt;That combo covers most real-world scenarios.&lt;/p&gt;
&lt;h3 id="0210"&gt;Build things that run&lt;/h3&gt;
&lt;p id="01ac"&gt;Not tutorials. Not toy projects.&lt;/p&gt;
&lt;p id="e60d"&gt;&lt;strong&gt;Things that:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="105f"&gt;Deploy&lt;/li&gt;

&lt;li id="4158"&gt;Handle real users&lt;/li&gt;

&lt;li id="9efa"&gt;Break (and force you to fix them)&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="fb7e"&gt;That’s where real learning happens.&lt;/p&gt;
&lt;h3 id="5b0f"&gt;The shortcut&lt;/h3&gt;
&lt;blockquote&gt;&lt;p id="0bf7"&gt;&lt;strong&gt;&lt;em&gt;Languages are just tools. fundamentals are the skill&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="f841"&gt;Once you get that…&lt;/p&gt;
&lt;p id="79c3"&gt;Switching languages becomes easy.&lt;/p&gt;
&lt;p id="c88e"&gt;And arguing about them becomes pointless.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="410d"&gt;The best language is the one that ships&lt;/h2&gt;
&lt;p id="3df4"&gt;So after all this…&lt;/p&gt;
&lt;p id="ba92"&gt;What’s the best programming language for 2026?&lt;/p&gt;
&lt;p id="ff83"&gt;Not Python.&lt;br&gt;Not TypeScript.&lt;br&gt;Not Rust.&lt;br&gt;Not anything you saw in a “top 10” list.&lt;/p&gt;
&lt;p id="235a"&gt;&lt;strong&gt;Because the real answer is way less exciting:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7859"&gt;&lt;strong&gt;&lt;em&gt;It’s the one your team can ship with without chaos&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="d031"&gt;Every language we talked about wins somewhere.&lt;/p&gt;
&lt;ul&gt;

&lt;li id="6057"&gt;Python dominates AI&lt;/li&gt;

&lt;li id="3a5e"&gt;TypeScript runs the web&lt;/li&gt;

&lt;li id="5fab"&gt;Go powers infrastructure&lt;/li&gt;

&lt;li id="9660"&gt;Java keeps enterprises alive&lt;/li&gt;

&lt;li id="9fb7"&gt;Rust handles performance-heavy systems&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="ff34"&gt;But none of them win &lt;em&gt;everywhere&lt;/em&gt;.&lt;/p&gt;
&lt;p id="47f5"&gt;And that’s the point.&lt;/p&gt;
&lt;p id="8392"&gt;The industry isn’t moving toward one perfect language.&lt;/p&gt;
&lt;p id="d759"&gt;It’s moving toward &lt;strong&gt;multi-language systems&lt;/strong&gt;, where each tool does one job well.&lt;/p&gt;
&lt;p id="66d3"&gt;And with AI writing more code than ever, the barrier between languages is getting smaller anyway.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="94d1"&gt;So tying your identity to one language?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="a270"&gt;That’s becoming outdated.&lt;/p&gt;
&lt;p id="7833"&gt;&lt;strong&gt;What actually matters now:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="46d1"&gt;Can you understand systems&lt;/li&gt;

&lt;li id="769c"&gt;Can you debug under pressure&lt;/li&gt;

&lt;li id="6568"&gt;Can you ship without breaking everything&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="4d4e"&gt;Because in the end…&lt;/p&gt;
&lt;p id="1ff1"&gt;Nobody cares what language you used.&lt;/p&gt;
&lt;p id="a48b"&gt;They care that it works.&lt;/p&gt;
&lt;p id="a20b"&gt;So yeah.&lt;/p&gt;
&lt;p id="d0fd"&gt;&lt;strong&gt;The best programming language for 2026 is:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="f612"&gt;&lt;strong&gt;the one that deploys cleanly, scales when needed, and lets you sleep without thinking about production.&lt;/strong&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="20ef"&gt;Helpful resources&lt;/h2&gt;
&lt;p id="8f72"&gt;If you want real data instead of opinions, start here:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="738e"&gt;

&lt;strong&gt;Stack Overflow Developer Survey&lt;/strong&gt; &lt;a href="https://survey.stackoverflow.co" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://survey.stackoverflow.co" rel="noopener noreferrer"&gt;https://survey.stackoverflow.co&lt;/a&gt;
&lt;/li&gt;

&lt;li id="d0d7"&gt;

&lt;strong&gt;GitHub Octoverse Report&lt;/strong&gt; &lt;a href="https://octoverse.github.com" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://octoverse.github.com" rel="noopener noreferrer"&gt;https://octoverse.github.com&lt;/a&gt;
&lt;/li&gt;

&lt;li id="7269"&gt;

&lt;strong&gt;Kubernetes Documentation (Go in action)&lt;/strong&gt; &lt;a href="https://kubernetes.io/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://kubernetes.io/docs" rel="noopener noreferrer"&gt;https://kubernetes.io/docs&lt;/a&gt;
&lt;/li&gt;

&lt;li id="f993"&gt;

&lt;strong&gt;Rust Documentation&lt;/strong&gt; &lt;a href="https://www.rust-lang.org/learn" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.rust-lang.org/learn" rel="noopener noreferrer"&gt;https://www.rust-lang.org/learn&lt;/a&gt;
&lt;/li&gt;

&lt;li id="4539"&gt;

&lt;strong&gt;Python (AI &amp;amp; ecosystem)&lt;/strong&gt; &lt;a href="https://docs.python.org" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://docs.python.org" rel="noopener noreferrer"&gt;https://docs.python.org&lt;/a&gt;
&lt;/li&gt;

&lt;li id="c75b"&gt;

&lt;strong&gt;TypeScript Docs&lt;/strong&gt; &lt;a href="https://www.typescriptlang.org/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.typescriptlang.org/docs" rel="noopener noreferrer"&gt;https://www.typescriptlang.org/docs&lt;/a&gt;
&lt;/li&gt;

&lt;li id="5f8c"&gt;

&lt;strong&gt;AWS Architecture Center&lt;/strong&gt; &lt;a href="https://aws.amazon.com/architecture" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://aws.amazon.com/architecture" rel="noopener noreferrer"&gt;https://aws.amazon.com/architecture&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>The entire AI agent startup sector just got cooked today?</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:52:01 +0000</pubDate>
      <link>https://forem.com/dev_tips/the-entire-ai-agent-startup-sector-just-got-cooked-today-14m2</link>
      <guid>https://forem.com/dev_tips/the-entire-ai-agent-startup-sector-just-got-cooked-today-14m2</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="4dd7"&gt;&lt;/h1&gt;
&lt;h2 id="421f"&gt;Claude Managed Agents aren’t just a model anymore they’re a fully hosted, production-ready agent system that can take you from weekend hack to millions of users without the usual headaches. And devs are losing their minds.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="482f"&gt;Something just dropped in the AI world that feels like a hidden patch that rewrites the rules mid-game.&lt;/p&gt;
&lt;p id="9bca"&gt;Claude Managed Agents are basically a full upgrade for AI: you get the model, a performance-tuned harness, and production infrastructure all in one. You’re no longer just tossing a model onto a server and praying it’s like giving your agent its own co-op setup that knows what it’s doing.&lt;/p&gt;
&lt;p id="5b87"&gt;Think about it like this: instead of just coding an agent and hoping it scales, now you have a system that handles &lt;strong&gt;runtime, orchestration, logging, and scaling&lt;/strong&gt; automatically. You prototype today, deploy tomorrow, and suddenly your weekend project is live for millions of users.&lt;/p&gt;
&lt;p id="4536"&gt;Early reactions are… well, intense. Some developers call it the fastest way to hack together a project &lt;em&gt;and&lt;/em&gt; the most robust way to actually ship it. No more patching servers, no more wrestling with self-hosting, no more praying that the thing won’t explode in production.&lt;/p&gt;
&lt;p id="10b9"&gt;Marketers are already drooling over it too: imagine connecting all your data sources Google Ads, Meta, GA4 and your agent pulls performance data while you sleep, writes summaries, and even drafts next steps. It’s basically like having a fully autonomous second employee who never complains, never takes breaks, and doesn’t need a salary.&lt;/p&gt;
&lt;p id="7451"&gt;And yes, for startups building AI agents, this is scary. The tools you were betting on just got leapfrogged by something that’s fully hosted, scalable, and ready to run out of the box.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="fbf5"&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; Claude Managed Agents = build, deploy, scale without the usual chaos. Developers get a cheat code. Startups… better move fast.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="4d6b"&gt;What Claude Managed Agents actually are&lt;/h2&gt;
&lt;p id="8a54"&gt;Let’s unpack this. At its core, a Claude Managed Agent is &lt;strong&gt;more than just a model&lt;/strong&gt;. Think of it like giving your AI a full RPG loadout instead of just a sword.&lt;/p&gt;
&lt;p id="7540"&gt;&lt;strong&gt;It’s not:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="2c12"&gt;AI model → hope it works → &lt;span&gt;debug&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="ad7f"&gt;&lt;strong&gt;It &lt;em&gt;is&lt;/em&gt;:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="af05"&gt;&lt;span&gt;AI&lt;/span&gt; model + harness + runtime + infra → deploy → scale → profit&lt;/span&gt;&lt;/pre&gt;
&lt;p id="9876"&gt;&lt;strong&gt;In other words, the Managed Agent combines:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="2557"&gt;

&lt;strong&gt;The model itself&lt;/strong&gt; the brain that knows stuff&lt;/li&gt;

&lt;li id="c74c"&gt;

&lt;strong&gt;A harness&lt;/strong&gt; the AI’s toolkit, tuned for performance&lt;/li&gt;

&lt;li id="ccb7"&gt;

&lt;strong&gt;Fully hosted infrastructure&lt;/strong&gt; so you don’t waste time configuring servers, logging, or scaling&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="d19a"&gt;Basically, it’s a co-op teammate that knows all the mechanics of the game and carries you through the grind. You don’t just throw a model at a problem you ship a &lt;strong&gt;working, production-ready agent&lt;/strong&gt; in days.&lt;/p&gt;
&lt;h3 id="56e2"&gt;A dev example&lt;/h3&gt;
&lt;p id="cb3d"&gt;Say you want an agent that reads your project files, checks for inconsistent environment variables, and reports them. Without a managed setup, you’d spend hours:&lt;/p&gt;
&lt;pre&gt;&lt;span id="0316"&gt;&lt;span&gt;# rough flow&lt;/span&gt;&lt;br&gt;&lt;span&gt;read&lt;/span&gt; files → parse &lt;span&gt;env&lt;/span&gt; → cross-check → report → fix → repeat&lt;/span&gt;&lt;/pre&gt;
&lt;p id="0a30"&gt;&lt;strong&gt;With a Managed Agent, you can hand it the repo and it handles everything:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="555f"&gt;&lt;span&gt;// pseudo code: Managed Agent style&lt;/span&gt;&lt;br&gt;agent&lt;span&gt;.loadRepo&lt;/span&gt;("./my-project");&lt;br&gt;agent&lt;span&gt;.validateEnv&lt;/span&gt;();&lt;br&gt;agent&lt;span&gt;.reportIssues&lt;/span&gt;();&lt;/span&gt;&lt;/pre&gt;
&lt;p id="2488"&gt;Done. It even remembers the context across multiple files and steps. Basically, it’s like having a co-op partner who never dies, never rage-quits, and actually reads your code.&lt;/p&gt;
&lt;h3 id="183f"&gt;Why this matters&lt;/h3&gt;
&lt;p id="1608"&gt;Old-school AI tooling felt like &lt;strong&gt;button-mashing in a dungeon&lt;/strong&gt;: fun, chaotic, and often broken mid-level. Managed Agents feel like &lt;strong&gt;strategic co-op play&lt;/strong&gt;: planned, robust, and you actually survive the boss fight.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="85ce"&gt;What Claude Managed Agents actually are&lt;/h2&gt;
&lt;p id="09ef"&gt;You know how building a real, production‑ready AI agent feels like trying to hand‑craft a game engine from scratch? Even if you can get the core AI model working, you still have to wire up:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="da18"&gt;Runtime loops&lt;/li&gt;

&lt;li id="9574"&gt;State persistence&lt;/li&gt;

&lt;li id="0eaa"&gt;Sandboxing and security&lt;/li&gt;

&lt;li id="5549"&gt;Tool execution pipelines&lt;/li&gt;

&lt;li id="9e29"&gt;Scaling and error recovery&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="99e1"&gt;That’s literally months of engineering before you even think about features.&lt;/p&gt;
&lt;p id="b7d7"&gt;Managed Agents flips that script. Instead of just giving you access to a model and &lt;em&gt;telling you to assemble the rest&lt;/em&gt;, Claude now hands you &lt;strong&gt;a fully hosted agent stack that actually works in production&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="79ef"&gt;&lt;strong&gt;Here’s the mental reframing that makes it click:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="9aa4"&gt;Everything you need to build and deploy agents at scale. It pairs an agent harness tuned for performance with production infrastructure, so you can go from prototype to launch in days.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="51cd"&gt;&lt;strong&gt;Translation:&lt;/strong&gt; you no longer have to be an infra wizard to ship an agent that runs autonomously. The harness basically the part that orchestrates the agent’s reasoning, tracks state, handles tool calls, and recovers from errors is already tuned and hosted for you. You define the agent’s tasks and guardrails, and the platform &lt;strong&gt;takes care of the rest&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="3700"&gt;A quick dev example&lt;/h3&gt;
&lt;p id="080b"&gt;&lt;strong&gt;Let’s say you want an agent that:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;

&lt;li id="fe6d"&gt;Watches a Slack channel&lt;/li&gt;

&lt;li id="3fd5"&gt;Parses commands&lt;/li&gt;

&lt;li id="7c7b"&gt;Talks to your internal API&lt;/li&gt;

&lt;li id="e407"&gt;Writes back results&lt;/li&gt;

&lt;li id="54fd"&gt;Logs everything reliably&lt;/li&gt;

&lt;/ol&gt;
&lt;p id="1b2b"&gt;&lt;strong&gt;With a DIY setup, this is easily:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="fc4b"&gt;&lt;span&gt;# weeks of work&lt;/span&gt;&lt;br&gt;docker, orchestrator, &lt;span&gt;state&lt;/span&gt; store, retries, tooling, CI/CD, logging infra…&lt;/span&gt;&lt;/pre&gt;
&lt;p id="626c"&gt;&lt;strong&gt;With Managed Agents:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="8a8b"&gt;&lt;span&gt;// psuedo managed agent config&lt;/span&gt;&lt;br&gt;agent.&lt;span&gt;defineWorkflow&lt;/span&gt;({&lt;br&gt;  &lt;span&gt;triggers&lt;/span&gt;: [&lt;span&gt;"slack"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;actions&lt;/span&gt;: [&lt;span&gt;"callInternalAPI"&lt;/span&gt;, &lt;span&gt;"writeBack"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;trace&lt;/span&gt;: &lt;span&gt;true&lt;/span&gt;,&lt;br&gt;});&lt;br&gt;agent.&lt;span&gt;deploy&lt;/span&gt;(); &lt;span&gt;// auto scales + runs autonomously&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="882e"&gt;Boom. Infrastructure done. Monitoring done. Scaling done.&lt;/p&gt;
&lt;h3 id="626f"&gt;Why this matters (aside from pure laziness)&lt;/h3&gt;
&lt;p id="c789"&gt;Before Managed Agents, even &lt;em&gt;experienced teams&lt;/em&gt; would grind through weeks of setup just to get:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="fad0"&gt;Sandbox reliability&lt;/li&gt;

&lt;li id="6e23"&gt;Persistent agent sessions&lt;/li&gt;

&lt;li id="3b6f"&gt;Consistent tooling context&lt;/li&gt;

&lt;li id="3c88"&gt;Stable long‑running workflows&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="90a1"&gt;Now it’s largely declarative: you describe the agent’s purpose, guardrails, and tools and the platform runs the loop for you.&lt;/p&gt;
&lt;p id="5367"&gt;&lt;strong&gt;This is why early adopters are already using it for real production tasks:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="f972"&gt;Delegating workflows inside big apps&lt;/li&gt;

&lt;li id="c89c"&gt;Coordinating multi‑step processes&lt;/li&gt;

&lt;li id="e2e5"&gt;Running agents that stay alive for hours&lt;/li&gt;

&lt;li id="92e8"&gt;Orchestrating tool calls under controlled guardrails&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="6292"&gt;and yes handling all that without you babysitting the servers.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="789" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1527%2F1%2A17m6GqTqhpWLQoho-f-wIg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="432" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A2570%2F1%2ASEv_6umGCXMJ3OOGvhSLtg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="d344"&gt;How devs can actually use Claude Managed Agents today&lt;/h2&gt;
&lt;p id="7bb5"&gt;Alright, imagine you’ve been itching to build an AI agent that actually &lt;em&gt;does things&lt;/em&gt; instead of just sitting in a REPL giving answers. Claude Managed Agents basically hand you the cheat code.&lt;/p&gt;
&lt;p id="a075"&gt;The idea is simple: you don’t need to wrestle with servers, logging, scaling, or tool orchestration anymore. You just define what your agent should do, and the platform handles the rest. Think of it like giving your agent a full “loadout” in an MMO instead of grinding for gear.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="dc8d"&gt;It eliminates all the complexity of self-hosting an agent but still allows a great degree of flexibility with setting.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="fae2"&gt;Exactly. You can tweak behaviors, guardrails, and triggers without touching the messy infra under the hood. It’s like building a Lego set while someone else already sorted all the bricks for you.&lt;/p&gt;
&lt;h3 id="cf72"&gt;Dev-life example&lt;/h3&gt;
&lt;p id="3d3c"&gt;&lt;strong&gt;Say you want an agent that:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;

&lt;li id="20cd"&gt;Monitors a repo for PRs&lt;/li&gt;

&lt;li id="bcef"&gt;Checks for coding style violations&lt;/li&gt;

&lt;li id="c2af"&gt;Posts a summary in a Slack channel&lt;/li&gt;

&lt;/ol&gt;
&lt;p id="b659"&gt;&lt;strong&gt;With Managed Agents, your setup might look like this:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="377b"&gt;&lt;span&gt;// pseudo config for Managed Agent&lt;/span&gt;&lt;br&gt;agent.&lt;span&gt;defineWorkflow&lt;/span&gt;({&lt;br&gt;  &lt;span&gt;triggers&lt;/span&gt;: [&lt;span&gt;"pull_request"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;actions&lt;/span&gt;: [&lt;span&gt;"runLint"&lt;/span&gt;, &lt;span&gt;"postSlackSummary"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;trace&lt;/span&gt;: &lt;span&gt;true&lt;/span&gt;,&lt;br&gt;});&lt;br&gt;agent.&lt;span&gt;deploy&lt;/span&gt;(); &lt;span&gt;// fully managed runtime + scaling&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="4771"&gt;No Docker, no cron jobs, no server babysitting. The agent lives in the cloud, handles retries, and keeps state across multiple PRs.&lt;/p&gt;
&lt;p id="1f5b"&gt;Or maybe you want it to scan your Google Ads performance overnight and spit out actionable insights. You just define the workflow:&lt;/p&gt;
&lt;pre&gt;&lt;span id="b293"&gt;agent.&lt;span&gt;defineWorkflow&lt;/span&gt;({&lt;br&gt;  &lt;span&gt;triggers&lt;/span&gt;: [&lt;span&gt;"daily_schedule"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;actions&lt;/span&gt;: [&lt;span&gt;"fetchAdsData"&lt;/span&gt;, &lt;span&gt;"analyzePerformance"&lt;/span&gt;, &lt;span&gt;"generateReport"&lt;/span&gt;],&lt;br&gt;});&lt;br&gt;agent.&lt;span&gt;deploy&lt;/span&gt;();&lt;/span&gt;&lt;/pre&gt;
&lt;p id="1eba"&gt;While you sleep, it’s grinding XP for your company.&lt;/p&gt;
&lt;h3 id="b332"&gt;Why this is a game-changer&lt;/h3&gt;
&lt;p id="fbc3"&gt;Before Managed Agents, even a “simple” multi-step workflow could take &lt;strong&gt;days or weeks&lt;/strong&gt; to wire together, and you’d still be debugging infra all night. Now, you prototype today, deploy tomorrow, and scale without thinking about it.&lt;/p&gt;
&lt;p id="e249"&gt;It’s like moving from solo button-mashing in a dungeon to co-op with a full party who knows every mechanic and doesn’t blame you when things go sideways.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="281f"&gt;The pros, cons, and hilarious over-engineered moments&lt;/h2&gt;
&lt;p id="fba3"&gt;Claude Managed Agents are incredible but nothing in life (or AI) is perfect. Let’s break it down like loot stats in an RPG.&lt;/p&gt;
&lt;h3 id="ae5e"&gt;pros&lt;/h3&gt;
&lt;p id="9ee9"&gt;1.&lt;strong&gt; Rapid prototyping → production&lt;/strong&gt;&lt;br&gt; You define what the agent should do, and it just works. No more wrestling with Docker, scaling, logging, or retry loops.&lt;/p&gt;
&lt;pre&gt;&lt;span id="b952"&gt;&lt;span&gt;// simple example: track Jira issues daily&lt;/span&gt;&lt;br&gt;agent.&lt;span&gt;defineWorkflow&lt;/span&gt;({&lt;br&gt;  &lt;span&gt;triggers&lt;/span&gt;: [&lt;span&gt;"daily_schedule"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;actions&lt;/span&gt;: [&lt;span&gt;"fetchJira"&lt;/span&gt;, &lt;span&gt;"summarizeIssues"&lt;/span&gt;, &lt;span&gt;"notifyTeam"&lt;/span&gt;],&lt;br&gt;});&lt;br&gt;agent.&lt;span&gt;deploy&lt;/span&gt;();&lt;/span&gt;&lt;/pre&gt;
&lt;p id="8110"&gt;Boom your agent is live, persistent, and can handle multiple tasks simultaneously.&lt;/p&gt;
&lt;p id="e532"&gt;2. &lt;strong&gt;Scales automatically&lt;/strong&gt;&lt;br&gt; You don’t need a devops team babysitting containers. The agent handles concurrent requests, retries failed actions, and maintains context across sessions.&lt;/p&gt;
&lt;p id="1cbf"&gt;3.&lt;strong&gt; Flexibility with guardrails&lt;/strong&gt;&lt;br&gt; You can still control its behavior: tweak triggers, limit tool access, set custom workflows. It’s like giving your AI co-op character armor upgrades and magic spells but it still does the grinding for you.&lt;/p&gt;
&lt;h3 id="44f5"&gt;cons&lt;/h3&gt;
&lt;ul&gt;&lt;li id="5ea1"&gt;

&lt;strong&gt;Sometimes overkill&lt;/strong&gt; Want to just rename a few files in a repo? Claude might give you a full architecture lecture first.&lt;/li&gt;&lt;/ul&gt;
&lt;pre&gt;&lt;span id="5248"&gt;&lt;span&gt;// “minimal task” scenario&lt;/span&gt;&lt;br&gt;agent.&lt;span&gt;defineWorkflow&lt;/span&gt;({&lt;br&gt;  &lt;span&gt;triggers&lt;/span&gt;: [&lt;span&gt;"manual"&lt;/span&gt;],&lt;br&gt;  &lt;span&gt;actions&lt;/span&gt;: [&lt;span&gt;"renameFiles"&lt;/span&gt;],&lt;br&gt;});&lt;br&gt;agent.&lt;span&gt;deploy&lt;/span&gt;(); &lt;span&gt;// agent also suggests refactoring entire repo&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;ul&gt;

&lt;li id="4780"&gt;

&lt;strong&gt;Learning curve&lt;/strong&gt; Even though the infra is handled, you still need to define workflows clearly. Garbage in → garbage out.&lt;/li&gt;

&lt;li id="62d7"&gt;

&lt;strong&gt;Potential cost&lt;/strong&gt; Running fully hosted agents at scale isn’t free. You’re paying for convenience, reliability, and speed.&lt;/li&gt;

&lt;/ul&gt;
&lt;blockquote&gt;

&lt;p id="34f8"&gt;&lt;strong&gt;funny dev moments&lt;/strong&gt;&lt;/p&gt;

&lt;p id="ff2d"&gt;You tell the agent “just fetch these stats” and it returns a 3-page report with charts, summaries, and recommendations basically doing your job for you.&lt;/p&gt;

&lt;p id="edab"&gt;Sometimes it’s like the agent has ADHD:&lt;strong&gt; &lt;/strong&gt;multitasking so much you get overwhelmed just reading the log.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="720" height="720" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AaiPdKt7EYx4df8e5pjuSDg.gif"&gt;If your Claude agent is stuck, just whip it. It’ll work better&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a4e6"&gt;What this means for the future of AI products&lt;/h2&gt;
&lt;p id="0e11"&gt;Claude Managed Agents aren’t just a new feature they’re a &lt;strong&gt;signal shift&lt;/strong&gt;. Imagine giving every indie dev, startup, or hacker a fully autonomous co-op teammate who can actually ship features instead of just spitting out code snippets. That changes the game.&lt;/p&gt;
&lt;h3 id="2f0e"&gt;Faster innovation cycles&lt;/h3&gt;
&lt;p id="11b3"&gt;Before, shipping an AI agent felt like &lt;strong&gt;grinding through a dungeon solo&lt;/strong&gt;, patching servers, fixing infra, and hoping the scaling doesn’t explode. Now it’s like joining a pre-geared raid party: you focus on creative ideas while the platform handles the mechanics.&lt;/p&gt;
&lt;p id="5c3a"&gt;Want an agent to generate reports, moderate forums, or manage internal workflows? You can prototype today, deploy tomorrow, and scale next week. The bottleneck is your imagination, not your infrastructure.&lt;/p&gt;
&lt;h3 id="676e"&gt;Leveling the playing field&lt;/h3&gt;
&lt;p id="84b7"&gt;Startups that relied on building custom infra now face competition from anyone who can spin up a managed agent. That’s why some developers are saying:&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="b641"&gt;“The entire AI agent startup sector just got cooked today.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="b491"&gt;This is basically giving every dev &lt;strong&gt;a max-level character&lt;/strong&gt; while others are still grinding XP with sticks and stones.&lt;/p&gt;
&lt;h3 id="96a8"&gt;New job roles and opportunities&lt;/h3&gt;
&lt;p id="2a7f"&gt;&lt;strong&gt;Sure, some traditional devops roles might shrink. But a new kind of work emerges:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="8a78"&gt;Designing clever multi-step workflows&lt;/li&gt;

&lt;li id="a854"&gt;Optimizing agent behaviors for specific domains&lt;/li&gt;

&lt;li id="e1f0"&gt;Integrating agents with company-specific tools&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="9184"&gt;It’s like moving from solo dungeon crawling to &lt;strong&gt;co-op strategy design &lt;/strong&gt;more thinking, less slogging.&lt;/p&gt;
&lt;h3 id="edf3"&gt;A peek into tomorrow&lt;/h3&gt;
&lt;p id="d71f"&gt;&lt;strong&gt;Imagine AI agents that can:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="1391"&gt;Orchestrate your entire microservice architecture autonomously&lt;/li&gt;

&lt;li id="0391"&gt;Monitor and optimize ad campaigns overnight&lt;/li&gt;

&lt;li id="a115"&gt;Run multi-step internal workflows without human supervision&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="6b64"&gt;…and all of this &lt;strong&gt;without ever touching a server&lt;/strong&gt;. That’s a pretty wild cheat code for productivity.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b1d8"&gt;Conclusion: Why Claude Managed Agents are a game-changer&lt;/h2&gt;
&lt;p id="972b"&gt;If you’ve read this far, congratulations you now understand why the AI agent world just got flipped upside down. Claude Managed Agents aren’t just another “tool.” They’re a fully hosted, production-ready, context-aware co-op teammate that lets you go from prototype to millions of users without breaking a sweat.&lt;/p&gt;
&lt;p id="ded5"&gt;For devs, this is like discovering a hidden cheat code in a notoriously brutal roguelike: suddenly, the grind is gone, and all that’s left is creativity. For startups, it’s both terrifying and exciting the playing field just leveled, and everyone now has access to max-level gear.&lt;/p&gt;
&lt;p id="6694"&gt;Yes, there are caveats: learning to define workflows properly, avoiding over-engineering small tasks, and monitoring costs. But the &lt;strong&gt;speed, scalability, and sheer autonomy&lt;/strong&gt; you get in return is nothing short of magical.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="8ba6"&gt;&lt;strong&gt;The takeaway?&lt;/strong&gt; &lt;br&gt;AI is no longer just about models it’s about &lt;strong&gt;agents that act, scale, and manage themselves&lt;/strong&gt;. If you’re a developer, startup founder, or AI hobbyist, it’s time to experiment. And yes, sometimes you might have to “whip your Claude” when it’s stuck but that’s part of the fun.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="19ad"&gt;Helpful resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="2c8b"&gt;

&lt;a href="https://x.com/claudeai/status/2041927687460024721?s=20" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Claude Tweet&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt;Introducing Claude Managed Agents&lt;/li&gt;

&lt;li id="7050"&gt;

&lt;a href="https://www.anthropic.com/claude-platform" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Claude Platform Docs&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; official guides for Managed Agents&lt;/li&gt;

&lt;li id="0355"&gt;

&lt;a href="https://www.youtube.com/results?search_query=claude+managed+agents" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Demo videos &amp;amp; workflow examples&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;:&lt;/strong&gt; see agents in action&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Cloud-native was the tutorial. AI-native is the real boss fight</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:50:09 +0000</pubDate>
      <link>https://forem.com/dev_tips/cloud-native-was-the-tutorial-ai-native-is-the-real-boss-fight-5h19</link>
      <guid>https://forem.com/dev_tips/cloud-native-was-the-tutorial-ai-native-is-the-real-boss-fight-5h19</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="afa7"&gt;Containers and Kubernetes taught us how to scale infrastructure.&lt;br&gt; AI-native systems force developers to design &lt;strong&gt;data pipelines, model layers, and reasoning platforms &lt;/strong&gt;and the architecture playbook is changing again.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="5f11"&gt;For the last decade, the developer playbook felt fairly predictable.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="2f33"&gt;Learn Docker.&lt;br&gt;Understand Kubernetes.&lt;br&gt;Build microservices.&lt;br&gt;Automate deployments with CI/CD.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="c989"&gt;That stack defined the cloud-native era. It took the industry years of experimentation, broken clusters, and questionable YAML files, but eventually the model worked. Infrastructure became programmable, deployments became boring, and scaling an application was mostly the platform’s job.&lt;/p&gt;
&lt;p id="fbab"&gt;In other words, we finally figured out how to build reliable systems at scale.&lt;/p&gt;
&lt;p id="02d1"&gt;Then AI arrived and quietly broke several of those assumptions.&lt;/p&gt;
&lt;p id="55a5"&gt;Suddenly applications weren’t just APIs talking to databases anymore. Now they include prompts, embeddings, vector search, model routing, and evaluation pipelines. Even worse the core component of the system, the model, doesn’t behave like traditional software. The same input can produce slightly different answers.&lt;/p&gt;
&lt;p id="59e8"&gt;The first time I added an AI feature to a project, I assumed it would be simple. Call a model API, return the result, and move on.&lt;/p&gt;
&lt;p id="fe41"&gt;Instead I ended up building a small ecosystem: a document ingestion pipeline, embeddings stored in a vector database, retrieval logic, and tools to debug prompts when the model confidently generated something completely wrong.&lt;/p&gt;
&lt;p id="92de"&gt;That’s when the shift became obvious.&lt;/p&gt;
&lt;p id="4c2c"&gt;We’re not just building applications anymore.&lt;/p&gt;
&lt;p id="e5b5"&gt;We’re building &lt;strong&gt;AI systems&lt;/strong&gt;.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="d879"&gt;&lt;strong&gt;TL;DR&lt;br&gt;&lt;/strong&gt;Cloud-native architecture taught developers how to scale &lt;strong&gt;infrastructure and services&lt;/strong&gt;.&lt;br&gt;AI-native architecture focuses on scaling &lt;strong&gt;knowledge, models, and reasoning systems&lt;/strong&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="1566"&gt;The cloud-native era when infrastructure became programmable&lt;/h2&gt;
&lt;p id="bf90"&gt;Before cloud-native architecture became the default way of building software, deploying applications was far less predictable. Systems ran on virtual machines, environments behaved differently across servers, and scaling often meant manually provisioning more infrastructure and hoping everything stayed stable.&lt;/p&gt;
&lt;p id="37d7"&gt;Deployment pipelines were fragile. Configuration differences between machines caused subtle bugs. And if something broke in production, someone usually had to log into a server and investigate directly.&lt;/p&gt;
&lt;p id="d121"&gt;Then containers arrived and simplified part of the problem.&lt;/p&gt;
&lt;p id="db31"&gt;Docker introduced the idea that an application and its dependencies could be packaged together into a single portable unit. Instead of worrying about operating system differences or missing libraries, developers could run the same container locally, in staging, and in production.&lt;/p&gt;
&lt;p id="4c6c"&gt;But once teams started running dozens or hundreds of containers, a new challenge appeared: orchestration.&lt;/p&gt;
&lt;p id="3b55"&gt;That’s where &lt;strong&gt;Kubernetes&lt;/strong&gt; became the centerpiece of the cloud-native ecosystem.&lt;/p&gt;
&lt;p id="b275"&gt;Kubernetes introduced a powerful shift in how developers think about infrastructure. Instead of manually managing processes or machines, engineers describe the &lt;strong&gt;desired state&lt;/strong&gt; of the system. If a service needs three replicas, the platform ensures that three instances are always running. If a container crashes or a node fails, Kubernetes replaces it automatically.&lt;/p&gt;
&lt;p id="9f42"&gt;Infrastructure began behaving less like hardware and more like software.&lt;/p&gt;
&lt;p id="e1b9"&gt;This change enabled a new way of building systems. Instead of managing servers directly, teams began creating &lt;strong&gt;platforms&lt;/strong&gt; that automated deployments, scaling, networking, and monitoring.&lt;/p&gt;
&lt;p id="a9ef"&gt;Developers could push code, and the platform would handle the rest.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="405" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2A_g0v2-9qmkZFvXUSjz_tSQ.png"&gt;A typical cloud-native stack where Kubernetes orchestrates containerized services running on cloud infrastructure.&lt;p id="e33f"&gt;Over time, tools like &lt;strong&gt;Prometheus&lt;/strong&gt;, &lt;strong&gt;Helm&lt;/strong&gt;, and service meshes expanded this ecosystem, turning cloud-native infrastructure into a rich platform for running distributed systems.&lt;/p&gt;
&lt;p id="fbc2"&gt;What mattered most wasn’t any individual tool.&lt;/p&gt;
&lt;p id="b0dd"&gt;The real breakthrough was the idea that &lt;strong&gt;infrastructure itself could be treated as a platform&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="c4c4"&gt;Developers no longer needed to manage servers directly. They interacted with systems that automated scaling, recovery, and deployment.&lt;/p&gt;
&lt;p id="5874"&gt;For the first time, large distributed systems could behave predictably.&lt;/p&gt;
&lt;p id="f5b7"&gt;And just as that model started to feel stable, AI systems arrived and introduced a completely different layer of complexity.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="c96c"&gt;Why AI systems break normal software architecture&lt;/h2&gt;
&lt;p id="b3b6"&gt;Cloud-native systems still follow the rules developers have relied on for decades.&lt;/p&gt;
&lt;p id="b0d4"&gt;You send a request.&lt;br&gt;The service executes deterministic logic.&lt;br&gt;The system returns a predictable response.&lt;/p&gt;
&lt;p id="75dd"&gt;If something goes wrong, the debugging path is clear. Trace the logic, inspect the data, fix the bug.&lt;/p&gt;
&lt;p id="0a04"&gt;AI systems behave differently.&lt;/p&gt;
&lt;p id="abf0"&gt;Instead of executing strict rules, modern models generate outputs based on probabilities learned from massive datasets. The model doesn’t follow a fixed set of instructions the way a typical backend service does. It predicts the most likely response based on patterns it has learned.&lt;/p&gt;
&lt;p id="5f13"&gt;That difference might seem subtle, but it changes how software behaves.&lt;/p&gt;
&lt;p id="971c"&gt;&lt;strong&gt;Traditional services follow a simple pattern:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="9970"&gt;input → application logic → database → output&lt;/span&gt;&lt;/pre&gt;
&lt;p id="f271"&gt;AI systems introduce a different flow.&lt;/p&gt;
&lt;p id="e94a"&gt;The application sends input to a model, the model evaluates probabilities across millions or billions of parameters, and the response is generated dynamically. Even with the same prompt, the output may vary slightly depending on the model’s internal reasoning.&lt;/p&gt;
&lt;p id="e2e4"&gt;This probabilistic behavior introduces a new category of engineering challenges.&lt;/p&gt;
&lt;p id="4964"&gt;Developers aren’t just debugging code anymore.&lt;/p&gt;
&lt;p id="39d6"&gt;They’re debugging &lt;strong&gt;prompts, data pipelines, and model behavior&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="7559"&gt;The new stack developers are learning&lt;/h3&gt;
&lt;p id="fb15"&gt;As teams began integrating AI capabilities into applications, an entirely new layer of infrastructure appeared.&lt;/p&gt;
&lt;p id="289d"&gt;Instead of just databases and APIs, developers now deal with systems designed to manage knowledge retrieval and model interaction.&lt;/p&gt;
&lt;p id="e941"&gt;&lt;strong&gt;Common components include:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="d105"&gt;

&lt;strong&gt;Embedding models&lt;/strong&gt;, which convert text into vector representations of meaning&lt;/li&gt;

&lt;li id="37de"&gt;

&lt;strong&gt;Vector databases&lt;/strong&gt;, which store those vectors and allow similarity search&lt;/li&gt;

&lt;li id="26d7"&gt;

&lt;strong&gt;Retrieval pipelines&lt;/strong&gt;, which supply relevant context to a model&lt;/li&gt;

&lt;li id="0089"&gt;

&lt;strong&gt;Prompt frameworks&lt;/strong&gt;, which structure interactions with language models&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="073b"&gt;Frameworks such as &lt;strong&gt;LangChain&lt;/strong&gt; and &lt;strong&gt;LlamaIndex&lt;/strong&gt; emerged to manage these workflows because connecting models, data sources, and prompts quickly becomes complex.&lt;/p&gt;
&lt;p id="27da"&gt;A typical AI application might retrieve information from a vector database, combine that context with a prompt, and then ask a model to generate a response.&lt;/p&gt;
&lt;p id="ba7e"&gt;This pattern is known as &lt;strong&gt;retrieval-augmented generation&lt;/strong&gt;, and it has become a foundational technique for building AI-powered products.&lt;/p&gt;
&lt;h3 id="35a2"&gt;When software starts behaving like an experiment&lt;/h3&gt;
&lt;p id="44e0"&gt;One way to understand the shift is through analogy.&lt;/p&gt;
&lt;p id="07f4"&gt;Microservices were like &lt;strong&gt;Lego blocks&lt;/strong&gt;. Each service had a defined interface and predictable behavior.&lt;/p&gt;
&lt;p id="e4e4"&gt;AI systems behave more like &lt;strong&gt;chemistry experiments&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="bfeb"&gt;Small changes to a prompt can change the result. Switching the model can change the tone or reasoning of the output. Updating the knowledge base can alter how the system answers questions.&lt;/p&gt;
&lt;p id="29d8"&gt;Small adjustments ripple across the entire system.&lt;/p&gt;
&lt;p id="ea69"&gt;Developers used to debug stack traces.&lt;/p&gt;
&lt;p id="a3a8"&gt;Now they often debug &lt;strong&gt;model responses, retrieved documents, and prompt behavior&lt;/strong&gt;.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2A2coKyHSNH7ESIelETIFWng.png"&gt;&lt;p id="0429"&gt;Once models, embeddings, and retrieval pipelines become part of the stack, software stops looking like a typical microservices architecture.&lt;/p&gt;
&lt;p id="9967"&gt;It starts looking like a &lt;strong&gt;knowledge pipeline feeding an intelligence engine&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="7cff"&gt;And that’s where the idea of &lt;strong&gt;AI-native architecture&lt;/strong&gt; begins to take shape.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="f43a"&gt;The three planes of AI-native systems&lt;/h2&gt;
&lt;p id="4f7c"&gt;Once teams move beyond prototypes and start building real AI features, the architecture begins to settle into a pattern. It doesn’t look like a classic microservices stack anymore. Instead, most AI systems naturally separate into three layers that work together.&lt;/p&gt;
&lt;p id="cb8f"&gt;You can think of them as &lt;strong&gt;three planes&lt;/strong&gt;: the data plane, the model plane, and the agent plane.&lt;/p&gt;
&lt;p id="3a2e"&gt;Each one handles a different responsibility inside the system.&lt;/p&gt;
&lt;h3 id="4762"&gt;Data plane where knowledge lives&lt;/h3&gt;
&lt;p id="30b2"&gt;The data plane is responsible for storing and retrieving the information that models need in order to generate useful responses.&lt;/p&gt;
&lt;p id="42b1"&gt;In traditional applications, this layer would usually be a relational database or search index. AI systems introduce an additional concept called &lt;strong&gt;embeddings&lt;/strong&gt;, which convert text into numerical vectors that represent meaning instead of exact words.&lt;/p&gt;
&lt;p id="c1d4"&gt;Those vectors are stored in databases optimized for similarity search. When a user asks a question, the system retrieves the most relevant pieces of information and passes them to the model as context.&lt;/p&gt;
&lt;p id="d91e"&gt;Typical components in this layer include ingestion pipelines that collect documents, chunking systems that break large text into smaller segments, embedding models that transform text into vectors, and vector databases that store those vectors for fast retrieval.&lt;/p&gt;
&lt;p id="3aee"&gt;If the data plane is poorly designed, the entire AI system struggles. Even powerful models depend heavily on the quality and freshness of the context they receive.&lt;/p&gt;
&lt;h3 id="67d6"&gt;Model plane where intelligence runs&lt;/h3&gt;
&lt;p id="381a"&gt;The model plane is where the AI models themselves operate.&lt;/p&gt;
&lt;p id="f0e2"&gt;This layer manages inference requests, selects which model should handle a task, and balances factors such as latency, cost, and accuracy. Many systems interact with multiple models at once, routing requests depending on the complexity of the task.&lt;/p&gt;
&lt;p id="6319"&gt;Smaller models may handle simple classification or summarization tasks, while larger models perform reasoning or generation.&lt;/p&gt;
&lt;p id="b2e9"&gt;The model plane often includes components such as model gateways, inference services, caching layers, and monitoring systems that track model performance and cost.&lt;/p&gt;
&lt;p id="fb97"&gt;Managing this layer effectively is critical because model usage can grow quickly as applications scale.&lt;/p&gt;
&lt;h3 id="bd5e"&gt;Agent plane where reasoning happens&lt;/h3&gt;
&lt;p id="abb8"&gt;The agent plane sits above the other layers and coordinates how the system solves problems.&lt;/p&gt;
&lt;p id="0cc0"&gt;Instead of simply calling a model once, this layer can orchestrate multiple steps. It might retrieve documents from a knowledge store, call external APIs, perform calculations, and then assemble the final response.&lt;/p&gt;
&lt;p id="1fa6"&gt;Frameworks such as LangChain and other agent systems attempt to simplify this orchestration by allowing developers to define workflows that combine models, tools, and data sources.&lt;/p&gt;
&lt;p id="b1e0"&gt;Once this layer exists, the application stops looking like a simple API with a model behind it.&lt;/p&gt;
&lt;p id="60a7"&gt;It becomes something closer to a &lt;strong&gt;reasoning engine&lt;/strong&gt;.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="383" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AV5q8BkXDYLyo0J2hl-vYMw.png"&gt;AI-native architecture separating data retrieval, model inference, and reasoning orchestration into distinct layers.&lt;p id="8cd0"&gt;When these three planes work together, the structure of an AI-native system becomes clearer.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="f3d3"&gt;The data plane supplies knowledge.&lt;br&gt;The model plane provides intelligence.&lt;br&gt;The agent plane coordinates reasoning.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="6054"&gt;Together they form the foundation of modern AI-native architectures.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="61b3"&gt;Platform engineering becomes the backbone of AI systems&lt;/h2&gt;
&lt;p id="88ef"&gt;Once teams start shipping AI features across multiple services, a familiar pattern appears.&lt;/p&gt;
&lt;p id="e381"&gt;At the beginning everything feels simple. One developer adds a model call to an API endpoint. Another team experiments with embeddings for search. Someone builds a chatbot using a prompt and a model provider.&lt;/p&gt;
&lt;p id="57fd"&gt;Then things grow.&lt;/p&gt;
&lt;p id="dd77"&gt;A different team integrates another model provider.&lt;br&gt;Someone else deploys a separate vector database.&lt;br&gt;Another service creates its own prompt logic.&lt;/p&gt;
&lt;p id="eec0"&gt;After a few months the system starts looking less like an architecture and more like a collection of experiments.&lt;/p&gt;
&lt;p id="5935"&gt;Different teams are calling different models.&lt;br&gt;Embeddings are generated in multiple pipelines.&lt;br&gt;Nobody is sure how much model usage actually costs.&lt;/p&gt;
&lt;p id="edb4"&gt;This is exactly the same moment the industry faced during the microservices explosion.&lt;/p&gt;
&lt;p id="104f"&gt;And the solution ends up being the same.&lt;/p&gt;
&lt;p id="e3af"&gt;&lt;strong&gt;Platform engineering.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="af48"&gt;The same lesson cloud-native already taught us&lt;/h3&gt;
&lt;p id="41a1"&gt;When microservices first became popular, every team managed infrastructure slightly differently. Deployment pipelines varied. Monitoring systems were inconsistent. Networking and scaling rules changed across services.&lt;/p&gt;
&lt;p id="052f"&gt;Eventually organizations realized they needed a shared platform that standardized how services were deployed and operated.&lt;/p&gt;
&lt;p id="5ab1"&gt;That’s where &lt;strong&gt;internal developer platforms&lt;/strong&gt; emerged.&lt;/p&gt;
&lt;p id="ab52"&gt;Instead of every team managing Kubernetes clusters, monitoring stacks, and CI pipelines individually, a platform team built a layer that simplified those operations for everyone else.&lt;/p&gt;
&lt;p id="71ea"&gt;AI systems are now reaching that same stage.&lt;/p&gt;
&lt;p id="d499"&gt;Without a platform layer, the architecture quickly becomes difficult to maintain.&lt;/p&gt;
&lt;h3 id="54f9"&gt;What an AI platform layer actually manages&lt;/h3&gt;
&lt;p id="f2ea"&gt;An internal AI platform sits between applications and the underlying AI infrastructure. Instead of every service integrating models and vector databases directly, applications interact with the platform, which handles those responsibilities.&lt;/p&gt;
&lt;p id="5c57"&gt;A typical AI platform manages several important components.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="258" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AnMIMnUOvVYfCF178Ng4vMA.png"&gt;&lt;p id="1425"&gt;By centralizing these capabilities, the platform ensures that teams can reuse infrastructure instead of rebuilding the same pipelines repeatedly.&lt;/p&gt;
&lt;p id="a5d8"&gt;Tools such as &lt;strong&gt;Backstage&lt;/strong&gt;, &lt;strong&gt;Ray&lt;/strong&gt;, and &lt;strong&gt;Kubeflow&lt;/strong&gt; are often used as building blocks for these platforms because they provide ways to manage workflows, model infrastructure, and developer portals.&lt;/p&gt;
&lt;h3 id="6d3c"&gt;Why this layer becomes unavoidable&lt;/h3&gt;
&lt;p id="d35f"&gt;As AI features spread across an organization, the number of moving parts increases quickly.&lt;/p&gt;
&lt;p id="6b83"&gt;Models evolve.&lt;br&gt;Knowledge bases grow.&lt;br&gt;Prompts and workflows change frequently.&lt;/p&gt;
&lt;p id="383d"&gt;Without a central platform managing these pieces, every team ends up solving the same problems again and again.&lt;/p&gt;
&lt;p id="b306"&gt;Cloud-native architecture solved infrastructure scaling through platforms.&lt;/p&gt;
&lt;p id="8a31"&gt;AI-native architecture is now repeating that pattern but this time the platform manages &lt;strong&gt;models, knowledge pipelines, and reasoning workflows&lt;/strong&gt; instead of just containers and services.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="0288"&gt;What AI-native systems actually look like in practice&lt;/h2&gt;
&lt;p id="b229"&gt;Once the architecture matures, most AI-powered applications start to follow a surprisingly consistent workflow. The surface might look different a chatbot, a recommendation engine, a document assistant but underneath, many of these systems share the same pattern.&lt;/p&gt;
&lt;p id="30ce"&gt;Instead of the traditional backend flow where a service queries a database and returns a response, AI-native applications operate more like &lt;strong&gt;knowledge pipelines feeding a model&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="3b7e"&gt;The process usually starts with data.&lt;/p&gt;
&lt;p id="737b"&gt;Applications collect documents, logs, product information, support articles, or other sources of knowledge. Those documents go through an ingestion pipeline that prepares them for retrieval. Large pieces of text are broken into smaller segments, which allows the system to search them efficiently later.&lt;/p&gt;
&lt;p id="2390"&gt;Each segment is converted into an embedding a vector representation that captures semantic meaning. Those vectors are stored in a specialized database designed for similarity search.&lt;/p&gt;
&lt;p id="69a8"&gt;When a user sends a query, the system retrieves the most relevant pieces of information from that database and passes them to the model along with the prompt. The model then uses that context to generate a response.&lt;/p&gt;
&lt;p id="95d7"&gt;This pattern is known as &lt;strong&gt;retrieval-augmented generation&lt;/strong&gt;, often shortened to RAG.&lt;/p&gt;
&lt;h3 id="2805"&gt;Typical AI pipeline&lt;/h3&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="226" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2A5ABqY_VRQauGZC1bpW9SsQ.png"&gt;&lt;p id="0d7a"&gt;One of the surprising lessons developers discover when building these systems is that the model itself is rarely the hardest part.&lt;/p&gt;
&lt;p id="cee4"&gt;Calling a model API is usually straightforward.&lt;/p&gt;
&lt;p id="c01a"&gt;The real complexity lives in everything around it.&lt;/p&gt;
&lt;p id="207d"&gt;Preparing high-quality data.&lt;br&gt;Deciding how documents should be chunked.&lt;br&gt;Maintaining embeddings when knowledge changes.&lt;br&gt;Evaluating whether the model’s answers are actually correct.&lt;/p&gt;
&lt;p id="35a5"&gt;Many teams eventually realize that the application isn’t just an API connected to a model.&lt;/p&gt;
&lt;p id="383b"&gt;It’s a &lt;strong&gt;data platform with an intelligence layer on top&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="3e5c"&gt;That shift changes how systems are designed. Instead of focusing primarily on services and endpoints, architects start thinking about knowledge pipelines, model orchestration, and evaluation loops that continuously improve the system’s responses.&lt;/p&gt;
&lt;p id="f586"&gt;Once you see this pattern, the idea of &lt;strong&gt;AI-native architecture&lt;/strong&gt; becomes much clearer.&lt;/p&gt;
&lt;p id="1f66"&gt;Developers are no longer building simple services.&lt;/p&gt;
&lt;p id="6235"&gt;They’re building systems that combine &lt;strong&gt;data, models, and reasoning workflows&lt;/strong&gt; into something that behaves almost like an intelligent platform.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="10ea"&gt;The next evolution of developers&lt;/h2&gt;
&lt;p id="77bc"&gt;If you zoom out and look at the last couple of decades of software development, one pattern becomes pretty clear: every major shift in technology changes what developers actually do.&lt;/p&gt;
&lt;p id="c6fd"&gt;There was a time when most engineers focused purely on application logic. Infrastructure lived somewhere else, usually managed by operations teams. Developers wrote code, operations teams ran servers, and the boundary between the two roles was fairly strict.&lt;/p&gt;
&lt;p id="9169"&gt;Cloud computing blurred that boundary.&lt;/p&gt;
&lt;p id="44b5"&gt;With the rise of containers, CI/CD pipelines, and orchestration systems like Kubernetes, developers began interacting directly with infrastructure. The industry started talking about DevOps, and eventually about &lt;strong&gt;platform engineering&lt;/strong&gt;, where teams build internal platforms that make it easier for developers to deploy and operate services.&lt;/p&gt;
&lt;p id="cfd1"&gt;AI is now pushing that evolution even further.&lt;/p&gt;
&lt;p id="55a3"&gt;Instead of designing only APIs and services, developers increasingly design systems that combine &lt;strong&gt;data pipelines, models, and reasoning workflows&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="955f"&gt;The questions engineers ask during development are changing.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="71f0"&gt;Which model should handle this task?&lt;br&gt;How should knowledge be retrieved and injected into prompts?&lt;br&gt;How do we evaluate whether the model’s answer is correct?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="537e"&gt;These questions aren’t just about application logic anymore. They’re about building &lt;strong&gt;intelligence systems&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="224d"&gt;Cloud providers are already adapting to this shift. Platforms like &lt;strong&gt;AWS Bedrock&lt;/strong&gt;, &lt;strong&gt;Azure AI&lt;/strong&gt;, and &lt;strong&gt;Google Vertex AI&lt;/strong&gt; are designed to simplify model integration and orchestration so developers can build AI-powered applications without managing every piece of infrastructure themselves.&lt;/p&gt;
&lt;p id="5986"&gt;This doesn’t mean traditional software engineering disappears.&lt;/p&gt;
&lt;p id="516d"&gt;But it does mean the role is expanding.&lt;/p&gt;
&lt;p id="32db"&gt;Developers used to ship code that executed logic.&lt;/p&gt;
&lt;p id="36f7"&gt;Now we’re increasingly building systems that combine &lt;strong&gt;knowledge, models, and reasoning&lt;/strong&gt; to produce intelligent behavior.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="312c"&gt;Conclusion the next decade of software is AI-native&lt;/h2&gt;
&lt;p id="f16b"&gt;For most of the last decade, cloud-native architecture defined how modern software was built.&lt;/p&gt;
&lt;p id="dc73"&gt;Containers made applications portable. Kubernetes automated orchestration. CI/CD pipelines turned deployments into routine operations. Teams could build distributed systems that scaled globally without worrying about the details of the underlying infrastructure.&lt;/p&gt;
&lt;p id="5d15"&gt;That shift fundamentally changed how software was delivered.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="0c6b"&gt;AI is now triggering the next architectural evolution.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="f709"&gt;Instead of focusing only on infrastructure and services, modern applications increasingly revolve around &lt;strong&gt;knowledge pipelines, models, and reasoning systems&lt;/strong&gt;. The core logic of the system is no longer just code written by developers. It’s a combination of data, model behavior, and orchestration layers that work together to generate responses.&lt;/p&gt;
&lt;p id="ee5f"&gt;This changes how systems are designed.&lt;/p&gt;
&lt;p id="8883"&gt;Reliable AI applications require well-structured data pipelines, effective model orchestration, and evaluation mechanisms that ensure responses remain useful and accurate. The model itself is only one part of the architecture.&lt;/p&gt;
&lt;p id="7e22"&gt;The surrounding system is what makes the intelligence usable.&lt;/p&gt;
&lt;p id="b8ec"&gt;The companies that succeed in this new environment won’t necessarily be the ones with the largest models. They’ll be the ones that build the best &lt;strong&gt;platforms and data systems around those models&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="8513"&gt;If cloud-native architecture was about scaling infrastructure, AI-native architecture is about scaling &lt;strong&gt;intelligence&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="e419"&gt;And just like the cloud-native transition before it, developers who understand the architecture early will be the ones shaping how the next generation of software is built.&lt;/p&gt;
&lt;h2 id="0cae"&gt;Helpful resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="aee3"&gt;&lt;a href="https://kubernetes.io/docs/" rel="noopener ugc nofollow noreferrer"&gt;Kubernetes documentation&lt;/a&gt;&lt;/li&gt;

&lt;li id="e3e8"&gt;&lt;a href="https://landscape.cncf.io/" rel="noopener ugc nofollow noreferrer"&gt;CNCF cloud-native landscape&lt;/a&gt;&lt;/li&gt;

&lt;li id="cd62"&gt;&lt;a href="https://platform.openai.com/docs" rel="noopener ugc nofollow noreferrer"&gt;OpenAI API documentation&lt;/a&gt;&lt;/li&gt;

&lt;li id="a988"&gt;&lt;a href="https://github.com/langchain-ai/langchain" rel="noopener ugc nofollow noreferrer"&gt;LangChain GitHub repository&lt;/a&gt;&lt;/li&gt;

&lt;li id="c362"&gt;&lt;a href="https://github.com/run-llama/llama_index" rel="noopener ugc nofollow noreferrer"&gt;LlamaIndex GitHub repository&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Frameworks come and go; the fundamentals are the real cheat code</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:47:53 +0000</pubDate>
      <link>https://forem.com/dev_tips/frameworks-come-and-go-the-fundamentals-are-the-real-cheat-code-21kk</link>
      <guid>https://forem.com/dev_tips/frameworks-come-and-go-the-fundamentals-are-the-real-cheat-code-21kk</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="767f"&gt;&lt;/h1&gt;
&lt;h2 id="3915"&gt;Most developers chase tools. the ones who survive the industry learn the systems underneath.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AshT2dv6L29MCnmexKK2aAQ.png"&gt;&lt;p id="8111"&gt;A few weeks ago I was scrolling through developer job listings.&lt;/p&gt;
&lt;p id="480e"&gt;You know the kind.&lt;/p&gt;
&lt;p id="f03d"&gt;The ones that look less like a job description and more like a grocery list of frameworks.&lt;/p&gt;
&lt;ul&gt;

&lt;li id="cb92"&gt;React&lt;/li&gt;

&lt;li id="a3d2"&gt;Next.js&lt;/li&gt;

&lt;li id="0ee1"&gt;GraphQL&lt;/li&gt;

&lt;li id="b785"&gt;Tailwind&lt;/li&gt;

&lt;li id="79dd"&gt;Docker&lt;/li&gt;

&lt;li id="6ad3"&gt;Kubernetes&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="9a1f"&gt;And somewhere in the middle of it all you start wondering if the role is actually “software engineer” or &lt;strong&gt;“collector of JavaScript ecosystems.”&lt;/strong&gt;&lt;/p&gt;
&lt;p id="38fe"&gt;The funny part is how normal this has become.&lt;/p&gt;
&lt;p id="05d9"&gt;Every few months a new framework appears. A blog post goes viral explaining why it fixes everything wrong with the previous framework. Tutorials explode. Courses appear. Half the developer internet starts rebuilding their side projects with the new stack.&lt;/p&gt;
&lt;p id="01e2"&gt;Then a year later something else replaces it.&lt;/p&gt;
&lt;p id="5ce0"&gt;And the cycle starts again.&lt;/p&gt;
&lt;p id="d75d"&gt;The strange thing is that underneath all this movement, the core mechanics of software barely change.&lt;/p&gt;
&lt;p id="f894"&gt;Browsers still send HTTP requests.&lt;br&gt;Servers still process them.&lt;br&gt;Databases still store data.&lt;br&gt;Operating systems still manage processes and memory.&lt;/p&gt;
&lt;p id="71c0"&gt;Frameworks sit on top of those systems, but they don’t replace them.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="66d1"&gt;&lt;strong&gt;Frameworks feel new.&lt;br&gt;Fundamentals age slowly.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="702d"&gt;That difference matters more than most developers realize.&lt;/p&gt;
&lt;p id="dd72"&gt;I learned this the hard way early in my career.&lt;/p&gt;
&lt;p id="66e9"&gt;Back when jQuery plugins were everywhere, I spent weeks learning different libraries for tabs, sliders, and modal windows. It felt productive because I could build UI features quickly.&lt;/p&gt;
&lt;p id="1f1a"&gt;Then one day something broke.&lt;/p&gt;
&lt;p id="764d"&gt;None of the plugins helped.&lt;/p&gt;
&lt;p id="f9fc"&gt;The real issue turned out to be a &lt;strong&gt;DOM event propagation problem&lt;/strong&gt;. Once I understood how browser events actually worked, the fix took five minutes.&lt;/p&gt;
&lt;p id="9b6a"&gt;That moment changed how I looked at programming.&lt;/p&gt;
&lt;p id="7d4e"&gt;Because it showed me something simple.&lt;/p&gt;
&lt;p id="54e3"&gt;The tools were never the real skill.&lt;/p&gt;
&lt;p id="2247"&gt;Understanding the system was.&lt;/p&gt;
&lt;h2 id="ec21"&gt;TL;DR&lt;/h2&gt;
&lt;blockquote&gt;

&lt;p id="78aa"&gt;If you build your career around frameworks, you’ll constantly feel like you’re catching up.&lt;/p&gt;

&lt;p id="cb11"&gt;If you build it around fundamentals, new tools start feeling predictable. They’re just different interfaces built on ideas you already understand.&lt;/p&gt;

&lt;p id="d712"&gt;Frameworks rotate.&lt;/p&gt;

&lt;p id="39c2"&gt;Fundamentals compound.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="cc06"&gt;The framework trap&lt;/h2&gt;
&lt;p id="b361"&gt;At some point the industry quietly changed.&lt;/p&gt;
&lt;p id="1ba7"&gt;Developers stopped learning how systems work and started learning how tools work. It’s subtle, but the difference changes everything about how people approach programming.&lt;/p&gt;
&lt;p id="7d48"&gt;Most developers today begin with a framework tutorial. Something like &lt;strong&gt;React&lt;/strong&gt; or &lt;strong&gt;Next.js&lt;/strong&gt;. Within a few hours you can build something impressive routing, components, styling, maybe even an API.&lt;/p&gt;
&lt;p id="8b43"&gt;That accessibility is incredible. Frameworks lowered the barrier to building real products.&lt;/p&gt;
&lt;p id="f746"&gt;But they also created a strange side effect.&lt;/p&gt;
&lt;p id="e4bc"&gt;A lot of developers now understand &lt;strong&gt;framework APIs better than the systems underneath them&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="5a65"&gt;The problem only shows up when something breaks.&lt;/p&gt;
&lt;p id="45cd"&gt;Requests start timing out. Pages load slowly. Memory usage climbs. Everything looks correct in the code, yet the application clearly isn’t behaving the way it should.&lt;/p&gt;
&lt;p id="47a5"&gt;This is the moment when the abstraction stops helping.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="63d3"&gt;&lt;strong&gt;frameworks simplify systems.&lt;br&gt;They don’t replace them.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="222a"&gt;The complexity never disappears it just moves deeper into the stack.&lt;/p&gt;
&lt;p id="018e"&gt;I remember running into this during a backend migration.&lt;/p&gt;
&lt;p id="38ca"&gt;Our team moved an API from &lt;strong&gt;Express.js&lt;/strong&gt; to &lt;strong&gt;Fastify&lt;/strong&gt; because the benchmarks showed better performance. The migration itself was simple and everything worked perfectly during testing.&lt;/p&gt;
&lt;p id="e09e"&gt;Then production traffic arrived.&lt;/p&gt;
&lt;p id="fd14"&gt;Requests started timing out and the API became unstable. Naturally we assumed the new framework was the issue, so we spent hours digging through configuration files, middleware, and plugin documentation trying to find the problem.&lt;/p&gt;
&lt;p id="7581"&gt;Nothing looked wrong.&lt;/p&gt;
&lt;p id="386d"&gt;Eventually someone checked the database logs. The real issue turned out to be a misconfigured connection pool in &lt;strong&gt;PostgreSQL&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="205b"&gt;Fixing it took five minutes.&lt;/p&gt;
&lt;p id="9509"&gt;Understanding why it happened took much longer.&lt;/p&gt;
&lt;p id="1bcc"&gt;That experience changed how I look at frameworks.&lt;/p&gt;
&lt;p id="012d"&gt;They aren’t foundations. They’re interfaces convenient ways to interact with deeper systems like networking, operating systems, and databases.&lt;/p&gt;
&lt;p id="2b79"&gt;Once you realize that, every new framework launch feels less revolutionary. It’s just another tool sitting on top of the same underlying ideas.&lt;/p&gt;
&lt;p id="9207"&gt;The tools change.&lt;/p&gt;
&lt;p id="9ab1"&gt;The fundamentals rarely do.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ATSFMZTjjVc3Ei09rxng0iA.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="0565"&gt;Why fundamentals quietly win careers&lt;/h2&gt;
&lt;p id="9be3"&gt;Early in my career I thought the best engineers were the ones who knew the most tools.&lt;/p&gt;
&lt;p id="14ed"&gt;They knew every framework.&lt;/p&gt;
&lt;p id="0bd0"&gt;Every library.&lt;/p&gt;
&lt;p id="d01b"&gt;Every trendy stack that appeared on GitHub.&lt;/p&gt;
&lt;p id="2547"&gt;But after working with a few really strong engineers, I noticed something strange.&lt;/p&gt;
&lt;p id="a4fd"&gt;They didn’t talk about tools very much.&lt;/p&gt;
&lt;p id="5c8a"&gt;They talked about &lt;strong&gt;systems&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="905e"&gt;One of the best backend engineers I worked with could open almost any codebase and start understanding it within minutes.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="961c"&gt;Different language.&lt;br&gt;Different framework.&lt;br&gt;Different architecture.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="ae49"&gt;Didn’t matter.&lt;/p&gt;
&lt;p id="33aa"&gt;He wasn’t memorizing frameworks.&lt;/p&gt;
&lt;p id="304c"&gt;He understood how the system underneath them worked.&lt;/p&gt;
&lt;p id="ad07"&gt;Most modern applications are built on a few core ideas that haven’t changed much in decades.&lt;/p&gt;
&lt;p id="9b36"&gt;Browsers send &lt;strong&gt;HTTP requests&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="5f09"&gt;Servers process them.&lt;/p&gt;
&lt;p id="e87e"&gt;Databases store and retrieve data.&lt;/p&gt;
&lt;p id="9994"&gt;And the entire process runs inside an operating system managing processes and memory.&lt;/p&gt;
&lt;p id="d71c"&gt;Once you start understanding those layers, frameworks begin to look much less mysterious.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="8875"&gt;&lt;strong&gt;Tools change quickly.&lt;br&gt;Systems change slowly.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="3535"&gt;That difference is where experience compounds.&lt;/p&gt;
&lt;p id="3d99"&gt;Take something like networking.&lt;/p&gt;
&lt;p id="e79e"&gt;Every backend framework whether it’s &lt;strong&gt;Express.js&lt;/strong&gt;, &lt;strong&gt;Fastify&lt;/strong&gt;, or something else entirely ultimately deals with the same request–response model.&lt;/p&gt;
&lt;p id="e8e5"&gt;A client sends a request.&lt;/p&gt;
&lt;p id="88c0"&gt;The server processes it.&lt;/p&gt;
&lt;p id="7428"&gt;A response comes back.&lt;/p&gt;
&lt;p id="bd82"&gt;Once you understand how &lt;strong&gt;HTTP&lt;/strong&gt; works, a lot of backend frameworks start looking like different ways to organize the same idea.&lt;/p&gt;
&lt;p id="6ea8"&gt;The same pattern shows up with databases.&lt;/p&gt;
&lt;p id="3666"&gt;Tools like &lt;strong&gt;Prisma&lt;/strong&gt; or &lt;strong&gt;PostgreSQL&lt;/strong&gt; might look different on the surface, but underneath they still rely on the same concepts queries, indexes, transactions, and data relationships.&lt;/p&gt;
&lt;p id="a19b"&gt;Once those fundamentals click, switching tools becomes much easier.&lt;/p&gt;
&lt;p id="f331"&gt;You’re not learning everything again.&lt;/p&gt;
&lt;p id="da8e"&gt;You’re just learning a new interface for concepts you already understand.&lt;/p&gt;
&lt;p id="061c"&gt;That’s why experienced engineers often seem to move between stacks effortlessly.&lt;/p&gt;
&lt;p id="6532"&gt;They aren’t starting from zero.&lt;/p&gt;
&lt;p id="ed66"&gt;They’re recognizing patterns.&lt;/p&gt;
&lt;p id="8c67"&gt;And once you start seeing those patterns too, the entire ecosystem becomes less overwhelming.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ACo5Ui9ONQ49dw213XvM2lg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="8759"&gt;The compounding effect of real knowledge&lt;/h2&gt;
&lt;p id="1f03"&gt;One thing nobody tells you when you start programming is this.&lt;/p&gt;
&lt;p id="d2ac"&gt;Knowledge doesn’t grow evenly some skills fade quickly others compound for years framework knowledge often belongs in the first category. fundamentals belong in the second.&lt;/p&gt;
&lt;p id="26fc"&gt;&lt;strong&gt;When you learn a framework, you’re mostly learning its structure.&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="2978"&gt;Where files live.&lt;/li&gt;

&lt;li id="4823"&gt;How routing works.&lt;/li&gt;

&lt;li id="9bc9"&gt;Which configuration unlocks which feature.&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="05a8"&gt;It’s useful knowledge, but it’s very specific to that ecosystem.&lt;/p&gt;
&lt;p id="e7be"&gt;Switch to another framework and a lot of that context resets.&lt;/p&gt;
&lt;ul&gt;

&lt;li id="2f42"&gt;Different conventions.&lt;/li&gt;

&lt;li id="2a4a"&gt;Different folder structure.&lt;/li&gt;

&lt;li id="12ca"&gt;Different tooling.&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="2643"&gt;Fundamentals work differently.&lt;/p&gt;
&lt;p id="1f33"&gt;They stack.&lt;/p&gt;
&lt;p id="8fc7"&gt;Understanding one concept suddenly unlocks a dozen technologies.&lt;/p&gt;
&lt;p id="71e4"&gt;Take relational databases as an example.&lt;/p&gt;
&lt;p id="544b"&gt;Once you understand indexing, query planning, and transactions, tools like &lt;strong&gt;PostgreSQL&lt;/strong&gt;, &lt;strong&gt;MySQL&lt;/strong&gt;, or ORMs like &lt;strong&gt;Prisma&lt;/strong&gt; all start to feel familiar.&lt;/p&gt;
&lt;p id="c168"&gt;Different syntax same ideas.&lt;/p&gt;
&lt;p id="f4c6"&gt;The same thing happens with operating systems.&lt;/p&gt;
&lt;p id="185a"&gt;Learn a bit about Linux processes, memory management, and file systems, and suddenly tools like &lt;strong&gt;Docker&lt;/strong&gt; stop feeling mysterious.&lt;/p&gt;
&lt;p id="5609"&gt;Containers aren’t magic.&lt;/p&gt;
&lt;p id="622d"&gt;They’re just clever ways of packaging processes using existing kernel features.&lt;/p&gt;
&lt;p id="c67b"&gt;Once you see that layer, the abstraction becomes easier to reason about.&lt;/p&gt;
&lt;p id="8091"&gt;The easiest way to think about this is like a skill tree in a game.&lt;/p&gt;
&lt;p id="8e52"&gt;You unlock one core ability and suddenly ten more abilities become available networking helps you understand APIs operating systems help you understand containers databases help you debug backend performance.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="2c6e"&gt;One idea unlocks entire parts of the ecosystem.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="3669"&gt;That’s why experienced developers often learn new stacks much faster than beginners.&lt;/p&gt;
&lt;p id="3985"&gt;They’re not learning everything from scratch.&lt;/p&gt;
&lt;p id="7739"&gt;They’re mapping familiar concepts onto new tools.&lt;/p&gt;
&lt;p id="7d57"&gt;The interface changes.&lt;/p&gt;
&lt;p id="6bde"&gt;The underlying ideas stay recognizable.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AJmedl2xC8gYihLnWqNMNSA.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="fee2"&gt;How to learn fundamentals without becoming a theory zombie&lt;/h2&gt;
&lt;p id="fe0d"&gt;Whenever someone says &lt;em&gt;“learn the fundamentals,”&lt;/em&gt; a lot of developers imagine the worst possible scenario.&lt;/p&gt;
&lt;p id="2879"&gt;A giant computer science textbook.&lt;/p&gt;
&lt;p id="6cf4"&gt;Hundreds of pages of algorithms.&lt;/p&gt;
&lt;p id="e228"&gt;Pure theory with zero connection to real projects.&lt;/p&gt;
&lt;p id="697d"&gt;That’s usually where motivation dies.&lt;/p&gt;
&lt;p id="74af"&gt;But learning fundamentals doesn’t mean becoming an academic.&lt;/p&gt;
&lt;p id="0c89"&gt;It just means understanding the systems you already use every day.&lt;/p&gt;
&lt;p id="f224"&gt;One of the best ways to do that is surprisingly simple.&lt;/p&gt;
&lt;p id="9326"&gt;Build smaller things not massive apps just tiny systems.&lt;/p&gt;
&lt;p id="7fb5"&gt;Write a basic HTTP server.&lt;/p&gt;
&lt;p id="6aa7"&gt;Create a simple CLI tool.&lt;/p&gt;
&lt;p id="bb15"&gt;Build a small caching layer.&lt;/p&gt;
&lt;p id="3366"&gt;Even something like a minimal key-value store will teach you more about software systems than dozens of tutorials.&lt;/p&gt;
&lt;p id="b2f7"&gt;Projects like &lt;strong&gt;Build Your Own X&lt;/strong&gt; are perfect for this kind of exploration. They walk through rebuilding simplified versions of real tools so you can see what’s happening under the hood.&lt;/p&gt;
&lt;p id="7804"&gt;Once you build something yourself, abstractions start making a lot more sense.&lt;/p&gt;
&lt;p id="1d2b"&gt;Another underrated skill is reading documentation.&lt;/p&gt;
&lt;p id="f572"&gt;Most developers learn primarily through tutorials.&lt;/p&gt;
&lt;p id="cdab"&gt;Tutorials are great for getting started, but documentation is where systems reveal how they actually behave.&lt;/p&gt;
&lt;p id="69c6"&gt;Reading the docs for something like &lt;strong&gt;Node.js&lt;/strong&gt; or &lt;strong&gt;PostgreSQL&lt;/strong&gt; gives you a much clearer picture of how requests, processes, and queries move through the system.&lt;/p&gt;
&lt;p id="00a5"&gt;It’s slower than watching a tutorial.&lt;/p&gt;
&lt;p id="3221"&gt;But the understanding lasts much longer.&lt;/p&gt;
&lt;p id="abab"&gt;And honestly, the fastest teacher in programming hasn’t changed in decades.&lt;/p&gt;
&lt;p id="d28c"&gt;Breaking things.&lt;/p&gt;
&lt;p id="2ab0"&gt;You build something.&lt;/p&gt;
&lt;p id="506b"&gt;It crashes.&lt;/p&gt;
&lt;p id="1694"&gt;You dig through logs, trace the issue, and eventually understand why it happened.&lt;/p&gt;
&lt;p id="7bd5"&gt;That loop is where fundamentals actually stick.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7549"&gt;&lt;em&gt;build. break. debug. repeat.&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="9206"&gt;It’s messy.&lt;/p&gt;
&lt;p id="25bf"&gt;But it’s also how most real engineers learn.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Aw16KiSOF2A6QY9XTHB4Fpw.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b77c"&gt;The future of dev skills&lt;/h2&gt;
&lt;p id="ad3e"&gt;Lately there’s been a lot of discussion about AI replacing developers.&lt;/p&gt;
&lt;p id="4810"&gt;You’ve probably seen the headlines.&lt;/p&gt;
&lt;p id="50eb"&gt;AI writes code now.&lt;br&gt;Developers will disappear.&lt;br&gt;Prompt engineers are the future.&lt;/p&gt;
&lt;p id="2679"&gt;The narrative changes every few months, but something interesting is happening underneath all the noise.&lt;/p&gt;
&lt;p id="a07a"&gt;AI tools are getting very good at generating code.&lt;/p&gt;
&lt;p id="d39f"&gt;Tools like &lt;strong&gt;GitHub Copilot&lt;/strong&gt; and &lt;strong&gt;ChatGPT&lt;/strong&gt; can scaffold APIs, generate functions, and even produce working application structures in seconds.&lt;/p&gt;
&lt;p id="e40d"&gt;That’s impressive.&lt;/p&gt;
&lt;p id="d78a"&gt;But it doesn’t actually remove the need for understanding systems.&lt;/p&gt;
&lt;p id="4d67"&gt;Because the hardest problems in software rarely come from writing code.&lt;/p&gt;
&lt;p id="e858"&gt;They come from understanding how the entire system behaves.&lt;/p&gt;
&lt;p id="b5c4"&gt;Slow database queries.&lt;/p&gt;
&lt;p id="150b"&gt;Networking bottlenecks.&lt;/p&gt;
&lt;p id="03fe"&gt;Caching mistakes.&lt;/p&gt;
&lt;p id="1d78"&gt;Infrastructure misconfigurations.&lt;/p&gt;
&lt;p id="3cd9"&gt;These problems don’t show up as syntax errors.&lt;/p&gt;
&lt;p id="3840"&gt;They appear when real traffic hits a real system.&lt;/p&gt;
&lt;p id="231e"&gt;That’s where fundamentals become valuable again.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ca26"&gt;Understanding networking helps you diagnose latency.&lt;br&gt;Understanding databases helps you spot inefficient queries.&lt;br&gt;Understanding operating systems helps you reason about resource usage.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="2093"&gt;AI can generate code quickly.&lt;/p&gt;
&lt;p id="b109"&gt;But it still relies on humans to understand the architecture around that code.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6a94"&gt;&lt;strong&gt;AI accelerates coding.&lt;br&gt;fundamentals guide engineering.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="af15"&gt;There’s another effect AI will likely have on the ecosystem.&lt;/p&gt;
&lt;p id="19c9"&gt;It will make building tools easier.&lt;/p&gt;
&lt;p id="b51e"&gt;If developers can generate frameworks faster, we’ll probably see more frameworks, more libraries, and more abstraction layers appear every year.&lt;/p&gt;
&lt;p id="cf55"&gt;The ecosystem will move faster.&lt;/p&gt;
&lt;p id="b629"&gt;Not slower.&lt;/p&gt;
&lt;p id="fa58"&gt;And that makes fundamentals even more important.&lt;/p&gt;
&lt;p id="2c5b"&gt;Because when the tool landscape changes rapidly, the developers who adapt best are the ones who understand the layers underneath everything.&lt;/p&gt;
&lt;p id="717c"&gt;The role of developers may shift over time.&lt;/p&gt;
&lt;p id="a3d4"&gt;Less manual boilerplate.&lt;/p&gt;
&lt;p id="d916"&gt;More system design.&lt;/p&gt;
&lt;p id="120c"&gt;More debugging complex production behavior.&lt;/p&gt;
&lt;p id="3a20"&gt;More thinking about architecture.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6e94"&gt;In other words, the valuable skill becomes &lt;strong&gt;system thinking&lt;/strong&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="143b"&gt;Understanding how the pieces fit together because while the tools keep evolving… the underlying systems still follow the same fundamental rules.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AzALXNfBwdN2jl4kZJYy6Tg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="bf69"&gt;Frameworks fade. fundamentals compound.&lt;/h2&gt;
&lt;p id="cadc"&gt;If you stay in this industry long enough, you start noticing a pattern.&lt;/p&gt;
&lt;p id="20d1"&gt;The tools everyone swears by eventually disappear.&lt;/p&gt;
&lt;p id="46ea"&gt;The framework that dominated job listings slowly fades away.&lt;br&gt;The library that powered half the ecosystem stops getting updates.&lt;br&gt;The “future of development” quietly becomes part of tech history.&lt;/p&gt;
&lt;p id="4697"&gt;Yet somehow the same engineers keep showing up across different stacks.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="acc4"&gt;&lt;strong&gt;Different languages.&lt;br&gt;Different frameworks.&lt;br&gt;Different companies.&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="2a4c"&gt;Still productive.&lt;/p&gt;
&lt;p id="faa6"&gt;Still adapting.&lt;/p&gt;
&lt;p id="839f"&gt;The reason isn’t that they memorize every new tool.&lt;/p&gt;
&lt;p id="2788"&gt;It’s that they understand the systems underneath those tools.&lt;/p&gt;
&lt;ul&gt;

&lt;li id="8e97"&gt;Networking.&lt;/li&gt;

&lt;li id="8986"&gt;Databases.&lt;/li&gt;

&lt;li id="eb0c"&gt;Operating systems.&lt;/li&gt;

&lt;/ul&gt;
&lt;blockquote&gt;&lt;p id="14f2"&gt;How requests move through a system.&lt;br&gt;How data flows between components.&lt;br&gt;How resources behave under load.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="f975"&gt;Once you understand those layers, new frameworks stop looking intimidating.&lt;/p&gt;
&lt;p id="1140"&gt;They just look like new interfaces built on familiar ideas.&lt;/p&gt;
&lt;p id="902d"&gt;That’s why some engineers seem to jump between stacks effortlessly.&lt;/p&gt;
&lt;p id="3d0b"&gt;&lt;strong&gt;&lt;em&gt;Frontend one year.&lt;br&gt;Backend the next.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p id="17f2"&gt;Infrastructure after that.&lt;/p&gt;
&lt;p id="3819"&gt;It’s not because they know every tool.&lt;br&gt;It’s because they recognize the patterns underneath the tools.&lt;/p&gt;
&lt;p id="3c64"&gt;And once you start seeing those patterns too, the ecosystem feels much less chaotic.&lt;/p&gt;
&lt;p id="0b89"&gt;The reality is the industry will keep changing.&lt;/p&gt;
&lt;p id="d118"&gt;New frameworks will appear.&lt;br&gt;New languages will gain popularity.&lt;/p&gt;
&lt;p id="4d39"&gt;AI will generate more code than ever before.&lt;/p&gt;
&lt;p id="5195"&gt;But the underlying mechanics of computing evolve much more slowly.&lt;/p&gt;
&lt;p id="c8a4"&gt;Networking still moves packets.&lt;br&gt;Databases still organize data.&lt;br&gt;Operating systems still manage processes and memory.&lt;/p&gt;
&lt;p id="5af6"&gt;Those fundamentals stick around for decades.&lt;/p&gt;
&lt;p id="fc3c"&gt;So learn the tools you need.&lt;/p&gt;
&lt;p id="ac68"&gt;Experiment with new frameworks.&lt;/p&gt;
&lt;p id="ac36"&gt;Build things and ship projects.&lt;/p&gt;
&lt;p id="1a68"&gt;But every once in a while, go one layer deeper.&lt;/p&gt;
&lt;p id="b8cc"&gt;Trace how a request actually travels through your system.&lt;br&gt;Understand why a query becomes slow.&lt;br&gt;Figure out what the operating system is doing behind the scenes.&lt;/p&gt;
&lt;p id="eb43"&gt;Because frameworks come and go.&lt;/p&gt;
&lt;p id="6b56"&gt;But fundamentals compound.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="32fd"&gt;Helpful resources&lt;/h2&gt;
&lt;h3 id="da91"&gt;Networking and HTTP&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="d870"&gt;

&lt;strong&gt;MDN HTTP guide&lt;/strong&gt; &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP&lt;/a&gt;
&lt;/li&gt;

&lt;li id="b4d1"&gt;HTTP caching explained &lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;
&lt;h3 id="dc1a"&gt;The JavaScript event loop&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="9756"&gt;JavaScript event loop guide (MDN) &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop" rel="noopener noreferrer"&gt;https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop&lt;/a&gt;
&lt;/li&gt;

&lt;li id="5170"&gt;

&lt;strong&gt;Node.js documentation&lt;/strong&gt; &lt;a href="https://nodejs.org/en/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://nodejs.org/en/docs" rel="noopener noreferrer"&gt;https://nodejs.org/en/docs&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;
&lt;h3 id="60be"&gt;Databases and SQL fundamentals&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="50f0"&gt;

&lt;strong&gt;PostgreSQL documentation&lt;/strong&gt; &lt;a href="https://www.postgresql.org/docs/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.postgresql.org/docs/" rel="noopener noreferrer"&gt;https://www.postgresql.org/docs/&lt;/a&gt;
&lt;/li&gt;

&lt;li id="f13a"&gt;Interactive SQL lessons &lt;a href="https://sqlbolt.com" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://sqlbolt.com" rel="noopener noreferrer"&gt;https://sqlbolt.com&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>sharepointframework</category>
    </item>
    <item>
      <title>15 skills your Claude agent is embarrassed you haven’t installed yet the ones 6-figure devs actually use</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:44:48 +0000</pubDate>
      <link>https://forem.com/dev_tips/15-skills-your-claude-agent-is-embarrassed-you-havent-installed-yet-the-ones-6-figure-devs-3cmm</link>
      <guid>https://forem.com/dev_tips/15-skills-your-claude-agent-is-embarrassed-you-havent-installed-yet-the-ones-6-figure-devs-3cmm</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h1 id="e3d9"&gt;&lt;/h1&gt;
&lt;p id="c0df"&gt;A raw Claude is a brilliant engineer with no project context. These 15 SKILL.md files fix that and a few of them will genuinely change how you ship.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="50bc"&gt;There’s a moment every developer hits with their AI coding agent. You ask it to build something, it confidently generates code, and the output is… technically correct. Functional. And completely forgettable. Generic UI that looks like every SaaS from 2022. A schema that’ll collapse at scale. No security pass. No diagram in the repo. Just vibes and a green checkmark.&lt;/p&gt;
&lt;p id="744d"&gt;That’s not the agent’s fault. That’s a skills problem.&lt;/p&gt;
&lt;p id="deba"&gt;Something shifted quietly in late 2025. Coding agents stopped being autocomplete on steroids and started becoming actual collaborators building features, running tests, writing docs, executing deploys. But a raw Claude, Cursor, or Gemini CLI without skills is like a senior engineer on day one: sharp as hell, but missing all the project-specific context that makes them dangerous in a good way.&lt;/p&gt;
&lt;p id="7c8a"&gt;SKILL.md files are how you fix this. They’re specialized playbooks instructions, templates, and context that agents can call on for a specific class of task. Install the right ones and your defaults change. You stop getting first drafts. You start getting second drafts that are already worth reviewing.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="304d"&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; There are 15 skills that cover roughly everything your agent gets wrong without guidance design quality, code cleanliness, live web access, data access, security, database architecture, visual docs, video, workspace automation, and structured workflows. This is the list.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AjJNF0SmyWzLugSQmgLyj9Q.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="6017"&gt;Output quality because “it works” isn’t good enough anymore&lt;/h2&gt;
&lt;h3 id="b70a"&gt;1. Frontend design&lt;/h3&gt;
&lt;p id="2a54"&gt;Ask any coding agent to build a landing page without guidance and you’ll get the same output every time. Inter font. Purple gradient. Three feature cards in a grid. A hero section that says “Ship faster with AI.” It’s not wrong it’s just that every other AI-generated product on the internet looks exactly the same.&lt;/p&gt;
&lt;p id="8de6"&gt;Anthropic calls this distributional convergence. Models trained on the statistical center of design decisions reproduce the statistical center. The frontend-design skill breaks that pattern. It gives the agent a design philosophy and system before it touches any code bold aesthetic choices, purposeful typography, animations that feel intentional rather than decorative. Over 277,000 installs as of early 2026. The before/after difference is not subtle.&lt;/p&gt;
&lt;pre&gt;&lt;span id="c5ab"&gt;npx skills add anthropics/claude-code --skill frontend-design&lt;/span&gt;&lt;/pre&gt;
&lt;p id="73c3"&gt;Then just invoke &lt;code&gt;/frontend-design&lt;/code&gt; and describe what you're building. That's it. Your agent stops shipping beige.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="5264"&gt;2. Code reviewer&lt;/h3&gt;
&lt;p id="0108"&gt;Agents write fast. They review poorly. Left to their defaults, most produce code that passes a quick read but quietly accumulates debt duplicated logic, functions doing three jobs, missing error handling on async calls, TypeScript &lt;code&gt;any&lt;/code&gt; types that'll haunt you in six months.&lt;/p&gt;
&lt;p id="0b05"&gt;The official &lt;code&gt;simplify&lt;/code&gt; skill from Anthropic runs a structured review pass over any code the agent writes or modifies before it reaches you. It catches duplicated patterns, extracts reusable utilities, flags performance issues, and fixes them. You receive the second draft, not the first.&lt;/p&gt;
&lt;pre&gt;&lt;span id="35b0"&gt;npx skills add anthropics/claude-code --skill simplify&lt;/span&gt;&lt;/pre&gt;
&lt;p id="0f6d"&gt;Pair it with a review checklist in your &lt;code&gt;CLAUDE.md&lt;/code&gt; and it becomes project-aware it knows your naming conventions, your TypeScript strictness level, your preferred abstraction patterns. The code that comes out the other side looks like a senior dev reviewed it, because something did.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="351f"&gt;3. Doc coauthoring&lt;/h3&gt;
&lt;p id="cc4d"&gt;Documentation is the skill that every developer agrees is important and nobody does consistently. The &lt;code&gt;doc-coauthoring&lt;/code&gt; skill from the Antigravity library changes the default: every implementation the agent ships comes with structured docs function signatures, usage examples, edge cases, and architecture notes generated as part of the workflow, not bolted on afterward.&lt;/p&gt;
&lt;pre&gt;&lt;span id="e788"&gt;npx antigravity-awesome-skills --claude&lt;br&gt;&lt;span&gt;# Then invoke: /doc-coauthoring&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="4c52"&gt;It won’t write your engineering blog post. But it will make sure the &lt;code&gt;README&lt;/code&gt; actually explains what the code does, which is somehow still a controversial ask in 2026.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="fbda"&gt;Real-world automation the agent finally leaves the house&lt;/h2&gt;
&lt;h3 id="1368"&gt;4. Browser use&lt;/h3&gt;
&lt;p id="6ef2"&gt;Coding agents are blind to the live web. They can write a scraper, they can describe what a page looks like from training data, but they cannot &lt;em&gt;interact&lt;/em&gt; with it. If your workflow requires filling a form, verifying that a deployed feature actually works end-to-end, or researching something behind a JavaScript render wall you’ve hit the ceiling. Every time.&lt;/p&gt;
&lt;p id="4907"&gt;Browser use removes that ceiling. It connects your agent to a real headless browser instance. Navigate URLs, click elements, fill forms, extract content, take screenshots, interact with complex UIs all from a natural language prompt.&lt;/p&gt;
&lt;pre&gt;&lt;span id="8959"&gt;npx skills add &lt;a href="https://github.com/browser-use/browser-use" rel="noopener noreferrer"&gt;https://github.com/browser-use/browser-use&lt;/a&gt; --skill browser-use&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7346"&gt;The practical unlock here is massive. “Check that our signup flow works on staging and screenshot any errors” is now a one-liner. “Find the three most recent funding announcements in climate tech and summarize the investors” the agent actually opens pages, reads them, and synthesizes from the live web, not cached training data. That distinction matters more than most people realize.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="b29a"&gt;5. Google Workspace (GWS)&lt;/h3&gt;
&lt;p id="a140"&gt;Google shipped the &lt;code&gt;gws&lt;/code&gt; CLI in early 2026 and it hit 4,900 GitHub stars in three days. That number tells you everything about how badly developers needed this.&lt;/p&gt;
&lt;p id="3000"&gt;&lt;code&gt;gws&lt;/code&gt; dynamically discovers all 50+ Google Workspace APIs through Google's Discovery Service and exposes them through a single unified interface with a built-in MCP server. One command and your agent has full access to Gmail, Drive, Calendar, Sheets, Docs, Chat, and Admin.&lt;/p&gt;
&lt;pre&gt;&lt;span id="fa2c"&gt;npm install -g @googleworkspace/cli&lt;br&gt;gws mcp -s drive,gmail,calendar,sheets&lt;br&gt;npx skills add &lt;a href="https://github.com/googleworkspace/cli" rel="noopener noreferrer"&gt;https://github.com/googleworkspace/cli&lt;/a&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="26ac"&gt;Any workflow that currently involves you copying between Google apps email drafts, calendar events, status updates to Sheets, meeting notes into Docs is now something the agent handles. For teams running on Workspace, this is the skill that closes the gap between “agent that codes” and “agent that operates.”&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Ai4zpjFRnFiNkI3lZgxSsGg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="4e36"&gt;Data access because the real world lives behind paywalls&lt;/h2&gt;
&lt;h3 id="0abc"&gt;6. Valyu&lt;/h3&gt;
&lt;p id="38da"&gt;Coding agents are excellent at working with code. They’re genuinely bad at working with the real world because the real world is locked behind proprietary databases, paywalls, and specialized APIs that general-purpose search can’t touch.&lt;/p&gt;
&lt;p id="ec8d"&gt;Building a financial research tool? You need SEC filings. Building something biomedical? You need PubMed and ChEMBL. Economic dashboard? FRED and BLS. Without those sources, your agent generates plausible-sounding but outdated or quietly fabricated information. Confident hallucinations dressed up as research.&lt;/p&gt;
&lt;p id="24b4"&gt;The &lt;a href="https://github.com/valyuai/skills" rel="noopener ugc nofollow noreferrer"&gt;Valyu skill&lt;/a&gt; connects your agent to 36+ specialized data sources through a single API SEC 10-K filings, PubMed, ChEMBL (2.5M bioactive compounds), ClinicalTrials.gov, FRED economic indicators, patent databases, and quality web search, all in one call.&lt;/p&gt;
&lt;pre&gt;&lt;span id="342d"&gt;npx skills add &lt;a href="https://github.com/valyuai/skills" rel="noopener noreferrer"&gt;https://github.com/valyuai/skills&lt;/a&gt; --skill valyu-best-practices&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7e9b"&gt;&lt;strong&gt;Once installed, targeted searches look like this:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="2119"&gt;&lt;span&gt;from&lt;/span&gt; valyu &lt;span&gt;import&lt;/span&gt; Valyu&lt;br&gt;client = Valyu(api_key=&lt;span&gt;"your-key"&lt;/span&gt;)&lt;br&gt;&lt;br&gt;&lt;span&gt;# Pull from SEC filings specifically&lt;/span&gt;&lt;br&gt;result = client.search(&lt;br&gt;  query=&lt;span&gt;"risk factors in latest 10-K filings for semiconductor companies"&lt;/span&gt;,&lt;br&gt;  search_type=&lt;span&gt;"proprietary"&lt;/span&gt;,&lt;br&gt;  included_sources=[&lt;span&gt;"valyu/valyu-sec-filings"&lt;/span&gt;],&lt;br&gt;  max_num_results=&lt;span&gt;5&lt;/span&gt;&lt;br&gt;)&lt;br&gt;&lt;span&gt;# Cross-source biomedical search&lt;/span&gt;&lt;br&gt;result = client.search(&lt;br&gt;  query=&lt;span&gt;"GLP-1 receptor agonists drug interactions clinical trial outcomes"&lt;/span&gt;,&lt;br&gt;  search_type=&lt;span&gt;"all"&lt;/span&gt;,&lt;br&gt;  included_sources=[&lt;span&gt;"valyu/valyu-pubmed"&lt;/span&gt;, &lt;span&gt;"valyu/valyu-chembl"&lt;/span&gt;],&lt;br&gt;  max_num_results=&lt;span&gt;10&lt;/span&gt;&lt;br&gt;)&lt;/span&gt;&lt;/pre&gt;
&lt;p id="ebc2"&gt;On the FreshQA benchmark 600 time-sensitive queries Valyu scores 79% versus Google’s 39%. On finance-specific queries, 73% versus 55%. The gap between a demo and a tool people actually use is often just access to authoritative, current data. This is that access.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="1a16"&gt;7. Antigravity Awesome Skills&lt;/h3&gt;
&lt;p id="cfcb"&gt;Every agent skill problem you have, someone else has already solved. The solutions are just scattered across GitHub repos, Discord servers, and blog posts you haven’t found yet. You write a &lt;code&gt;SKILL.md&lt;/code&gt; from scratch for PR creation, API design review, security auditing and somewhere out there a battle-tested version of that exact file already exists with 200 iterations of improvement baked in.&lt;/p&gt;
&lt;p id="7ef3"&gt;Antigravity Awesome Skills is the answer to that. A community-maintained library of 1,234+ agent skills compatible with Claude Code, Cursor, Gemini CLI, Codex CLI, and more. 22,000+ GitHub stars. 3,800+ forks. Updated to v7.3.0 as of early 2026.&lt;/p&gt;
&lt;pre&gt;&lt;span id="d572"&gt;&lt;span&gt;# Install everything for Claude Code in one shot&lt;/span&gt;&lt;br&gt;npx antigravity-awesome-skills --claude&lt;br&gt;&lt;br&gt;&lt;span&gt;# Or target your tool&lt;/span&gt;&lt;br&gt;npx antigravity-awesome-skills --cursor&lt;br&gt;npx antigravity-awesome-skills --gemini&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7dac"&gt;&lt;strong&gt;The skills worth knowing immediately after install:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="4e12"&gt;/brainstorming    &lt;span&gt;# structured planning before you write a single line&lt;/span&gt;&lt;br&gt;/architecture     &lt;span&gt;# system design and component structure&lt;/span&gt;&lt;br&gt;/security-auditor &lt;span&gt;# adversarial code review&lt;/span&gt;&lt;br&gt;/api-design-principles &lt;span&gt;# REST shape, consistency, versioning&lt;/span&gt;&lt;br&gt;/create-pr        &lt;span&gt;# clean commits, clean PRs, no nagging required&lt;/span&gt;&lt;br&gt;/doc-coauthoring  &lt;span&gt;# structured docs as part of the workflow&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="5a69"&gt;Rather than drowning in 1,234 options, Antigravity ships role-based bundles. The &lt;strong&gt;Essentials&lt;/strong&gt; bundle &lt;code&gt;/brainstorming&lt;/code&gt;, &lt;code&gt;/architecture&lt;/code&gt;, &lt;code&gt;/debugging-strategies&lt;/code&gt;, &lt;code&gt;/doc-coauthoring&lt;/code&gt;, &lt;code&gt;/create-pr&lt;/code&gt; covers roughly 80% of what most developers need daily. Install that, then add specialized skills as projects demand them.&lt;/p&gt;
&lt;p id="b214"&gt;The real value isn’t any individual skill. It’s removing the “I should build a skill for that” backlog permanently.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="382" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AzVrq-FyCOj7LEuOUePSGFw.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="52ed"&gt;Infrastructure and security the stuff that bites you in production&lt;/h2&gt;
&lt;h3 id="3eb8"&gt;8. PlanetScale database skills&lt;/h3&gt;
&lt;p id="ac0d"&gt;Database work is where agents make their worst mistakes. Not the obvious ones the quiet ones. A schema design that works fine at 100 rows and quietly dies at 100,000. A query missing an index that nobody catches until the first traffic spike. Foreign key conventions that break horizontal scaling six months later when it’s genuinely painful to fix.&lt;/p&gt;
&lt;p id="736a"&gt;Agents treat databases like any other code. They write something that runs and move on. The PlanetScale skill changes that default by giving your agent deep context about schema design, query performance, branching workflows, and the specific conventions that keep MySQL-compatible databases maintainable at scale.&lt;/p&gt;
&lt;pre&gt;&lt;span id="15ce"&gt;&lt;span&gt;# Install the PlanetScale CLI&lt;/span&gt;&lt;br&gt;brew install planetscale/tap/pscale&lt;br&gt;&lt;br&gt;&lt;span&gt;# Authenticate&lt;/span&gt;&lt;br&gt;pscale auth login&lt;br&gt;&lt;span&gt;# Install the skill&lt;/span&gt;&lt;br&gt;npx skills add planetscale/agent-skill&lt;/span&gt;&lt;/pre&gt;
&lt;p id="7eec"&gt;The branching model is the real unlock here. PlanetScale maps database changes to git you create a branch per feature, review it like a PR, merge when ready, never touch production schema directly. With the skill installed, your agent handles this entire workflow automatically:&lt;/p&gt;
&lt;pre&gt;&lt;span id="af9b"&gt;&lt;span&gt;# Agent creates a branch, designs the schema, verifies indexes, opens a deploy request&lt;/span&gt;&lt;br&gt;pscale branch create mydb add-user-prefs&lt;br&gt;pscale deploy-request create mydb add-user-prefs&lt;/span&gt;&lt;/pre&gt;
&lt;p id="6fa5"&gt;&lt;strong&gt;Here’s the difference the skill makes on query generation:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="1726"&gt;&lt;span&gt;-- Agent without skill writes this&lt;/span&gt;&lt;br&gt;&lt;span&gt;SELECT&lt;/span&gt; &lt;span&gt;*&lt;/span&gt; &lt;span&gt;FROM&lt;/span&gt; orders &lt;span&gt;WHERE&lt;/span&gt; status &lt;span&gt;=&lt;/span&gt; &lt;span&gt;'pending'&lt;/span&gt; &lt;span&gt;AND&lt;/span&gt; created_at &lt;span&gt;&amp;gt;&lt;/span&gt; &lt;span&gt;'2026-01-01'&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span&gt;-- Agent with PlanetScale skill writes this and explains why&lt;/span&gt;&lt;br&gt;&lt;span&gt;SELECT&lt;/span&gt; id, user_id, total, created_at&lt;br&gt;&lt;span&gt;FROM&lt;/span&gt; orders&lt;br&gt;&lt;span&gt;WHERE&lt;/span&gt; status &lt;span&gt;=&lt;/span&gt; &lt;span&gt;'pending'&lt;/span&gt;&lt;br&gt;&lt;span&gt;AND&lt;/span&gt; created_at &lt;span&gt;&amp;gt;&lt;/span&gt; &lt;span&gt;'2026-01-01'&lt;/span&gt;;&lt;br&gt;&lt;span&gt;-- Added: INDEX idx_status_created (status, created_at)&lt;/span&gt;&lt;br&gt;&lt;span&gt;-- Avoided SELECT * - only fetch columns needed&lt;/span&gt;&lt;br&gt;&lt;span&gt;-- Estimated query time at 10M rows: ~2ms with index vs ~8s without&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="2c77"&gt;That annotation at the bottom is the skill talking. Database decisions made on day one are the hardest to undo on day 365. An agent that knows this by default is worth a lot.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="4958"&gt;9. Shannon autonomous AI pentester&lt;/h3&gt;
&lt;p id="64e1"&gt;Security testing is the step most teams skip not because they don’t care, but because it’s expensive, slow, and requires specialized adversarial thinking that doesn’t come naturally when you’re in feature-shipping mode. A traditional pentest costs thousands and returns a PDF two weeks later. Manual code review catches some vulnerabilities and misses others depending on whoever happened to review it that day.&lt;/p&gt;
&lt;p id="b902"&gt;&lt;a href="https://github.com/KeygraphHQ/shannon" rel="noopener ugc nofollow noreferrer"&gt;Shannon&lt;/a&gt; is an autonomous pen testing agent that runs against your local or staging environment, executes real exploits, and reports only the vulnerabilities it can actually prove. No false positives. No scanner noise. Either it exploits the vulnerability or it doesn’t report it.&lt;/p&gt;
&lt;pre&gt;&lt;span id="5eca"&gt;npx skills add unicodeveloper/shannon&lt;/span&gt;&lt;/pre&gt;
&lt;p id="cc7e"&gt;&lt;strong&gt;Running it is straightforward:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="9afb"&gt;&lt;span&gt;# Full pentest against a local app&lt;/span&gt;&lt;br&gt;/shannon &lt;a href="http://localhost:3000" rel="noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; myapp&lt;br&gt;&lt;br&gt;&lt;span&gt;# Target specific vulnerability categories&lt;/span&gt;&lt;br&gt;/shannon --scope=xss,injection &lt;a href="http://localhost:8080" rel="noopener noreferrer"&gt;http://localhost:8080&lt;/a&gt; frontend&lt;br&gt;&lt;span&gt;# Check status mid-run&lt;/span&gt;&lt;br&gt;/shannon status&lt;br&gt;&lt;span&gt;# Pull the report&lt;/span&gt;&lt;br&gt;/shannon results&lt;/span&gt;&lt;/pre&gt;
&lt;p id="339e"&gt;Shannon covers 50+ vulnerability types across 5 OWASP categories SQL injection, XSS (reflected, stored, DOM-based), SSRF, broken authentication, IDOR, privilege escalation, path traversal. It runs everything inside Docker, enforces an authorization gate at every invocation, and costs roughly $50 per full pentest using Claude Sonnet.&lt;/p&gt;
&lt;p id="7d5c"&gt;The benchmark that matters: 96.15% exploit success rate on the XBOW security benchmark. 100 out of 104 confirmed exploits.&lt;/p&gt;
&lt;p id="fd69"&gt;Most codebases have vulnerabilities that survive code review because reviewers aren’t thinking adversarially while reading feature code. Shannon is the adversarial pass. Run it against every staging deployment and stop shipping confirmed broken security to production.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7fd0"&gt;&lt;strong&gt;Important:&lt;/strong&gt; Shannon executes real attacks. Only run it against systems you own or have explicit written authorization to test.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="426" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AtxwKJztarGWGv2bnSR0BDg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a328"&gt;Visual communication diagrams and videos your agent actually generates&lt;/h2&gt;
&lt;h3 id="9635"&gt;10. Excalidraw diagram generator&lt;/h3&gt;
&lt;p id="7191"&gt;Architecture decisions, system designs, data flow explanations these live in Slack threads and whiteboard sessions that nobody records. Code comments describe what something does. Diagrams show why it’s structured that way. Most agents can describe an architecture in text. Almost none generate a diagram worth sharing without you redrawing it yourself afterward.&lt;/p&gt;
&lt;p id="def4"&gt;The &lt;a href="https://github.com/coleam00/excalidraw-diagram-skill" rel="noopener ugc nofollow noreferrer"&gt;Excalidraw diagram skill&lt;/a&gt; changes that. It generates production-quality Excalidraw diagrams from natural language, but what separates it from simpler tools is the design philosophy baked in diagrams that argue, not just display. Fan-out structures for one-to-many relationships. Timeline layouts for sequential flows. Visual structure that maps to conceptual structure instead of defaulting to uniform card grids.&lt;/p&gt;
&lt;pre&gt;&lt;span id="39aa"&gt;npx skills add &lt;a href="https://github.com/coleam00/excalidraw-diagram-skill" rel="noopener noreferrer"&gt;https://github.com/coleam00/excalidraw-diagram-skill&lt;/a&gt; --skill excalidraw-diagram&lt;/span&gt;&lt;/pre&gt;
&lt;p id="24be"&gt;&lt;strong&gt;Then describe what you need:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="2c9b"&gt;/excalidraw-diagram Create a diagram showing how a request flows through&lt;br&gt;our API gateway, auth middleware, and downstream services&lt;br&gt;/excalidraw-diagram Generate an architecture diagram &lt;span&gt;for&lt;/span&gt; a multi-tenant SaaS&lt;br&gt;with separate database schemas per tenant and a shared analytics layer&lt;br&gt;/excalidraw-diagram Draw a sequence diagram &lt;span&gt;for&lt;/span&gt; our OAuth2 PKCE flow&lt;br&gt;including the browser, authorization server, and resource server&lt;/span&gt;&lt;/pre&gt;
&lt;p id="2684"&gt;The self-validation loop is what makes this actually usable. The skill generates the Excalidraw JSON, renders it to PNG via Playwright, reviews its own output for overlapping text and misaligned arrows, fixes the problems, then delivers the final file. You get a diagram you can publish, not a first draft you’d be embarrassed to share in a PR.&lt;/p&gt;
&lt;p id="260f"&gt;Brand colors live in &lt;code&gt;references/color-palette.md&lt;/code&gt; edit once, every diagram follows your palette automatically.&lt;/p&gt;
&lt;p id="7824"&gt;Diagrams are the artifact that outlives the conversation that created them. A good architecture diagram in the repo communicates decisions to engineers joining six months later, explains the system to stakeholders who won’t read the code, and forces you to think through edge cases that prose descriptions quietly paper over. An agent that generates these by default closes the documentation gap that every fast-moving team silently carries.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="2a5f"&gt;11. Remotion&lt;/h2&gt;
&lt;p id="4d1c"&gt;Videos communicate things documentation cannot. But video production has always meant a completely different workflow different tools, different timelines, different people. Most developers ship features without demos because the cost-to-value tradeoff never made sense for a single release.&lt;/p&gt;
&lt;p id="7435"&gt;&lt;a href="https://www.remotion.dev/" rel="noopener ugc nofollow noreferrer"&gt;Remotion&lt;/a&gt; removes that excuse entirely. It’s a React framework for creating videos programmatically instead of a timeline editor, you write components. Animation is just state changing over time. The Remotion agent skill translates natural language into working Remotion components.&lt;/p&gt;
&lt;pre&gt;&lt;span id="a2f5"&gt;npx skills add remotion/agent-skills&lt;/span&gt;&lt;/pre&gt;
&lt;p id="abcf"&gt;&lt;strong&gt;The workflow is exactly what you’d want:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="8d08"&gt;&lt;span&gt;/&lt;/span&gt;remotion &lt;span&gt;Create&lt;/span&gt; a &lt;span&gt;30&lt;/span&gt;&lt;span&gt;-&lt;/span&gt;&lt;span&gt;second&lt;/span&gt; product demo showing our API dashboard&lt;br&gt;&lt;span&gt;with&lt;/span&gt; animated charts &lt;span&gt;and&lt;/span&gt; smooth transitions&lt;/span&gt;&lt;/pre&gt;
&lt;p id="57c8"&gt;&lt;strong&gt;The agent generates export-ready Remotion code:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="1e0b"&gt;&lt;span&gt;import&lt;/span&gt; { &lt;span&gt;AbsoluteFill&lt;/span&gt;, useCurrentFrame, interpolate } &lt;span&gt;from&lt;/span&gt; &lt;span&gt;"remotion"&lt;/span&gt;;&lt;br&gt;&lt;br&gt;&lt;span&gt;export&lt;/span&gt; &lt;span&gt;const&lt;/span&gt; &lt;span&gt;ApiDemo&lt;/span&gt; = () =&amp;gt; {&lt;br&gt;  &lt;span&gt;const&lt;/span&gt; frame = &lt;span&gt;useCurrentFrame&lt;/span&gt;();&lt;br&gt;  &lt;span&gt;const&lt;/span&gt; opacity = &lt;span&gt;interpolate&lt;/span&gt;(frame, [&lt;span&gt;0&lt;/span&gt;, &lt;span&gt;30&lt;/span&gt;], [&lt;span&gt;0&lt;/span&gt;, &lt;span&gt;1&lt;/span&gt;]);&lt;br&gt;  &lt;span&gt;return&lt;/span&gt; (&lt;br&gt;    &amp;lt;AbsoluteFill style={{ backgroundColor: "#0a0a0a", opacity }}&amp;gt;&lt;br&gt;      &amp;lt;DashboardAnimation frame={frame} /&amp;gt;&lt;br&gt;    &amp;lt;/AbsoluteFill&amp;gt;&lt;br&gt;  );&lt;br&gt;};&lt;/span&gt;&lt;/pre&gt;
&lt;p id="2477"&gt;Preview in Remotion Studio, render to MP4, done. Product demos, release announcements, animated README headers, explainer videos any developer is now capable of video production without leaving their editor or learning a new tool stack.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="391" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2Ap3oW5_7hPEYxyDB3AlIYLg.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="b759"&gt;Workflow and architecture the invisible scaffolding that makes everything else work&lt;/h2&gt;
&lt;h3 id="08cf"&gt;12. CLAUDE.md the agent’s project bible&lt;/h3&gt;
&lt;p id="a435"&gt;This one isn’t a slash command you invoke. It’s a file you create once and your agent reads on every session. &lt;code&gt;CLAUDE.md&lt;/code&gt; is how you give your agent persistent project context the stuff a new engineer would learn in their first two weeks that nobody ever writes down anywhere.&lt;/p&gt;
&lt;pre&gt;&lt;span id="f668"&gt;&lt;span&gt;## Project context&lt;/span&gt;&lt;br&gt;This is a multi-tenant SaaS. Every database query must scope by tenant&lt;span&gt;_id.&lt;br&gt;Never use SELECT *. All async operations need error handling.&lt;br&gt;## Code review standards&lt;br&gt;After any implementation, check for:&lt;br&gt;- Functions longer than 30 lines (probably doing too much)&lt;br&gt;- Logic duplicated more than twice (extract to utility)&lt;br&gt;- Any &lt;code&gt;any&lt;/code&gt; type in TypeScript (replace with real types)&lt;br&gt;- Missing error handling on async operations&lt;br&gt;## Workflow&lt;br&gt;Run /simplify before presenting code.&lt;br&gt;Run /create-pr when work is ready for review.&lt;br&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="1eb3"&gt;Without this file, you repeat context on every session. With it, your agent arrives already knowing your conventions, your constraints, and your standards. It’s the single highest-leverage thing you can add to a project that takes under ten minutes to set up.&lt;/p&gt;
&lt;p id="cf65"&gt;Full documentation at &lt;a href="https://docs.anthropic.com/en/docs/claude-code/memory" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;docs.anthropic.com&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="8b61"&gt;13. Create-PR&lt;/h3&gt;
&lt;p id="f180"&gt;Clean commits are a courtesy to the future version of you who has to debug something at midnight. Most developers know this. Most agents don’t without guidance they ship everything in one blob commit with a message like “updated files.”&lt;/p&gt;
&lt;p id="a4b5"&gt;The &lt;code&gt;create-pr&lt;/code&gt; skill from the Antigravity library fixes this. It packages completed work into structured pull requests automatically logical commit grouping, descriptive messages, PR description with context, linked issues where relevant.&lt;/p&gt;
&lt;pre&gt;&lt;span id="e2f3"&gt;&lt;span&gt;# Already installed if you ran:&lt;/span&gt;&lt;br&gt;npx antigravity-awesome-skills --claude&lt;br&gt;&lt;br&gt;&lt;span&gt;# Invoke after completing a feature&lt;/span&gt;&lt;br&gt;/create-pr&lt;/span&gt;&lt;/pre&gt;
&lt;p id="6d1c"&gt;Your agent goes from dumping code into a branch to opening a PR a senior dev would actually want to review. Small change, surprisingly large quality-of-life improvement.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AzxuX-m02TmroupMgMW1BZA.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="99a0"&gt;14. Architecture&lt;/h3&gt;
&lt;p id="e67d"&gt;The most expensive mistakes in software happen before the first line of code. A wrong data model. A service boundary that makes sense today and creates six months of pain when requirements shift. An API shape nobody can extend without breaking existing consumers.&lt;/p&gt;
&lt;p id="4e25"&gt;The &lt;code&gt;/architecture&lt;/code&gt; skill from the Antigravity library runs structured system design before implementation begins. It thinks through component boundaries, data flow, scalability constraints, and integration points and documents the decisions so your future self knows why things are shaped the way they are.&lt;/p&gt;
&lt;pre&gt;&lt;span id="0780"&gt;/architecture Design the data model &lt;span&gt;for&lt;/span&gt; a multi-tenant SaaS&lt;br&gt;with per-tenant schema isolation and shared analytics&lt;br&gt;&lt;br&gt;/architecture Plan the service boundaries &lt;span&gt;for&lt;/span&gt; an e-commerce backend&lt;br&gt;handling orders, inventory, payments, and notifications&lt;/span&gt;&lt;/pre&gt;
&lt;p id="e7bf"&gt;I used to skip this step because it felt slow. Then I spent three weeks refactoring a data model that was obvious in hindsight and painful in practice. The skill takes five minutes. The refactor took three weeks. The math is pretty clear.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="ca19"&gt;15. Debugging strategies&lt;/h3&gt;
&lt;p id="295f"&gt;Every developer has been there. A bug that makes no sense. You’ve read the code four times. You’ve added logs. You’ve stared at the stack trace until the letters stopped meaning anything. You rubber duck it to a colleague and halfway through your explanation you hear yourself say the answer out loud.&lt;/p&gt;
&lt;p id="bec1"&gt;The &lt;code&gt;/debugging-strategies&lt;/code&gt; skill is the rubber duck that actually bites back. It runs a systematic troubleshooting playbook hypothesis generation, isolation steps, binary search through the call stack, reproduction case construction instead of just staring at the error and suggesting you restart the server.&lt;/p&gt;
&lt;pre&gt;&lt;span id="7e86"&gt;/debugging-strategies This &lt;span&gt;function&lt;/span&gt; returns undefined intermittently&lt;br&gt;but only &lt;span&gt;in&lt;/span&gt; production, never locally. Here&lt;span&gt;'s the stack trace: [paste]&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="8117"&gt;What comes back isn’t a guess. It’s a structured investigation likely causes ranked by probability, specific tests to isolate each one, and a clear path to a reproduction case. The agent that spotted an N+1 query I’d been living with for two weeks didn’t do it through magic. It did it because it was actually running the playbook.&lt;/p&gt;
&lt;p id="3b4c"&gt;These four skills are the least glamorous on the list and probably the ones that compound the most over time. Frontend design is visible immediately. A well-structured &lt;code&gt;CLAUDE.md&lt;/code&gt;, clean PRs, intentional architecture decisions, and systematic debugging that's the difference between a codebase that's still maintainable in a year and one that's a cautionary tale in a team retrospective.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="9328"&gt;Which skill changed how you work? Drop it in the comments genuinely curious what the community has found that isn’t on this list yet.&lt;/p&gt;&lt;/blockquote&gt;
&lt;h2 id="0a04"&gt;Helpful resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="c50a"&gt;

&lt;a href="https://docs.anthropic.com/en/docs/claude-code/skills" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Claude Code skills documentation&lt;/strong&gt;&lt;/a&gt; official Anthropic docs&lt;/li&gt;

&lt;li id="1ce5"&gt;

&lt;a href="https://skills.sh" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;skills.sh&lt;/strong&gt;&lt;/a&gt; skill discovery and registry&lt;/li&gt;

&lt;li id="3aaf"&gt;

&lt;a href="https://www.aitmpl.com/skills" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;aitmpl.com/skills&lt;/strong&gt;&lt;/a&gt; curated skill browsing&lt;/li&gt;

&lt;li id="0db3"&gt;

&lt;a href="https://github.com/browser-use/browser-use" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;browser-use GitHub&lt;/strong&gt;&lt;/a&gt; headless browser agent skill&lt;/li&gt;

&lt;li id="2786"&gt;

&lt;a href="https://github.com/valyuai/skills" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Valyu skills&lt;/strong&gt;&lt;/a&gt; 36+ proprietary data sources&lt;/li&gt;

&lt;li id="6006"&gt;

&lt;a href="https://github.com/KeygraphHQ/shannon" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;KeygraphHQ/Shannon&lt;/strong&gt;&lt;/a&gt; autonomous pentesting agent&lt;/li&gt;

&lt;li id="2cea"&gt;

&lt;a href="https://github.com/coleam00/excalidraw-diagram-skill" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;coleam00/excalidraw-diagram-skill&lt;/strong&gt;&lt;/a&gt; self-validating diagram generation&lt;/li&gt;

&lt;li id="52fd"&gt;

&lt;a href="https://www.remotion.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Remotion&lt;/strong&gt;&lt;/a&gt; React-based programmatic video&lt;/li&gt;

&lt;li id="5c27"&gt;

&lt;a href="https://github.com/planetscale/agent-skill" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;PlanetScale agent skill&lt;/strong&gt;&lt;/a&gt; schema branching and query optimization&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>claude</category>
    </item>
    <item>
      <title>Open Claw might be the scariest AI assistant idea yet</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:41:50 +0000</pubDate>
      <link>https://forem.com/dev_tips/open-claw-might-be-the-scariest-ai-assistant-idea-yet-3fej</link>
      <guid>https://forem.com/dev_tips/open-claw-might-be-the-scariest-ai-assistant-idea-yet-3fej</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="8e4f"&gt;When an AI can watch your screen, click your buttons, and automate your work… the real question isn’t “can it help?” it’s “what else can it see?”&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="ba29"&gt;For years, AI assistants lived safely inside chat windows. They answered questions, wrote code, and occasionally hallucinated their way into a broken function. Annoying sometimes, but harmless.&lt;/p&gt;
&lt;p id="4638"&gt;Now the next generation of AI tools wants something different: &lt;strong&gt;control of your computer&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="1d5f"&gt;Projects like &lt;strong&gt;Open Claw&lt;/strong&gt; explore AI assistants that can watch your screen, understand the interface, and operate software the same way you do moving the mouse, clicking buttons, navigating dashboards. The idea recently surfaced in a Northeastern University report and immediately sparked curiosity across developer communities.&lt;/p&gt;
&lt;p id="eb7a"&gt;Because on paper, it’s the automation dream developers have chased for years. If an AI can see your screen, it can theoretically automate almost anything even the weird legacy tools that never had APIs.&lt;/p&gt;
&lt;p id="a29e"&gt;But that same realization leads to the obvious follow-up question.&lt;/p&gt;
&lt;p id="30e6"&gt;&lt;em&gt;If the assistant can see your screen… it can see &lt;/em&gt;&lt;strong&gt;&lt;em&gt;everything on it&lt;/em&gt;&lt;/strong&gt;&lt;em&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7c9e"&gt;&lt;strong&gt;Passwords.&lt;br&gt;Private dashboards.&lt;br&gt;Slack conversations.&lt;br&gt;The twenty tabs open for &lt;em&gt;“research.”&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="8312"&gt;Suddenly the helpful AI assistant feels a lot like a &lt;strong&gt;security camera pointed at your monitor&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="0be6"&gt;And that’s the real tension behind tools like Open Claw. The technology promises incredibly powerful automation but it also forces developers to confront a new question.&lt;/p&gt;
&lt;p id="4b83"&gt;How much access should an AI assistant actually have?&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="5d18"&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;p id="32a9"&gt;AI assistants are evolving from chatbots into &lt;strong&gt;computer-using agents&lt;/strong&gt; that can watch screens and interact with software directly.&lt;/p&gt;

&lt;p id="1e5e"&gt;Systems like Open Claw explore this approach to automate tasks across any application.&lt;/p&gt;

&lt;p id="467f"&gt;The upside is obvious: automation everywhere.&lt;/p&gt;

&lt;p id="7e02"&gt;The downside is harder to ignore: if an AI can see your screen, it might also see &lt;strong&gt;everything else on it&lt;/strong&gt;.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="abf8"&gt;What open claw actually does (and why developers got curious)&lt;/h2&gt;
&lt;p id="0dcf"&gt;To understand why Open Claw caused such a strong reaction, you first have to understand the core idea behind it.&lt;/p&gt;
&lt;p id="ae5d"&gt;Most AI assistants today are basically &lt;strong&gt;smart chat interfaces&lt;/strong&gt;. You ask something, the model responds. Maybe it writes code, maybe it summarizes a document, maybe it explains why your SQL query is returning nonsense.&lt;/p&gt;
&lt;p id="10c9"&gt;But it doesn’t actually &lt;em&gt;use&lt;/em&gt; your computer.&lt;/p&gt;
&lt;p id="227b"&gt;Open Claw flips that model.&lt;/p&gt;
&lt;p id="ca7d"&gt;Instead of interacting through APIs or plugins, the assistant simply &lt;strong&gt;observes what’s happening on your screen&lt;/strong&gt; and learns how to operate the interface. It sees windows, buttons, menus, and text then decides what actions to take based on that visual context.&lt;/p&gt;
&lt;p id="ee1d"&gt;In simple terms, the AI is watching the screen the same way you would.&lt;/p&gt;
&lt;p id="221b"&gt;That might sound strange at first, but from a technical perspective it’s actually very logical. Humans don’t need APIs to use software. We just look at the interface and interact with it. A button says “Export,” so we click it. A form appears, so we fill it out.&lt;/p&gt;
&lt;p id="fb76"&gt;The whole idea behind systems like Open Claw is teaching AI to do the same thing.&lt;/p&gt;
&lt;p id="45d7"&gt;And if that works reliably, it unlocks something developers have wanted for years: &lt;strong&gt;automation that works across any application&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="2b9e"&gt;Because here’s the uncomfortable truth about automation tools they usually depend on APIs, and APIs are often incomplete or missing entirely. Anyone who has tried to automate enterprise software knows the pain. You spend hours digging through documentation only to discover the one action you actually need isn’t exposed anywhere.&lt;/p&gt;
&lt;p id="499b"&gt;So developers improvise.&lt;/p&gt;
&lt;p id="f843"&gt;For years the workaround has been UI automation. Tools like &lt;a href="https://www.selenium.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Selenium&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://playwright.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Playwright&lt;/strong&gt;&lt;/a&gt; simulate user interactions by clicking elements on a page. They’re incredibly useful, but they’re also fragile. Change the layout of a page and suddenly your script can’t find the button anymore.&lt;/p&gt;
&lt;p id="32f7"&gt;It’s like building a robot that works perfectly until someone moves the furniture.&lt;/p&gt;
&lt;p id="7c1b"&gt;Vision-based AI assistants try to solve that problem. Instead of relying on fragile selectors or hardcoded paths, the AI simply &lt;strong&gt;looks at the interface and understands what it’s seeing&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="ade6"&gt;That means the assistant could theoretically open a dashboard, download a report, move files between applications, or navigate internal tools even if those tools were never designed to be automated.&lt;/p&gt;
&lt;p id="e888"&gt;For developers, that idea is pretty appealing.&lt;/p&gt;
&lt;p id="e0cc"&gt;&lt;strong&gt;Imagine telling an assistant something like:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="4f47"&gt;“Open the analytics dashboard, export the CSV, and send it to Slack.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="c329"&gt;If the AI understands the interface, it could complete the task the same way a human would.&lt;/p&gt;
&lt;p id="1a6e"&gt;No API integration required.&lt;/p&gt;
&lt;p id="8da5"&gt;That’s why some people describe this kind of system as an &lt;strong&gt;AI intern for your computer&lt;/strong&gt;. It watches what you do, learns how the tools work, and then performs the same steps on its own.&lt;/p&gt;
&lt;p id="3174"&gt;And when you think about it like that, the excitement around tools like Open Claw starts to make sense. The concept isn’t just about chatbots anymore. It’s about assistants that can operate the entire digital environment we work inside every day.&lt;/p&gt;
&lt;p id="7d7c"&gt;But there’s a catch hiding inside that capability.&lt;/p&gt;
&lt;p id="bf47"&gt;Because the same ability that lets the AI see the interface also means it can see &lt;strong&gt;everything else on the screen&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="04ab"&gt;Which is exactly why the conversation around Open Claw quickly shifted from curiosity to something a little more cautious.&lt;/p&gt;
&lt;p id="f1d2"&gt;Once an AI assistant can watch your screen, the question isn’t just what it can automate.&lt;/p&gt;
&lt;p id="fb82"&gt;It’s what it might accidentally collect along the way.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="3017"&gt;What open claw actually does (and why developers got curious)&lt;/h2&gt;
&lt;p id="2d62"&gt;To understand why Open Claw triggered such a strong reaction, you first have to understand the core idea behind it.&lt;/p&gt;
&lt;p id="e206"&gt;Most AI assistants today are basically &lt;strong&gt;smart chat interfaces&lt;/strong&gt;. You ask a question, the model answers. Maybe it writes a function, maybe it explains a stack trace, maybe it summarizes a document you didn’t want to read anyway.&lt;/p&gt;
&lt;p id="b6ed"&gt;But it doesn’t actually &lt;em&gt;use&lt;/em&gt; your computer.&lt;/p&gt;
&lt;p id="104b"&gt;Open Claw explores something different.&lt;/p&gt;
&lt;p id="03e6"&gt;Instead of interacting with software through APIs or plugins, the assistant simply &lt;strong&gt;observes what’s happening on your screen&lt;/strong&gt; and learns how to operate the interface. It sees buttons, menus, text fields, and windows then decides what action to take based on what it recognizes.&lt;/p&gt;
&lt;p id="203d"&gt;In other words, the AI interacts with software the same way a human does.&lt;/p&gt;
&lt;p id="b203"&gt;It looks.&lt;br&gt;It understands.&lt;br&gt;It clicks.&lt;/p&gt;
&lt;p id="2b2c"&gt;At first that sounds almost too simple, but from an engineering perspective it solves a long-standing problem: &lt;strong&gt;software automation usually depends on APIs, and APIs are often incomplete&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="644f"&gt;Every developer has hit that wall at some point.&lt;/p&gt;
&lt;p id="f4ea"&gt;You want to automate something simple export a report, trigger a workflow, scrape some data and the platform either has no API or exposes only half the functionality. The documentation sends you in circles, and eventually you realize the only way to automate the task is by interacting with the interface itself.&lt;/p&gt;
&lt;p id="581e"&gt;So developers improvise.&lt;/p&gt;
&lt;p id="d3ed"&gt;Tools like &lt;a href="https://www.selenium.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Selenium&lt;/strong&gt;&lt;/a&gt; and &lt;a href="https://playwright.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Playwright&lt;/strong&gt;&lt;/a&gt; have existed for years precisely for this reason. They simulate user behavior by clicking elements on a page, filling out forms, and navigating through interfaces.&lt;/p&gt;
&lt;p id="76ed"&gt;They work surprisingly well.&lt;/p&gt;
&lt;p id="9e29"&gt;Until the UI changes.&lt;/p&gt;
&lt;p id="624b"&gt;Anyone who has maintained automation scripts knows this pain. A designer updates the layout, a class name changes, or a button moves slightly and suddenly the automation breaks. What looked like a reliable workflow turns into another debugging task.&lt;/p&gt;
&lt;p id="464c"&gt;Vision-based AI assistants try to remove that fragility.&lt;/p&gt;
&lt;p id="f63d"&gt;Instead of relying on brittle selectors or hardcoded element paths, the AI simply &lt;strong&gt;looks at the interface and interprets what it sees&lt;/strong&gt;. If the layout changes, the assistant can still recognize the same button or menu because it understands the visual context.&lt;/p&gt;
&lt;p id="e434"&gt;That means the assistant could theoretically open dashboards, download files, navigate internal tools, or move data between applications even if those systems were never designed for automation.&lt;/p&gt;
&lt;p id="bcf4"&gt;For developers, that’s a pretty compelling idea.&lt;/p&gt;
&lt;p id="2412"&gt;You could imagine telling the assistant something simple: open the analytics dashboard, export the CSV, and drop it into the team Slack channel. If the AI understands the interface, it could perform those steps the same way a human would.&lt;/p&gt;
&lt;p id="688d"&gt;&lt;strong&gt;No integrations.&lt;br&gt;No brittle scripts.&lt;br&gt;No API gymnastics.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="bfbe"&gt;Which is why some engineers describe systems like this as &lt;strong&gt;an AI intern sitting next to your computer&lt;/strong&gt;. It watches how software works, learns the workflow, and eventually starts doing the repetitive parts on its own.&lt;/p&gt;
&lt;p id="0961"&gt;And that’s where the excitement around tools like Open Claw comes from.&lt;/p&gt;
&lt;p id="ac3a"&gt;Because if an AI can operate software the same way humans do, automation suddenly becomes possible &lt;strong&gt;everywhere&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="5bf4"&gt;But the same feature that makes this technology powerful also introduces the question developers immediately started asking.&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="164e"&gt;If the AI can see your screen…&lt;/p&gt;

&lt;p id="9214"&gt;what else can it see?&lt;/p&gt;


&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="446" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ASeBEGC2TPLUtXrU2eMkH_Q.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="43f3"&gt;The privacy nightmare scenario everyone immediately imagined&lt;/h2&gt;
&lt;p id="a314"&gt;This is usually the moment where the excitement fades a little and the security instincts kick in.&lt;/p&gt;
&lt;p id="6646"&gt;Because once people understood what systems like Open Claw were doing, the same thought appeared across developer forums almost instantly.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7090"&gt;If the AI can see your screen… it can see &lt;strong&gt;everything on it&lt;/strong&gt;.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="55e4"&gt;Not just the interface you want automated. Not just the dashboard you’re asking it to export from. The assistant is observing the same visual environment you are, which means anything visible on that screen is technically within reach.&lt;/p&gt;
&lt;p id="7320"&gt;That includes things you probably never intended to share with an AI system.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ee48"&gt;Password managers popping open.&lt;br&gt;Internal company dashboards.&lt;br&gt;Private Slack conversations.&lt;br&gt;Customer data in admin panels.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="d933"&gt;Even harmless things suddenly feel weird when you imagine an AI watching them scroll by.&lt;/p&gt;
&lt;p id="ea83"&gt;Browser tabs.&lt;br&gt;Draft messages.&lt;br&gt;The twenty Stack Overflow pages you promised yourself you’d close later.&lt;/p&gt;
&lt;p id="059d"&gt;This is where the concept starts to feel less like automation and more like installing a &lt;strong&gt;camera pointed directly at your monitor&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="d4d1"&gt;And historically, developers have been burned by tools that collected more data than expected. Browser extensions have been caught quietly harvesting browsing activity. Analytics scripts sometimes capture more information than their creators originally intended. Even legitimate software occasionally ends up logging sensitive information by accident.&lt;/p&gt;
&lt;p id="a837"&gt;So when people hear about a system that literally observes the entire desktop environment, the reaction is pretty predictable.&lt;/p&gt;
&lt;p id="f7cc"&gt;Curiosity first.&lt;/p&gt;
&lt;p id="cdd4"&gt;Then caution.&lt;/p&gt;
&lt;p id="6290"&gt;Because the difference between &lt;strong&gt;a helpful assistant and a surveillance system&lt;/strong&gt; can sometimes be surprisingly small.&lt;/p&gt;
&lt;p id="47b2"&gt;Imagine the AI assistant helping you export analytics data from a dashboard. At the same time, another window pops up in the corner of the screen with a private message from a colleague. The assistant isn’t trying to read it, but technically it can still see it.&lt;/p&gt;
&lt;p id="4d23"&gt;That kind of situation raises uncomfortable questions about how these tools should behave.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="aff6"&gt;Is the screen data processed locally or sent to a server?&lt;br&gt;Is anything stored or logged?&lt;br&gt;Can companies audit what the AI is observing?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="76f4"&gt;These aren’t theoretical concerns either. Organizations with strict security requirements already worry about tools that access internal systems. Many companies limit screen recording software, restrict browser extensions, or block external automation tools entirely.&lt;/p&gt;
&lt;p id="c798"&gt;Now imagine explaining to a security team that you want to install an assistant that watches the entire desktop so it can automate tasks.&lt;/p&gt;
&lt;p id="515d"&gt;That conversation might take a while.&lt;/p&gt;
&lt;p id="458e"&gt;None of this means systems like Open Claw are inherently dangerous. It just means the &lt;strong&gt;privacy model has to be extremely clear&lt;/strong&gt;. Developers are generally willing to experiment with powerful tools, but they also tend to be skeptical of anything that quietly collects more data than expected.&lt;/p&gt;
&lt;p id="dc78"&gt;Which is why the conversation around AI computer assistants quickly moved beyond the technology itself.&lt;/p&gt;
&lt;p id="342b"&gt;The real debate became something else entirely.&lt;/p&gt;
&lt;p id="9845"&gt;Not whether the assistant can use your computer.&lt;/p&gt;
&lt;p id="3c61"&gt;But whether you can &lt;strong&gt;trust it while it does.&lt;/strong&gt;&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="73e8"&gt;Why the AI industry keeps building these assistants anyway&lt;/h2&gt;
&lt;p id="c1fb"&gt;Given the privacy concerns, you might expect the industry to back away from ideas like Open Claw.&lt;/p&gt;
&lt;p id="a3b9"&gt;But the opposite is happening.&lt;/p&gt;
&lt;p id="fb54"&gt;Across the AI world, companies are racing to build systems that can &lt;strong&gt;use computers the same way humans do&lt;/strong&gt;. Research teams are experimenting with agents that control browsers, navigate interfaces, and complete multi-step tasks across different applications.&lt;/p&gt;
&lt;p id="9c4c"&gt;And the reason is pretty simple.&lt;/p&gt;
&lt;p id="70e1"&gt;Software is built for humans.&lt;/p&gt;
&lt;p id="dd9e"&gt;Most digital tools were never designed for automation. They were designed for someone sitting in front of a screen, moving a mouse, reading menus, and clicking buttons. APIs came later, and even today they only cover a fraction of what software can actually do.&lt;/p&gt;
&lt;p id="5021"&gt;If you’ve ever worked with enterprise tools, you know exactly what that looks like. A product might have dozens of workflows available through the interface, but only a handful exposed through its API. Everything else still requires manual navigation.&lt;/p&gt;
&lt;p id="ee99"&gt;That gap is where AI agents suddenly become very interesting.&lt;/p&gt;
&lt;p id="2d30"&gt;If an assistant can interpret what’s happening on a screen, it can operate software without needing a custom integration. The graphical interface itself becomes the universal control system. Whether the application is a modern web app or some internal dashboard that hasn’t been updated since the early 2000s, the AI can still understand the buttons and menus.&lt;/p&gt;
&lt;p id="85da"&gt;For engineers building automation systems, that idea feels like unlocking a cheat code.&lt;/p&gt;
&lt;p id="c298"&gt;It’s also why this approach keeps appearing in different forms. Traditional robotic process automation tools have been doing something similar for years, mimicking human interactions with software to automate repetitive tasks. The difference now is that AI models can actually &lt;strong&gt;interpret visual context&lt;/strong&gt;, which makes the process much more flexible.&lt;/p&gt;
&lt;p id="3664"&gt;Instead of relying on rigid rules like “click element #123,” the assistant can recognize what a button represents. Even if the layout changes slightly, the system can still identify the action it’s supposed to perform.&lt;/p&gt;
&lt;p id="95bb"&gt;That kind of adaptability is exactly what developers have always wanted from automation.&lt;/p&gt;
&lt;p id="082d"&gt;Anyone who has tried to maintain brittle scripts knows how frustrating it can be. You build something that saves hours of manual work, only for a small UI update to break the entire workflow. Suddenly the automation tool becomes another piece of software you have to maintain.&lt;/p&gt;
&lt;p id="877f"&gt;Vision-based agents promise something different. Because they understand the interface visually, they can adapt when the environment changes. A button might move, but the AI can still recognize it.&lt;/p&gt;
&lt;p id="8392"&gt;This is why some engineers describe graphical interfaces as &lt;strong&gt;the universal API of computing&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="7cea"&gt;Every application has a UI. Every UI communicates meaning through visual patterns: buttons, menus, labels, dialogs. Humans understand those patterns instantly, and modern AI models are starting to learn them too.&lt;/p&gt;
&lt;p id="9638"&gt;From a research perspective, that’s incredibly powerful.&lt;/p&gt;
&lt;p id="1bc2"&gt;It means an assistant could theoretically automate workflows across tools that were never designed to work together. A single agent could move data from a browser to a spreadsheet, trigger actions in a desktop application, then send results through a messaging platform all without any formal integrations.&lt;/p&gt;
&lt;p id="67d9"&gt;For companies building AI products, that possibility is hard to ignore.&lt;/p&gt;
&lt;p id="8057"&gt;Because the moment an AI assistant can reliably operate computers, it stops being just a chatbot. It becomes something closer to a &lt;strong&gt;digital coworker&lt;/strong&gt;, capable of navigating the same environment people use every day.&lt;/p&gt;
&lt;p id="5780"&gt;And that’s why ideas like Open Claw keep appearing in research labs and startup demos.&lt;/p&gt;
&lt;p id="6597"&gt;The industry isn’t just trying to make AI smarter.&lt;/p&gt;
&lt;p id="b9fe"&gt;It’s trying to make AI &lt;strong&gt;capable of acting inside the real software world&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="8a60"&gt;Which brings us back to the tension at the center of this entire conversation.&lt;/p&gt;
&lt;p id="e5c3"&gt;The more access an assistant needs to be useful…&lt;/p&gt;
&lt;p id="1894"&gt;the more careful we have to be about how that access works.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="fb45"&gt;The real issue isn’t the AI it’s trust&lt;/h2&gt;
&lt;p id="0a39"&gt;At this point in the conversation, most developers aren’t arguing about whether AI assistants &lt;em&gt;can&lt;/em&gt; control computers.&lt;/p&gt;
&lt;p id="28e2"&gt;That part is already happening.&lt;/p&gt;
&lt;p id="fc9d"&gt;The real debate is about something much simpler and much harder to solve.&lt;/p&gt;
&lt;p id="facf"&gt;&lt;strong&gt;Trust.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="3416"&gt;Because the moment an AI assistant starts interacting directly with your desktop, it’s no longer just another tool in your workflow. It becomes something that sits inside the same environment as your files, messages, dashboards, and private data.&lt;/p&gt;
&lt;p id="157f"&gt;And that changes the relationship between the developer and the software.&lt;/p&gt;
&lt;p id="70e0"&gt;Most dev tools operate within clear boundaries. Your code editor can see the project folder. Your database client can access the database. Your terminal executes commands you explicitly type.&lt;/p&gt;
&lt;p id="e1f6"&gt;But an AI assistant that observes the screen sits in a much broader position.&lt;/p&gt;
&lt;p id="ba15"&gt;It can potentially see whatever you see.&lt;/p&gt;
&lt;p id="fa72"&gt;That’s why discussions about tools like Open Claw quickly shift from technical capability to &lt;strong&gt;permission models&lt;/strong&gt;. Developers want to know exactly how much access the assistant has, where the data goes, and whether anything is stored along the way.&lt;/p&gt;
&lt;p id="03cd"&gt;Is the system running locally on your machine, or are screenshots being sent to a remote server for processing?&lt;/p&gt;
&lt;blockquote&gt;

&lt;p id="0d00"&gt;Are interactions logged somewhere for training purposes?&lt;/p&gt;

&lt;p id="1ed8"&gt;Can organizations audit what the assistant actually observed during a session?&lt;/p&gt;


&lt;/blockquote&gt;
&lt;p id="bc2a"&gt;These are the kinds of questions that security teams start asking the moment a tool touches production systems.&lt;/p&gt;
&lt;p id="5e0a"&gt;And to be fair, developers ask them too.&lt;/p&gt;
&lt;p id="3777"&gt;Anyone who has installed a new dev tool has seen the moment where the permissions window appears asking for access to everything imaginable files, browser history, system controls. Sometimes you click “Allow” without thinking. Other times you pause for a second and wonder if you’re about to give a random plugin way more power than it deserves.&lt;/p&gt;
&lt;p id="67e3"&gt;AI assistants amplify that concern.&lt;/p&gt;
&lt;p id="c617"&gt;Because their usefulness often depends on &lt;strong&gt;broad access&lt;/strong&gt;. The more of the environment they can observe, the better they can automate tasks. But the broader that access becomes, the more important it is to make the boundaries explicit.&lt;/p&gt;
&lt;p id="acfb"&gt;This is where design choices start to matter.&lt;/p&gt;
&lt;p id="5ba7"&gt;Some systems might run entirely on-device so screen data never leaves the machine. Others might process visual input remotely but restrict what gets stored or logged. Enterprise environments might introduce strict permission layers where the assistant can only interact with certain applications.&lt;/p&gt;
&lt;p id="5df2"&gt;The details of those choices will probably determine whether developers embrace these assistants or avoid them entirely.&lt;/p&gt;
&lt;p id="d050"&gt;History has shown that developers are generally willing to adopt powerful tools even experimental ones as long as they feel confident about what those tools are doing behind the scenes.&lt;/p&gt;
&lt;p id="8625"&gt;But the moment something starts behaving like a &lt;strong&gt;black box with too much access&lt;/strong&gt;, trust disappears very quickly.&lt;/p&gt;
&lt;p id="fba8"&gt;That’s why the conversation around Open Claw isn’t really about whether AI assistants should exist.&lt;/p&gt;
&lt;p id="8681"&gt;It’s about whether we can build them in a way that developers and the organizations they work for are willing to trust.&lt;/p&gt;
&lt;p id="dc99"&gt;And if that trust isn’t there, even the most impressive automation tool in the world won’t last very long in a real production environment.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="add5"&gt;The assistant developers want vs the one they fear&lt;/h2&gt;
&lt;p id="2c93"&gt;AI assistants that can operate computers are probably inevitable.&lt;/p&gt;
&lt;p id="e53d"&gt;Once models can see interfaces, move the mouse, and complete workflows, the step from &lt;em&gt;“helpful chatbot” &lt;/em&gt;to &lt;em&gt;“digital coworker”&lt;/em&gt; becomes pretty small. Instead of suggesting actions, the assistant actually performs them.&lt;/p&gt;
&lt;p id="ae59"&gt;For developers, that future is both exciting and slightly unsettling.&lt;/p&gt;
&lt;p id="38d0"&gt;On one hand, tools like Open Claw hint at a world where repetitive tasks disappear. Reports get exported automatically, dashboards update themselves, and the annoying manual workflows that eat up hours of the day quietly run in the background.&lt;/p&gt;
&lt;p id="9066"&gt;On the other hand, the same assistant capable of doing all that work also sits inside the most sensitive part of your environment: your screen.&lt;/p&gt;
&lt;p id="0adf"&gt;And that means the success of these systems probably won’t depend on how smart they are.&lt;/p&gt;
&lt;p id="0630"&gt;It will depend on how &lt;strong&gt;transparent&lt;/strong&gt; they are.&lt;/p&gt;
&lt;p id="6dea"&gt;Developers want assistants that can operate software intelligently. What they don’t want is software that quietly watches everything they do. The difference between those two things comes down to permissions, local processing, and clear visibility into what the system is actually observing.&lt;/p&gt;
&lt;p id="d8be"&gt;If companies get that balance right, AI assistants could become one of the most useful tools developers have ever had.&lt;/p&gt;
&lt;p id="3bbc"&gt;If they get it wrong, developers will treat them like any other suspicious plugin.&lt;/p&gt;
&lt;p id="e3f8"&gt;Something you uninstall very quickly.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="45e0"&gt;&lt;strong&gt;Helpful resources&lt;/strong&gt;&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="195f"&gt;
&lt;a href="https://news.northeastern.edu/2026/02/10/open-claw-ai-assistant/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://news.northeastern.edu/2026/02/10/open-claw-ai-assistant/" rel="noopener noreferrer"&gt;https://news.northeastern.edu/2026/02/10/open-claw-ai-assistant/&lt;/a&gt;
&lt;/li&gt;

&lt;li id="a337"&gt;
&lt;a href="https://www.selenium.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.selenium.dev/" rel="noopener noreferrer"&gt;https://www.selenium.dev/&lt;/a&gt;
&lt;/li&gt;

&lt;li id="c155"&gt;
&lt;a href="https://playwright.dev/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://playwright.dev/" rel="noopener noreferrer"&gt;https://playwright.dev/&lt;/a&gt;
&lt;/li&gt;

&lt;li id="4101"&gt;
&lt;a href="https://www.ibm.com/topics/rpa" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://www.ibm.com/topics/rpa" rel="noopener noreferrer"&gt;https://www.ibm.com/topics/rpa&lt;/a&gt;
&lt;/li&gt;

&lt;li id="3568"&gt;
&lt;a href="https://news.ycombinator.com/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://news.ycombinator.com/" rel="noopener noreferrer"&gt;https://news.ycombinator.com/&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>openclaw</category>
    </item>
    <item>
      <title>Open Claw isn’t just a tool. it’s a money printer let’s know how</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:37:47 +0000</pubDate>
      <link>https://forem.com/dev_tips/open-claw-isnt-just-a-tool-its-a-money-printer-lets-know-how-57mg</link>
      <guid>https://forem.com/dev_tips/open-claw-isnt-just-a-tool-its-a-money-printer-lets-know-how-57mg</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="ee4d"&gt;Multi-agent systems are quietly replacing “AI apps.” If you wire them correctly, they don’t just answer questions they run workflows that generate revenue. Let’s break down how Open Claw turns prompts into pipelines.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="f720"&gt;We’re entering the post-wrapper era.&lt;/p&gt;
&lt;p id="5908"&gt;For a while, every dev on the internet shipped the same thing:&lt;br&gt; “ChatGPT but for X.”&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="d38e"&gt;ChatGPT for lawyers.&lt;br&gt;ChatGPT for fitness.&lt;br&gt;ChatGPT for dog psychology probably.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="6fba"&gt;And to be fair, it worked. For about five minutes.&lt;/p&gt;
&lt;p id="5257"&gt;But under the noise, something more interesting started happening. Instead of building single prompts behind a UI, people started building &lt;strong&gt;systems&lt;/strong&gt;. Not smarter models. Smarter orchestration.&lt;/p&gt;
&lt;p id="8cb9"&gt;Multi-agent setups.&lt;/p&gt;
&lt;p id="e994"&gt;And that’s where things get weirdly profitable.&lt;/p&gt;
&lt;p id="37c2"&gt;The first time I wired two agents together one to plan, one to execute it felt unstable. Like pairing two junior devs on a feature and hoping they don’t refactor the database. They argued. One hallucinated a tool. The other tried to “improve the plan” mid-task.&lt;/p&gt;
&lt;p id="4f26"&gt;Then I separated responsibilities properly.&lt;/p&gt;
&lt;p id="e0e6"&gt;Planner.&lt;br&gt;Executor.&lt;br&gt;Critic.&lt;/p&gt;
&lt;p id="6754"&gt;Suddenly it felt less like a chatbot… and more like a tiny startup team that doesn’t sleep.&lt;/p&gt;
&lt;p id="3951"&gt;That’s the shift Open Claw sits on top of.&lt;/p&gt;
&lt;p id="1e65"&gt;Not bigger models.&lt;br&gt;Not magic prompts.&lt;br&gt;Orchestration.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="fbff"&gt;&lt;em&gt;“When you stop asking AI to think harder and start teaching it to collaborate, everything changes.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p id="9fc4"&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt;&lt;br&gt;Open Claw matters because it coordinates multiple agents into structured workflows. That shift from prompts to pipelines is where automation turns into monetization. I’ll break down what Open Claw actually is, how multi-agent systems work, how developers are making money with them, and how you can build one without accidentally creating Skynet in your terminal.&lt;/p&gt;&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="3fa3"&gt;What Open Claw actually is (and why orchestration beats raw intelligence)&lt;/h2&gt;
&lt;p id="54fc"&gt;Let’s clear something up.&lt;/p&gt;
&lt;p id="3464"&gt;Open Claw is not a “better ChatGPT.”&lt;/p&gt;
&lt;p id="5ea9"&gt;It’s not a new model.&lt;br&gt;It’s not a secret sauce prompt pack.&lt;br&gt;It’s not some mystical AGI skeleton key.&lt;/p&gt;
&lt;p id="9b12"&gt;It’s an orchestration layer.&lt;/p&gt;
&lt;p id="2b45"&gt;And orchestration is the difference between a toy and a system.&lt;/p&gt;
&lt;p id="6a39"&gt;&lt;strong&gt;Most AI apps today look like this:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;

&lt;li id="dfee"&gt;User sends prompt&lt;/li&gt;

&lt;li id="0389"&gt;Model responds&lt;/li&gt;

&lt;li id="1635"&gt;Maybe a tool gets called&lt;/li&gt;

&lt;li id="56f3"&gt;Done&lt;/li&gt;

&lt;/ol&gt;
&lt;p id="4f3e"&gt;That’s fine for demos. It’s fragile for business.&lt;/p&gt;
&lt;p id="5290"&gt;Open Claw (and frameworks in the same space) are built around multi-agent coordination. Instead of one blob of intelligence trying to plan, execute, validate, and remember everything at once, you split the responsibilities.&lt;/p&gt;
&lt;p id="87a9"&gt;&lt;strong&gt;Think about it like this:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="a69f"&gt;One LLM = talented intern&lt;/li&gt;

&lt;li id="f3fb"&gt;One tool-enabled agent = intern with Stack Overflow access&lt;/li&gt;

&lt;li id="2336"&gt;Multi-agent system = small startup team with defined roles&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="30b6"&gt;And teams outperform solo geniuses in production.&lt;/p&gt;
&lt;h3 id="74b7"&gt;The core roles inside a serious multi-agent setup&lt;/h3&gt;
&lt;p id="bd90"&gt;When you strip the hype away, most effective systems converge into something like this:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="1955"&gt;

&lt;strong&gt;Planner&lt;/strong&gt; breaks the task into structured steps&lt;/li&gt;

&lt;li id="da46"&gt;

&lt;strong&gt;Executor&lt;/strong&gt; runs tools, APIs, or code&lt;/li&gt;

&lt;li id="c51e"&gt;

&lt;strong&gt;Critic&lt;/strong&gt; validates output before committing results&lt;/li&gt;

&lt;li id="0b84"&gt;

&lt;strong&gt;Memory layer&lt;/strong&gt; stores context and decisions&lt;/li&gt;

&lt;li id="ea39"&gt;

&lt;strong&gt;Coordinator&lt;/strong&gt; manages loops and prevents chaos&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="811a"&gt;If you’ve explored projects like Microsoft’s AutoGen or LangChain’s LangGraph, you’ve seen this pattern. Agents pass messages. Tasks get decomposed. Tool calls are structured through function definitions (like in OpenAI’s function calling docs).&lt;/p&gt;
&lt;p id="c181"&gt;The breakthrough isn’t raw intelligence.&lt;/p&gt;
&lt;p id="9ebf"&gt;It’s controlled delegation.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6cfd"&gt;&lt;em&gt;“Intelligence scales. Structure stabilizes.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="65d6"&gt;And stabilization is what makes money possible.&lt;/p&gt;
&lt;h3 id="c5a5"&gt;My “super-agent” disaster&lt;/h3&gt;
&lt;p id="280c"&gt;I tried to be clever once.&lt;/p&gt;
&lt;p id="bdbb"&gt;I built a single mega-agent. Planning, execution, self-critique, memory all in one monstrous prompt. It felt elegant. One brain to rule them all.&lt;/p&gt;
&lt;p id="505b"&gt;It hallucinated a database migration.&lt;br&gt;It invented a function name.&lt;br&gt;It confidently reported success on a task it never ran.&lt;/p&gt;
&lt;p id="9895"&gt;It was like hiring one senior engineer who insists, “I’ll just handle everything,” and then merges directly into main.&lt;/p&gt;
&lt;p id="2b54"&gt;So I split it.&lt;/p&gt;
&lt;p id="a5e4"&gt;&lt;strong&gt;Planner:&lt;/strong&gt; writes steps in JSON.&lt;br&gt;&lt;strong&gt;Executor:&lt;/strong&gt; only allowed to call whitelisted tools.&lt;br&gt;&lt;strong&gt;Critic:&lt;/strong&gt; validates structured output before state changes.&lt;/p&gt;
&lt;p id="b69f"&gt;Suddenly, hallucinations dropped. Infinite loops stopped. Behavior stabilized.&lt;/p&gt;
&lt;p id="91ce"&gt;Not because the model got smarter.&lt;/p&gt;
&lt;p id="2543"&gt;Because the system got stricter.&lt;/p&gt;
&lt;h3 id="3a70"&gt;Why orchestration beats bigger models&lt;/h3&gt;
&lt;p id="99aa"&gt;There’s this obsession right now with model size.&lt;/p&gt;
&lt;p id="2846"&gt;&lt;strong&gt;But in practice:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="1719"&gt;Clear roles beat clever prompts&lt;/li&gt;

&lt;li id="af1a"&gt;Guardrails beat confidence&lt;/li&gt;

&lt;li id="a7e0"&gt;Validation beats vibes&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8a5d"&gt;&lt;strong&gt;Orchestration gives you:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="9daa"&gt;Parallel task execution&lt;/li&gt;

&lt;li id="b9a4"&gt;Built-in quality control&lt;/li&gt;

&lt;li id="fbf5"&gt;Modular upgrades&lt;/li&gt;

&lt;li id="fb46"&gt;Cost monitoring checkpoints&lt;/li&gt;

&lt;li id="efa9"&gt;Business logic insertion between steps&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8e4d"&gt;That’s not hype. That’s architecture.&lt;/p&gt;
&lt;p id="0650"&gt;And architecture compounds.&lt;/p&gt;
&lt;p id="cee6"&gt;Agents are basically microservices with personalities. If you don’t orchestrate them, you don’t have a workforce. You have a chatbot with delusions of grandeur.&lt;/p&gt;
&lt;p id="021b"&gt;Open Claw isn’t powerful because it’s AI.&lt;/p&gt;
&lt;p id="d82e"&gt;It’s powerful because it forces you to think like a systems engineer again.&lt;/p&gt;
&lt;p id="742c"&gt;And that mindset shift is where everything starts to scale.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="8a60"&gt;How you actually make money with multi-agent systems (not by selling “AI”)&lt;/h2&gt;
&lt;p id="a254"&gt;Here’s the part nobody says out loud:&lt;/p&gt;
&lt;p id="c897"&gt;You don’t make money by selling “AI.”&lt;/p&gt;
&lt;p id="fd7e"&gt;You make money by removing friction.&lt;/p&gt;
&lt;p id="8b99"&gt;Nobody wakes up thinking,&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="b263"&gt;&lt;em&gt;“I hope someone sells me a multi-agent orchestration framework today.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="a1d6"&gt;&lt;strong&gt;They wake up thinking:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="8e66"&gt;Why does this report take three hours?&lt;/li&gt;

&lt;li id="052d"&gt;Why are we manually qualifying leads?&lt;/li&gt;

&lt;li id="1fed"&gt;Why is documentation always outdated?&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="937c"&gt;That’s your entry point.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="529a"&gt;&lt;em&gt;“AI isn’t the product. Time saved is the product.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="7ba5"&gt;Multi-agent systems shine because they can handle workflows not just answers.&lt;/p&gt;
&lt;h3 id="5a93"&gt;Real ways devs are monetizing this&lt;/h3&gt;
&lt;p id="436d"&gt;Let’s get concrete.&lt;/p&gt;
&lt;p id="cf1f"&gt;&lt;strong&gt;1: Internal workflow automation&lt;/strong&gt;&lt;/p&gt;
&lt;p id="6457"&gt;This is the low-glamour, high-margin lane.&lt;/p&gt;
&lt;p id="b1e2"&gt;&lt;strong&gt;Example stack:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="56dd"&gt;

&lt;strong&gt;Planner agent:&lt;/strong&gt; defines reporting steps&lt;/li&gt;

&lt;li id="3b59"&gt;

&lt;strong&gt;Executor agent:&lt;/strong&gt; pulls data from APIs&lt;/li&gt;

&lt;li id="510f"&gt;

&lt;strong&gt;Critic agent:&lt;/strong&gt; validates anomalies&lt;/li&gt;

&lt;li id="b31a"&gt;

&lt;strong&gt;Final agent:&lt;/strong&gt; generates formatted report&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="e8b0"&gt;I built one for client reporting. It replaced repetitive manual KPI exports and spreadsheet cleanup. Nothing sexy. Just reliable automation.&lt;/p&gt;
&lt;p id="4d47"&gt;First invoice funded entirely by a pipeline of AI agents.&lt;/p&gt;
&lt;p id="10de"&gt;No “AI SaaS landing page.”&lt;br&gt;Just a solved problem.&lt;/p&gt;
&lt;p id="08bd"&gt;&lt;strong&gt;2: Vertical micro-SaaS&lt;/strong&gt;&lt;/p&gt;
&lt;p id="8643"&gt;Instead of “AI for everyone,” build “AI for one niche.”&lt;/p&gt;
&lt;ul&gt;

&lt;li id="4423"&gt;Real estate listing analyzer&lt;/li&gt;

&lt;li id="340f"&gt;YouTube script research engine&lt;/li&gt;

&lt;li id="c4bc"&gt;Legal clause summarizer&lt;/li&gt;

&lt;li id="6c71"&gt;Dev changelog auto-writer&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="d24e"&gt;&lt;strong&gt;Multi-agent systems let you:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="6e4f"&gt;Research&lt;/li&gt;

&lt;li id="ea71"&gt;Structure&lt;/li&gt;

&lt;li id="c267"&gt;Validate&lt;/li&gt;

&lt;li id="7347"&gt;Publish&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8f71"&gt;All in one controlled loop.&lt;/p&gt;
&lt;p id="a092"&gt;Stripe handles billing (see Stripe docs).&lt;br&gt; Your agents handle execution.&lt;/p&gt;
&lt;p id="6322"&gt;The magic isn’t the model. It’s the pipeline.&lt;/p&gt;
&lt;p id="0cc8"&gt;&lt;strong&gt;3: AI operations consulting&lt;/strong&gt;&lt;/p&gt;
&lt;p id="1a7b"&gt;Companies don’t need a chatbot.&lt;/p&gt;
&lt;p id="ee52"&gt;&lt;strong&gt;They need:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="b6f5"&gt;Internal research automation&lt;/li&gt;

&lt;li id="b149"&gt;Data cleanup pipelines&lt;/li&gt;

&lt;li id="625b"&gt;Knowledge base syncing&lt;/li&gt;

&lt;li id="92db"&gt;Ticket triage automation&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="df54"&gt;Most teams are duct-taping tools together with Zapier. You can replace brittle chains with controlled agent workflows.&lt;/p&gt;
&lt;p id="5147"&gt;This is where orchestration frameworks whether Open Claw, AutoGen, or LangGraph become your leverage multiplier.&lt;/p&gt;
&lt;p id="9217"&gt;You’re not selling prompts.&lt;/p&gt;
&lt;p id="6c51"&gt;You’re selling systems.&lt;/p&gt;
&lt;p id="606d"&gt;&lt;strong&gt;4: Content pipelines&lt;/strong&gt;&lt;/p&gt;
&lt;p id="6f88"&gt;Research agent → writer agent → editor agent → publisher agent.&lt;/p&gt;
&lt;p id="8e26"&gt;Yes, this gets abused.&lt;/p&gt;
&lt;p id="54d1"&gt;But when structured correctly, it becomes a scalable content engine. Especially when paired with analytics feedback loops.&lt;/p&gt;
&lt;p id="a2dc"&gt;Think less “spam blog.”&lt;br&gt;More “controlled editorial pipeline.”&lt;/p&gt;
&lt;p id="6caa"&gt;&lt;strong&gt;5: Developer productivity agents&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="706b"&gt;Code refactor pipelines&lt;/li&gt;

&lt;li id="ca77"&gt;Test generation + validation&lt;/li&gt;

&lt;li id="1c3f"&gt;PR review assistants&lt;/li&gt;

&lt;li id="76fe"&gt;Documentation sync bots&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="481b"&gt;These are internal goldmines.&lt;/p&gt;
&lt;p id="3d71"&gt;Because every dev team hates repetitive maintenance tasks.&lt;/p&gt;
&lt;h3 id="2da7"&gt;&lt;strong&gt;The uncomfortable truth&lt;/strong&gt;&lt;/h3&gt;
&lt;p id="af16"&gt;The money isn’t in building the smartest agent.&lt;/p&gt;
&lt;p id="b834"&gt;It’s in building the most boring reliable system.&lt;/p&gt;
&lt;p id="2df4"&gt;Glue code beats model hype.&lt;/p&gt;
&lt;p id="c540"&gt;Every time.&lt;/p&gt;
&lt;p id="bad3"&gt;The devs who win here aren’t the loudest on Twitter.&lt;/p&gt;
&lt;p id="d514"&gt;They’re the ones quietly wiring planners to executors, adding guardrails, logging everything and sending invoices.&lt;/p&gt;
&lt;p id="4455"&gt;That’s the difference between playing with AI and building with it.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="1173" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AaEMLrTgqsPbItqeLPCXYXA.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="a32e"&gt;Building your first multi-agent stack (without creating AI spaghetti)&lt;/h2&gt;
&lt;p id="1dfc"&gt;Alright.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="11d6"&gt;You’re convinced orchestration matters.&lt;br&gt;You want to build something real.&lt;br&gt;Not a demo. Not a tweet thread project.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="b4dc"&gt;Let’s not overcomplicate this.&lt;/p&gt;
&lt;p id="b29d"&gt;Because the fastest way to kill a multi-agent project is over-engineering it on day one.&lt;/p&gt;
&lt;h3 id="8f1e"&gt;A minimal stack that actually works&lt;/h3&gt;
&lt;p id="86fc"&gt;You do &lt;strong&gt;not&lt;/strong&gt; need 12 services.&lt;/p&gt;
&lt;p id="f18d"&gt;You need something boring and predictable:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="de2e"&gt;Backend: FastAPI or Node&lt;/li&gt;

&lt;li id="20e6"&gt;Model: OpenAI or a solid local LLM&lt;/li&gt;

&lt;li id="b4dd"&gt;Orchestrator: Open Claw (or similar multi-agent framework)&lt;/li&gt;

&lt;li id="e948"&gt;Database: Postgres or Supabase&lt;/li&gt;

&lt;li id="afbc"&gt;Logging: structured logs (seriously, log everything)&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="6096"&gt;That’s it.&lt;/p&gt;
&lt;p id="96ea"&gt;No event-driven distributed AI mesh with blockchain synergy.&lt;/p&gt;
&lt;p id="b1e0"&gt;Keep it simple.&lt;/p&gt;
&lt;h3 id="8c32"&gt;Rule #1: one model, multiple roles&lt;/h3&gt;
&lt;p id="63bc"&gt;Don’t start with five different models.&lt;/p&gt;
&lt;p id="4d07"&gt;Use one model.&lt;br&gt;&lt;strong&gt;Give it different system instructions per role:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e050"&gt;Planner prompt&lt;/li&gt;

&lt;li id="f969"&gt;Executor prompt&lt;/li&gt;

&lt;li id="b522"&gt;Critic prompt&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="6765"&gt;You’re not changing intelligence.&lt;br&gt;You’re changing behavior constraints.&lt;/p&gt;
&lt;p id="cba0"&gt;That alone stabilizes 80% of chaos.&lt;/p&gt;
&lt;h3 id="4ff9"&gt;Rule #2: control the loop&lt;/h3&gt;
&lt;p id="de96"&gt;Every multi-agent system eventually tries to think forever.&lt;/p&gt;
&lt;p id="5e63"&gt;&lt;strong&gt;You must:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="fc7a"&gt;Limit iteration count&lt;/li&gt;

&lt;li id="5eae"&gt;Enforce structured outputs (JSON schemas)&lt;/li&gt;

&lt;li id="0138"&gt;Require validation before state mutation&lt;/li&gt;

&lt;li id="f63a"&gt;Log every tool call&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="5653"&gt;If you don’t, you’ll eventually watch your agent re-plan the same task seven times while burning tokens like a campfire.&lt;/p&gt;
&lt;p id="2f65"&gt;Ask me how I know.&lt;/p&gt;
&lt;p id="36b3"&gt;I once built a “self-improving” agent that was allowed to critique and rewrite its own plan indefinitely. It didn’t crash.&lt;/p&gt;
&lt;p id="5cb1"&gt;It philosophized.&lt;/p&gt;
&lt;p id="e8b3"&gt;For pages.&lt;/p&gt;
&lt;p id="ce56"&gt;No output. Just introspection.&lt;/p&gt;
&lt;p id="0d82"&gt;That’s when I learned:&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="f0a9"&gt;&lt;em&gt;“Agents need fences. Not freedom.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;h3 id="11a5"&gt;Rule #3: observability &amp;gt; cleverness&lt;/h3&gt;
&lt;p id="55d4"&gt;&lt;strong&gt;Add:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="ff1a"&gt;Cost tracking per task&lt;/li&gt;

&lt;li id="35a6"&gt;Loop counters&lt;/li&gt;

&lt;li id="6b09"&gt;Tool call audit trails&lt;/li&gt;

&lt;li id="893f"&gt;Failure fallbacks&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="137a"&gt;Without logs, debugging agents feels like arguing with a ghost.&lt;/p&gt;
&lt;p id="4cdb"&gt;With logs, it feels like debugging a microservice.&lt;/p&gt;
&lt;p id="96aa"&gt;And that’s manageable.&lt;/p&gt;
&lt;h3 id="5b2c"&gt;Common mistakes I see everywhere&lt;/h3&gt;
&lt;ul&gt;

&lt;li id="b798"&gt;Letting agents modify their own prompts&lt;/li&gt;

&lt;li id="c68b"&gt;No max-step limits&lt;/li&gt;

&lt;li id="82b9"&gt;Giving executor full system access&lt;/li&gt;

&lt;li id="7b95"&gt;No validation between agents&lt;/li&gt;

&lt;li id="cd04"&gt;Trying to build AGI instead of solving one workflow&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="fced"&gt;Start small.&lt;/p&gt;
&lt;p id="0624"&gt;&lt;strong&gt;Build one workflow:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7f13"&gt;Research → Execute → Validate → Output.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="7107"&gt;That’s enough to ship something useful.&lt;/p&gt;
&lt;p id="ef54"&gt;Once that works reliably, scale horizontally.&lt;/p&gt;
&lt;p id="6d25"&gt;Add roles.&lt;br&gt;Add complexity.&lt;br&gt;Add monetization.&lt;br&gt;But don’t start there.&lt;/p&gt;
&lt;p id="66d8"&gt;Because multi-agent systems are powerful.&lt;/p&gt;
&lt;p id="388a"&gt;And power without constraints becomes chaos very quickly.&lt;/p&gt;
&lt;p id="84e6"&gt;Next, we zoom out.&lt;/p&gt;
&lt;p id="83ee"&gt;Because this isn’t just a cool dev trick.&lt;/p&gt;
&lt;p id="6d58"&gt;It’s a structural shift.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="7a12"&gt;Why this trend is bigger than Open Claw (and slightly terrifying)&lt;/h2&gt;
&lt;p id="2901"&gt;Here’s the part that feels bigger than any single framework.&lt;/p&gt;
&lt;p id="40ba"&gt;Open Claw isn’t the story.&lt;/p&gt;
&lt;p id="8af3"&gt;Orchestration is.&lt;/p&gt;
&lt;p id="2536"&gt;We’re watching a quiet shift from “AI as assistant” to “AI as workforce multiplier.”&lt;/p&gt;
&lt;p id="ed33"&gt;And that changes incentives.&lt;/p&gt;
&lt;p id="f1af"&gt;When one developer can coordinate five specialized agents research, analyze, validate, execute, publish that’s not just productivity. That’s compression of roles.&lt;/p&gt;
&lt;p id="aa80"&gt;Small teams start operating like larger ones.&lt;br&gt;Solo builders start shipping like startups.&lt;br&gt;Startups start behaving like mid-sized companies.&lt;/p&gt;
&lt;p id="5500"&gt;That leverage is intoxicating.&lt;/p&gt;
&lt;p id="830a"&gt;And slightly terrifying.&lt;/p&gt;
&lt;h3 id="4e15"&gt;The leverage multiplier effect&lt;/h3&gt;
&lt;p id="b912"&gt;A single LLM makes you faster.&lt;br&gt;A coordinated agent system makes you scalable.&lt;/p&gt;
&lt;p id="7a82"&gt;That’s the difference.&lt;/p&gt;
&lt;p id="9b4b"&gt;&lt;strong&gt;When you build structured pipelines:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="263e"&gt;Work becomes modular&lt;/li&gt;

&lt;li id="d685"&gt;Tasks become parallelizable&lt;/li&gt;

&lt;li id="cb03"&gt;Validation becomes automatic&lt;/li&gt;

&lt;li id="2d0f"&gt;Human intervention becomes strategic instead of repetitive&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="15d8"&gt;You stop being the one doing the task.&lt;/p&gt;
&lt;p id="5f17"&gt;You become the one supervising execution.&lt;/p&gt;
&lt;p id="e564"&gt;Which is a very different job.&lt;/p&gt;
&lt;p id="f427"&gt;&lt;strong&gt;I realized this the first time I built a workflow that:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;

&lt;li id="4831"&gt;Scraped structured data&lt;/li&gt;

&lt;li id="5e84"&gt;Cleaned it&lt;/li&gt;

&lt;li id="b096"&gt;Generated a formatted report&lt;/li&gt;

&lt;li id="5313"&gt;Validated anomalies&lt;/li&gt;

&lt;li id="2ee9"&gt;Pushed it to a dashboard&lt;/li&gt;

&lt;/ol&gt;
&lt;p id="e190"&gt;I didn’t feel like a coder anymore I felt like a manager of bots.&lt;/p&gt;
&lt;p id="a323"&gt;That feeling is going to become normal.&lt;/p&gt;
&lt;h3 id="348e"&gt;The dark side&lt;/h3&gt;
&lt;p id="d56f"&gt;Of course, there’s risk.&lt;/p&gt;
&lt;p id="eef9"&gt;Low-effort spam agents will flood markets.&lt;br&gt;AI-generated junk tools will explode.&lt;br&gt;People will ship automation without validation.&lt;/p&gt;
&lt;p id="1c3b"&gt;We’re already seeing it.&lt;/p&gt;
&lt;p id="7d9d"&gt;Every time tooling gets easier, quality temporarily drops.&lt;/p&gt;
&lt;p id="6058"&gt;&lt;strong&gt;But here’s the important part:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="effb"&gt;The advantage won’t go to the loudest prompt engineer.&lt;br&gt;It will go to the best system designer because when noise increases, structure wins.&lt;/p&gt;
&lt;h3 id="3905"&gt;The real moat&lt;/h3&gt;
&lt;p id="d32a"&gt;Prompt engineering is tactical.&lt;/p&gt;
&lt;p id="d0f1"&gt;Workflow architecture is strategic.&lt;/p&gt;
&lt;p id="d3df"&gt;&lt;strong&gt;Knowing how to:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="b930"&gt;Decompose tasks&lt;/li&gt;

&lt;li id="d68b"&gt;Define role boundaries&lt;/li&gt;

&lt;li id="710c"&gt;Insert guardrails&lt;/li&gt;

&lt;li id="d81d"&gt;Add observability&lt;/li&gt;

&lt;li id="72d3"&gt;Control loops&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8397"&gt;That’s infrastructure thinking and infrastructure thinking compounds.&lt;br&gt;This isn’t about replacing developers it’s about redefining what “developer” means.&lt;/p&gt;
&lt;p id="89a2"&gt;You’re not just writing code you’re designing labor systems and once you see it that way, you can’t unsee it this is bigger than Open Claw it’s a shift toward AI-native workflows and the devs who understand orchestration now?&lt;/p&gt;
&lt;p id="e753"&gt;They won’t just build apps.&lt;/p&gt;
&lt;p id="e80b"&gt;They’ll build digital teams.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="4d44"&gt;The dev who builds systems wins&lt;/h2&gt;
&lt;p id="1630"&gt;&lt;strong&gt;We’ve gone from:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="9bb6"&gt;“Can AI answer this?”&lt;br&gt; to&lt;br&gt;“Can AI run this?”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="8bd5"&gt;That’s the real evolution.&lt;/p&gt;
&lt;p id="544b"&gt;And it’s why Open Claw or any orchestration-first framework — matters more than whatever model benchmark is trending this week.&lt;/p&gt;
&lt;p id="c3c1"&gt;Because models will improve.&lt;br&gt;Benchmarks will change.&lt;br&gt;APIs will get faster.&lt;/p&gt;
&lt;p id="9fdf"&gt;But systems thinking? That sticks.&lt;/p&gt;
&lt;p id="a341"&gt;Here’s my slightly controversial take:&lt;/p&gt;
&lt;p id="1413"&gt;Prompt engineers won’t win long term.&lt;/p&gt;
&lt;p id="8910"&gt;System designers will.&lt;/p&gt;
&lt;p id="43da"&gt;The moat isn’t writing the cleverest prompt.&lt;br&gt; It’s designing the cleanest workflow.&lt;/p&gt;
&lt;p id="447b"&gt;&lt;strong&gt;If you know how to:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="be58"&gt;Break messy business logic into steps&lt;/li&gt;

&lt;li id="f3be"&gt;Assign roles&lt;/li&gt;

&lt;li id="841c"&gt;Insert validation&lt;/li&gt;

&lt;li id="9073"&gt;Log everything&lt;/li&gt;

&lt;li id="b3ea"&gt;Control execution loops&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="67e8"&gt;You become dangerous in the best possible way.&lt;/p&gt;
&lt;p id="f2f1"&gt;You stop competing with AI.&lt;/p&gt;
&lt;p id="3174"&gt;You start directing it.&lt;/p&gt;
&lt;p id="b019"&gt;And that’s a massive psychological shift.&lt;/p&gt;
&lt;p id="5566"&gt;The first time you realize your job isn’t “do the task” but “design the execution system,” something changes. You’re no longer just coding features.&lt;/p&gt;
&lt;p id="8f17"&gt;You’re building operators.&lt;/p&gt;
&lt;p id="7825"&gt;Digital coworkers.&lt;/p&gt;
&lt;p id="6c9e"&gt;That doesn’t mean the future is automated utopia.&lt;/p&gt;
&lt;p id="2e98"&gt;It means leverage is increasing.&lt;/p&gt;
&lt;p id="8b80"&gt;And leverage always rewards the people who understand structure.&lt;/p&gt;
&lt;p id="2468"&gt;&lt;strong&gt;So here’s my challenge:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="b969"&gt;Build one tiny agent workflow this week.&lt;/p&gt;
&lt;p id="39cb"&gt;Not a startup. Not a SaaS.&lt;/p&gt;
&lt;p id="ab28"&gt;&lt;strong&gt;Just one pipeline:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="d905"&gt;Plan → Execute → Validate → Output.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="1e06"&gt;Wire it cleanly.&lt;br&gt;Log it properly.&lt;br&gt;Constrain it aggressively.&lt;/p&gt;
&lt;p id="48ef"&gt;Then watch what happens.&lt;/p&gt;
&lt;p id="70b4"&gt;Because once you see AI as a team instead of a tool, you don’t go back.&lt;/p&gt;
&lt;p id="86aa"&gt;And if this trend keeps accelerating, the devs who know how to orchestrate?&lt;/p&gt;
&lt;p id="abfd"&gt;They won’t just be shipping features.&lt;/p&gt;
&lt;p id="4898"&gt;They’ll be running fleets.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="d8e2"&gt;Helpful Resources&lt;/h2&gt;
&lt;ul&gt;

&lt;li id="efd5"&gt;

&lt;strong&gt;Microsoft AutoGen&lt;/strong&gt; &lt;a href="https://github.com/microsoft/autogen" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://github.com/microsoft/autogen" rel="noopener noreferrer"&gt;https://github.com/microsoft/autogen&lt;/a&gt; One of the clearest structured multi-agent conversation frameworks.&lt;/li&gt;

&lt;li id="56b6"&gt;

&lt;strong&gt;LangGraph (by LangChain)&lt;/strong&gt; &lt;a href="https://github.com/langchain-ai/langgraph" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://github.com/langchain-ai/langgraph" rel="noopener noreferrer"&gt;https://github.com/langchain-ai/langgraph&lt;/a&gt; Graph-based stateful agent workflows (excellent for controlled loops).&lt;/li&gt;

&lt;li id="d9c3"&gt;

&lt;strong&gt;CrewAI&lt;/strong&gt; &lt;a href="https://github.com/crewAIInc/crewAI" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://github.com/crewAIInc/crewAI" rel="noopener noreferrer"&gt;https://github.com/crewAIInc/crewAI&lt;/a&gt; Role-driven collaborative AI agents with production-friendly design.&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>openclaw</category>
      <category>programming</category>
    </item>
    <item>
      <title>Heroku didn’t die overnight it just stopped being the easiest answer</title>
      <dc:creator>&lt;devtips/&gt;</dc:creator>
      <pubDate>Thu, 16 Apr 2026 06:35:08 +0000</pubDate>
      <link>https://forem.com/dev_tips/heroku-didnt-die-overnight-it-just-stopped-being-the-easiest-answer-25m</link>
      <guid>https://forem.com/dev_tips/heroku-didnt-die-overnight-it-just-stopped-being-the-easiest-answer-25m</guid>
      <description>&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;h2 id="9894"&gt;The platform that taught a generation of developers how to deploy quietly faded away. And the cloud ecosystem that replaced it looks… a lot more complicated.&lt;/h2&gt;
&lt;span&gt;&lt;/span&gt;&lt;p id="bd7e"&gt;There’s a moment a lot of developers remember.&lt;/p&gt;
&lt;p id="e3d3"&gt;You finish building a little project maybe Django, maybe Node, maybe something questionable built during a caffeine-fueled weekend. Now comes the scary part: deployment.&lt;/p&gt;
&lt;p id="4d48"&gt;&lt;strong&gt;Then someone tells you:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="9012"&gt;“Just deploy it to Heroku.”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5d96"&gt;&lt;strong&gt;You type:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="cce0"&gt;git push heroku &lt;span&gt;main&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="4153"&gt;A few seconds later, logs scroll past and your app is live on the internet.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ea29"&gt;No servers.&lt;br&gt;No Dockerfiles.&lt;br&gt;No Terraform.&lt;br&gt;No Kubernetes cluster trying to ruin your weekend.&lt;/p&gt;&lt;/blockquote&gt;
&lt;blockquote&gt;&lt;p id="2570"&gt;Just… magic.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="4ba0"&gt;For years, &lt;strong&gt;Heroku felt like a cheat code for deployment&lt;/strong&gt;. It was the place students, indie hackers, and startup founders learned how to ship real applications.&lt;/p&gt;
&lt;p id="67d9"&gt;But look around today and something feels different.&lt;/p&gt;
&lt;p id="d452"&gt;New projects rarely start on Heroku anymore.&lt;/p&gt;
&lt;p id="d9dc"&gt;After &lt;strong&gt;pricing changes, the removal of the free tier, and years of slow development under Salesforce&lt;/strong&gt;, the platform slowly drifted from “default deployment choice” to something developers quietly migrate away from.&lt;/p&gt;
&lt;p id="5131"&gt;Not with a dramatic shutdown.&lt;/p&gt;
&lt;p id="790c"&gt;&lt;strong&gt;Just… gradually.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="8d0a"&gt;Meanwhile a new wave of platforms appeared &lt;strong&gt;Vercel, Fly.io, Render, Railway, Netlify&lt;/strong&gt; all promising the same dream Heroku once sold:&lt;/p&gt;
&lt;p id="fe4d"&gt;Deployment without pain.&lt;/p&gt;
&lt;p id="1c3c"&gt;Which leads to an uncomfortable question.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="5117"&gt;Did Heroku fail?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="6db2"&gt;Or did the rest of the industry simply &lt;strong&gt;learn from it and move on&lt;/strong&gt;?&lt;/p&gt;
&lt;h3 id="d9b8"&gt;TL;DR&lt;/h3&gt;
&lt;blockquote&gt;

&lt;p id="2626"&gt;Heroku didn’t die because the idea was bad.&lt;/p&gt;

&lt;p id="7de4"&gt;It faded because &lt;strong&gt;everyone copied the idea and improved it&lt;/strong&gt;.&lt;/p&gt;


&lt;/blockquote&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="4b53"&gt;The &lt;code&gt;git push&lt;/code&gt; revolution&lt;/h2&gt;
&lt;p id="51d8"&gt;If you weren’t around for early Heroku, it’s hard to explain how weirdly magical it felt.&lt;/p&gt;
&lt;p id="41ad"&gt;Deployment used to be a whole &lt;em&gt;thing&lt;/em&gt;.&lt;/p&gt;
&lt;p id="81d5"&gt;You didn’t &lt;em&gt;“deploy an app.”&lt;/em&gt; You &lt;strong&gt;became a temporary system administrator&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="6fda"&gt;&lt;strong&gt;Typical workflow looked something like this:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;

&lt;li id="3162"&gt;Rent a VPS somewhere&lt;/li&gt;

&lt;li id="2e26"&gt;SSH into the server&lt;/li&gt;

&lt;li id="2226"&gt;Install runtime dependencies manually&lt;/li&gt;

&lt;li id="4058"&gt;Configure nginx or Apache&lt;/li&gt;

&lt;li id="58e5"&gt;Pray the ports and environment variables matched your local setup&lt;/li&gt;

&lt;li id="ad10"&gt;Debug cryptic errors until your will to live faded&lt;/li&gt;

&lt;/ol&gt;
&lt;p id="5919"&gt;If you were lucky, you had a deployment script.&lt;br&gt;If you weren’t, you had a &lt;strong&gt;README with 47 steps and a prayer emoji&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="a542"&gt;Then Heroku showed up and casually changed the entire experience.&lt;/p&gt;
&lt;p id="19a3"&gt;&lt;strong&gt;Instead of managing servers, you just pushed code.&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="f18d"&gt;git push heroku &lt;span&gt;main&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="e0ff"&gt;That was it.&lt;/p&gt;
&lt;p id="0530"&gt;Your repository hit Heroku’s infrastructure, a &lt;strong&gt;buildpack&lt;/strong&gt; detected your language, dependencies were installed, and your application launched inside a &lt;strong&gt;dyno&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="7a6b"&gt;You didn’t configure the server.&lt;/p&gt;
&lt;p id="d40d"&gt;You didn’t provision the OS.&lt;/p&gt;
&lt;p id="5a87"&gt;You barely even thought about infrastructure.&lt;/p&gt;
&lt;p id="956a"&gt;Heroku just handled it.&lt;/p&gt;
&lt;h3 id="670c"&gt;Buildpacks were secretly genius&lt;/h3&gt;
&lt;p id="0b13"&gt;One of Heroku’s smartest ideas was &lt;strong&gt;buildpacks&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="4d8e"&gt;A buildpack is basically a script that figures out how to build and run your app.&lt;/p&gt;
&lt;p id="cce5"&gt;&lt;strong&gt;&lt;em&gt;Push a Node project?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;The Node buildpack installs dependencies and runs your start command.&lt;/p&gt;
&lt;p id="a399"&gt;&lt;strong&gt;&lt;em&gt;Push a Django app?&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;The Python buildpack sets up the environment and runs Gunicorn.&lt;/p&gt;
&lt;p id="64da"&gt;It sounds simple now, but at the time it felt revolutionary.&lt;/p&gt;
&lt;p id="46b6"&gt;Suddenly deployment became something that &lt;strong&gt;adapted to your code&lt;/strong&gt;, instead of forcing your code to adapt to the server.&lt;/p&gt;
&lt;p id="5771"&gt;If you want to see how they work, &lt;a href="https://devcenter.heroku.com/articles/buildpacks" rel="noopener ugc nofollow noreferrer"&gt;&lt;strong&gt;Heroku’s docs&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt;are still a great reference:&lt;/p&gt;
&lt;p id="06cc"&gt;There are also dozens of open-source examples on GitHub where teams customize them for different languages and frameworks.&lt;/p&gt;
&lt;h3 id="6030"&gt;Dynos made infrastructure invisible&lt;/h3&gt;
&lt;p id="7ec7"&gt;Heroku didn’t talk about servers.&lt;/p&gt;
&lt;p id="1629"&gt;It talked about &lt;strong&gt;dynos&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="6115"&gt;A dyno was just a lightweight container running your code, but the abstraction mattered. Developers didn’t care what machine it ran on. They only cared that the app worked.&lt;/p&gt;
&lt;p id="5ac4"&gt;&lt;strong&gt;Scaling an app looked like this:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="1bc1"&gt;heroku &lt;span&gt;ps&lt;/span&gt;:scale web=&lt;span&gt;3&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="700c"&gt;Suddenly your app had three dynos running.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="4d25"&gt;No autoscaling groups.&lt;br&gt;No load balancers to configure manually.&lt;br&gt;No YAML files longer than a Tolkien novel.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="9445"&gt;&lt;strong&gt;Just… more instances.&lt;/strong&gt;&lt;/p&gt;
&lt;p id="2e42"&gt;It’s funny looking back now because modern platforms still use almost the exact same idea they just give it different names.&lt;/p&gt;
&lt;h3 id="793f"&gt;The first time deployment felt fun&lt;/h3&gt;
&lt;p id="504c"&gt;A lot of developers remember their first Heroku deploy the same way gamers remember their first time discovering a cheat code.&lt;/p&gt;
&lt;p id="85ed"&gt;You type the command expecting things to break.&lt;/p&gt;
&lt;p id="5a2e"&gt;Instead, your app appears online with a public URL.&lt;/p&gt;
&lt;p id="c5c8"&gt;&lt;strong&gt;And your brain immediately jumps to the same thought:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="e301"&gt;“Wait… that’s it?”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="d8ad"&gt;I still remember deploying a small Django side project and refreshing the URL like ten times just to confirm it was real.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="8dec"&gt;No server crashes.&lt;br&gt;No dependency meltdown.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5a01"&gt;Just a working app.&lt;/p&gt;
&lt;p id="d699"&gt;Heroku didn’t just simplify deployment.&lt;/p&gt;
&lt;p id="7950"&gt;It &lt;strong&gt;changed developer psychology&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="5e49"&gt;Suddenly launching something online felt easy enough that people started building more things.&lt;/p&gt;
&lt;p id="49fe"&gt;Side projects exploded.&lt;br&gt;Hackathon demos went live instantly.&lt;br&gt;Indie developers shipped ideas in hours instead of days.&lt;/p&gt;
&lt;p id="1f88"&gt;In hindsight, that friction reduction was Heroku’s real superpower.&lt;/p&gt;
&lt;h3 id="7884"&gt;Heroku quietly shaped modern cloud platforms&lt;/h3&gt;
&lt;p id="ef37"&gt;What’s interesting is that almost every modern developer platform still follows the same blueprint.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="2934"&gt;Push code → build automatically → run in isolated instances → scale easily.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="078f"&gt;&lt;strong&gt;Platforms like:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="3971"&gt;
&lt;a href="https://vercel.com" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://vercel.com" rel="noopener noreferrer"&gt;https://vercel.com&lt;/a&gt;
&lt;/li&gt;

&lt;li id="da75"&gt;
&lt;a href="https://fly.io" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://fly.io" rel="noopener noreferrer"&gt;https://fly.io&lt;/a&gt;
&lt;/li&gt;

&lt;li id="5980"&gt;
&lt;a href="https://render.com" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://render.com" rel="noopener noreferrer"&gt;https://render.com&lt;/a&gt;
&lt;/li&gt;

&lt;li id="028f"&gt;
&lt;a href="https://railway.app" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://railway.app" rel="noopener noreferrer"&gt;https://railway.app&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="fc8a"&gt;All follow some variation of the Heroku model.&lt;/p&gt;
&lt;p id="4442"&gt;The difference is they added newer capabilities edge networks, container support, cheaper scaling, and better developer tooling.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="831c"&gt;But the core idea?&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5267"&gt;Heroku got there first.&lt;/p&gt;
&lt;p id="60d3"&gt;Which makes the next part of the story a little frustrating.&lt;/p&gt;
&lt;p id="a161"&gt;Because technically speaking, &lt;strong&gt;Heroku never really stopped being good&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="252b"&gt;The problems that came later had a lot less to do with technology… and a lot more to do with what happens when a beloved developer tool gets absorbed into a giant enterprise company.&lt;/p&gt;
&lt;p id="5548"&gt;And that’s where things started to get weird.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h3 id="b912"&gt;When things started going wrong&lt;/h3&gt;
&lt;p id="528e"&gt;For a long time, Heroku felt unstoppable.&lt;/p&gt;
&lt;p id="6489"&gt;&lt;strong&gt;It was the default answer to one very common developer question:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="a327"&gt;&lt;em&gt;“How do I deploy this thing?”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="6063"&gt;Rails tutorials used it.&lt;br&gt;Django tutorials used it.&lt;br&gt;Hackathons practically assumed it.&lt;/p&gt;
&lt;p id="aa21"&gt;If you shipped a side project in that era, there’s a good chance it lived on Heroku.&lt;/p&gt;
&lt;p id="2c42"&gt;Then something subtle changed.&lt;/p&gt;
&lt;p id="b221"&gt;The platform didn’t break.&lt;br&gt;It just… stopped evolving.&lt;/p&gt;
&lt;p id="723f"&gt;Not suddenly. Not dramatically. Just slowly enough that people didn’t notice at first.&lt;/p&gt;
&lt;h3 id="716f"&gt;The Salesforce acquisition changed the trajectory&lt;/h3&gt;
&lt;p id="cf63"&gt;Early Heroku felt like a developer-first company.&lt;/p&gt;
&lt;p id="5ad6"&gt;The docs were clear.&lt;br&gt;The CLI was clean.&lt;br&gt;The platform made smart opinionated choices.&lt;/p&gt;
&lt;p id="80eb"&gt;But after &lt;strong&gt;Salesforce acquired Heroku&lt;/strong&gt;, the direction shifted.&lt;/p&gt;
&lt;p id="2398"&gt;Heroku gradually became less of a central product and more of a small piece inside a massive enterprise ecosystem. Innovation slowed, while the cloud world around it kept accelerating containers, serverless, edge deployments.&lt;/p&gt;
&lt;p id="7054"&gt;For a while that didn’t matter.&lt;/p&gt;
&lt;p id="7d8a"&gt;Until pricing changes started arriving.&lt;/p&gt;
&lt;h3 id="6231"&gt;Losing the free tier changed everything&lt;/h3&gt;
&lt;p id="0374"&gt;One of Heroku’s most beloved features was the &lt;strong&gt;free dyno tier&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="717c"&gt;Students used it.&lt;br&gt;Hackathon teams used it.&lt;br&gt;Open-source projects used it.&lt;/p&gt;
&lt;p id="b313"&gt;It was the easiest way to get a real app online.&lt;/p&gt;
&lt;p id="de80"&gt;When the free tier disappeared, the impact was bigger than it seemed.&lt;/p&gt;
&lt;p id="9161"&gt;Free tiers aren’t just generosity they’re &lt;strong&gt;onboarding funnels&lt;/strong&gt;. Developers experiment on free platforms, and some of those projects eventually turn into paying customers.&lt;/p&gt;
&lt;p id="7fd7"&gt;Once the free tier vanished, Heroku quietly lost its role as the default starting point for new developers.&lt;/p&gt;
&lt;h3 id="4e35"&gt;Suddenly Heroku looked expensive&lt;/h3&gt;
&lt;p id="0ee0"&gt;At the same time, pricing started feeling less competitive.&lt;/p&gt;
&lt;p id="19a2"&gt;A small dyno that once seemed affordable now looked expensive compared to newer platforms offering similar workflows and generous free tiers.&lt;/p&gt;
&lt;p id="dc35"&gt;Developers started doing what developers always do: comparing options.&lt;/p&gt;
&lt;p id="0c6b"&gt;And once that comparison started happening, migration stories began popping up everywhere on Hacker News, Reddit, and developer blogs.&lt;/p&gt;
&lt;p id="a438"&gt;Not dramatic rants.&lt;/p&gt;
&lt;p id="9a22"&gt;Just pragmatic decisions.&lt;/p&gt;
&lt;h3 id="7709"&gt;The ecosystem slowly moved on&lt;/h3&gt;
&lt;p id="aad9"&gt;The real signal wasn’t a single announcement.&lt;/p&gt;
&lt;p id="89ad"&gt;It was the quiet migration stories.&lt;/p&gt;
&lt;p id="a8e4"&gt;A side project moves to &lt;strong&gt;Render&lt;/strong&gt;.&lt;br&gt;Another developer switches to &lt;strong&gt;Fly.io&lt;/strong&gt;.&lt;br&gt;Frontend teams start deploying to &lt;strong&gt;Vercel&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="72d9"&gt;Small projects began leaving first and that matters, because small projects are where developers experiment and learn.&lt;/p&gt;
&lt;p id="dd17"&gt;Heroku once dominated that space.&lt;/p&gt;
&lt;p id="8890"&gt;Now it had competition. Lots of it.&lt;/p&gt;
&lt;h3 id="4abf"&gt;Heroku never actually broke&lt;/h3&gt;
&lt;p id="2743"&gt;The ironic part is that &lt;strong&gt;Heroku still works really well&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="f8d6"&gt;The CLI is great.&lt;br&gt;The deployment workflow is simple.&lt;br&gt;The logs are still excellent.&lt;/p&gt;
&lt;p id="d10b"&gt;But developer platforms don’t win purely on reliability.&lt;/p&gt;
&lt;p id="9d28"&gt;They win on &lt;strong&gt;momentum&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="32d7"&gt;And once the developer community starts drifting toward newer tools, it’s very hard to reverse that trend.&lt;/p&gt;
&lt;p id="3371"&gt;Heroku didn’t collapse.&lt;/p&gt;
&lt;p id="9559"&gt;It just stopped being the most exciting option while a new generation of platforms appeared, all following the blueprint Heroku created.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ATppg-HWHS0zYX0crhObPAQ.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="f1dc"&gt;The platforms that learned from Heroku&lt;/h2&gt;
&lt;p id="719e"&gt;Here’s the funny part of the Heroku story.&lt;/p&gt;
&lt;p id="8fda"&gt;The idea didn’t disappear.&lt;/p&gt;
&lt;p id="005b"&gt;It &lt;strong&gt;multiplied&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="1b57"&gt;Look at almost any modern developer platform and you’ll notice the same pattern Heroku popularized:&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="590d"&gt;Push code → the platform builds it → the app runs in the cloud → scaling happens automatically.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="1939"&gt;That workflow is everywhere now.&lt;/p&gt;
&lt;p id="aac2"&gt;The difference is that newer platforms rebuilt the idea using modern infrastructure.&lt;/p&gt;
&lt;p id="20b3"&gt;In a way, the industry didn’t move beyond Heroku.&lt;/p&gt;
&lt;p id="992f"&gt;It simply &lt;strong&gt;continued the evolution Heroku started&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="012a"&gt;Vercel made deployment feel instant&lt;/h3&gt;
&lt;p id="032d"&gt;If Heroku simplified backend deployment, &lt;strong&gt;Vercel&lt;/strong&gt; did the same for frontend apps.&lt;/p&gt;
&lt;p id="ccf1"&gt;Connect a Git repository and every push triggers a deployment automatically. Preview URLs appear for every commit, and the platform distributes your app through a global edge network.&lt;/p&gt;
&lt;p id="363b"&gt;For frontend developers, it feels almost effortless.&lt;/p&gt;
&lt;p id="5825"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://vercel.com/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://vercel.com/docs" rel="noopener noreferrer"&gt;https://vercel.com/docs&lt;/a&gt;&lt;/p&gt;
&lt;p id="5159"&gt;The technology changed &lt;strong&gt;serverless functions and edge infrastructure instead of dynos&lt;/strong&gt; but the philosophy stayed the same: developers shouldn’t need to think about infrastructure unless they want to.&lt;/p&gt;
&lt;h3 id="06e9"&gt;Fly.io moved the Heroku idea closer to infrastructure&lt;/h3&gt;
&lt;p id="42f4"&gt;&lt;strong&gt;Fly.io&lt;/strong&gt; takes a slightly different approach.&lt;/p&gt;
&lt;p id="3953"&gt;You still deploy with a simple command:&lt;/p&gt;
&lt;pre&gt;&lt;span id="6995"&gt;fly deploy&lt;/span&gt;&lt;/pre&gt;
&lt;p id="a7ba"&gt;But under the hood, your app runs inside containers distributed across global regions.&lt;/p&gt;
&lt;p id="ae4f"&gt;It’s essentially the Heroku developer experience combined with modern container infrastructure.&lt;/p&gt;
&lt;p id="9c64"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://fly.io/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://fly.io/docs" rel="noopener noreferrer"&gt;https://fly.io/docs&lt;/a&gt;&lt;/p&gt;
&lt;p id="7faf"&gt;This approach appeals to developers who want simplicity without giving up control.&lt;/p&gt;
&lt;h3 id="cad8"&gt;Render and Railway became the “new Heroku”&lt;/h3&gt;
&lt;p id="feab"&gt;Platforms like &lt;strong&gt;Render&lt;/strong&gt; and &lt;strong&gt;Railway&lt;/strong&gt; feel like direct descendants of the Heroku model.&lt;/p&gt;
&lt;ul&gt;

&lt;li id="e4ff"&gt;Git-based deployments&lt;/li&gt;

&lt;li id="fe8c"&gt;Automatic builds&lt;/li&gt;

&lt;li id="b280"&gt;Managed databases&lt;/li&gt;

&lt;li id="827e"&gt;Simple scaling&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="0b0f"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://render.com/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://render.com/docs" rel="noopener noreferrer"&gt;https://render.com/docs&lt;/a&gt;&lt;br&gt;&lt;a href="https://railway.app/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://railway.app/docs" rel="noopener noreferrer"&gt;https://railway.app/docs&lt;/a&gt;&lt;/p&gt;
&lt;p id="9583"&gt;If you’ve used Heroku before, these platforms feel immediately familiar.&lt;/p&gt;
&lt;p id="59ef"&gt;It’s like moving to a new apartment in the same neighborhood different building, same layout.&lt;/p&gt;
&lt;h3 id="5ebc"&gt;The modern PaaS blueprint&lt;/h3&gt;
&lt;p id="c420"&gt;Most modern platforms follow a very similar pipeline:&lt;/p&gt;
&lt;pre&gt;&lt;span id="1a08"&gt;Git push&lt;br&gt;   ↓&lt;br&gt;Automatic build&lt;br&gt;   ↓&lt;br&gt;Container / serverless runtime&lt;br&gt;   ↓&lt;br&gt;Edge network &lt;span&gt;or&lt;/span&gt; &lt;span&gt;load&lt;/span&gt; balancer&lt;/span&gt;&lt;/pre&gt;
&lt;p id="8a05"&gt;Heroku introduced this idea.&lt;/p&gt;
&lt;p id="0057"&gt;Modern platforms simply upgraded the underlying technology with containers, edge networks, and cheaper infrastructure.&lt;/p&gt;
&lt;h3 id="141a"&gt;Heroku trained an entire generation of developers&lt;/h3&gt;
&lt;p id="880e"&gt;Heroku’s biggest legacy isn’t just its platform.&lt;/p&gt;
&lt;p id="ce66"&gt;It’s the expectations it created.&lt;/p&gt;
&lt;p id="3029"&gt;An entire generation of developers learned deployment through Heroku, and once you experience that level of simplicity, you start expecting it everywhere.&lt;/p&gt;
&lt;p id="2501"&gt;&lt;strong&gt;Today when a platform requires complicated infrastructure just to deploy an app, developers immediately ask:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ad6d"&gt;“Why is this harder than it needs to be?”&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="5f0c"&gt;That expectation didn’t exist before Heroku.&lt;/p&gt;
&lt;p id="5e3b"&gt;The companies building the next generation of cloud platforms are still following the same principle Heroku introduced years ago:&lt;/p&gt;
&lt;p id="93c4"&gt;Deployment should feel simple.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="3a5c"&gt;Why developers still love Heroku&lt;/h2&gt;
&lt;p id="ee66"&gt;Even after all the migrations, pricing debates, and newer platforms popping up every month, a lot of developers still talk about Heroku with a weird kind of affection.&lt;/p&gt;
&lt;p id="77eb"&gt;Not the &lt;strong&gt;&lt;em&gt;“this tool is perfect”&lt;/em&gt;&lt;/strong&gt; kind.&lt;/p&gt;
&lt;p id="9ef7"&gt;More like the way people talk about their first laptop that actually worked.&lt;/p&gt;
&lt;p id="c00f"&gt;Because Heroku wasn’t just infrastructure.&lt;/p&gt;
&lt;p id="883b"&gt;It was &lt;strong&gt;a good developer experience&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="a26c"&gt;And that’s rarer than it should be.&lt;/p&gt;
&lt;h3 id="7f9c"&gt;The CLI was ridiculously good&lt;/h3&gt;
&lt;p id="0651"&gt;If you’ve ever used the Heroku CLI, you probably remember how clean it felt.&lt;/p&gt;
&lt;p id="6048"&gt;Most commands were exactly what you expected them to be.&lt;/p&gt;
&lt;pre&gt;&lt;span id="fcf1"&gt;heroku logs &lt;span&gt;--tail&lt;/span&gt;&lt;br&gt;heroku &lt;span&gt;config&lt;/span&gt;&lt;br&gt;heroku ps&lt;br&gt;heroku &lt;span&gt;open&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="f278"&gt;That’s it.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="ff5e"&gt;No giant YAML files.&lt;br&gt;No multi-step authentication dance.&lt;br&gt;No cloud console maze.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="b96d"&gt;You could manage an entire application from a terminal in minutes.&lt;/p&gt;
&lt;p id="f918"&gt;Compare that to navigating some cloud dashboards today and it’s almost funny how straightforward Heroku was.&lt;/p&gt;
&lt;p id="ab42"&gt;&lt;strong&gt;It felt like someone actually asked developers:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="1ee5"&gt;&lt;em&gt;“What would make this less annoying?”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="cae2"&gt;And then built exactly that.&lt;/p&gt;
&lt;h3 id="3355"&gt;Logs that actually helped you debug&lt;/h3&gt;
&lt;p id="4bb4"&gt;This sounds small until you’ve used platforms where logs are buried behind five menus and three filters.&lt;/p&gt;
&lt;p id="589e"&gt;&lt;strong&gt;Heroku logs were simple:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="c853"&gt;heroku logs --&lt;span&gt;tail&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p id="bd1d"&gt;You immediately saw what your app was doing in real time.&lt;/p&gt;
&lt;p id="2220"&gt;&lt;strong&gt;&lt;em&gt;Server starting? You saw it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p id="ecb0"&gt;&lt;strong&gt;&lt;em&gt;Crash loop? You saw it.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p id="0322"&gt;Database connection exploding? Yep, that too.&lt;/p&gt;
&lt;p id="f7c2"&gt;For developers debugging production issues, this was huge.&lt;/p&gt;
&lt;p id="6227"&gt;I remember fixing a broken deployment just by watching logs stream while refreshing the app URL. The problem was obvious within seconds.&lt;/p&gt;
&lt;p id="ff0a"&gt;That kind of feedback loop is developer gold.&lt;/p&gt;
&lt;h3 id="a12d"&gt;The add-on ecosystem was brilliant&lt;/h3&gt;
&lt;p id="ec3c"&gt;Another underrated part of Heroku was the &lt;strong&gt;add-ons marketplace&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="ec0d"&gt;&lt;strong&gt;Need a PostgreSQL database?&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="9e26"&gt;heroku addons:&lt;span&gt;create&lt;/span&gt; heroku-postgresql&lt;/span&gt;&lt;/pre&gt;
&lt;p id="c4d3"&gt;&lt;strong&gt;Need Redis?&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="9f50"&gt;heroku addons:&lt;span&gt;create&lt;/span&gt; heroku-redis&lt;/span&gt;&lt;/pre&gt;
&lt;p id="3292"&gt;Logging tools, monitoring, queues, analytics all installable in seconds.&lt;/p&gt;
&lt;p id="aff2"&gt;This idea eventually spread everywhere. Today most cloud platforms have some kind of &lt;strong&gt;managed services marketplace&lt;/strong&gt;, but Heroku made the concept feel effortless.&lt;/p&gt;
&lt;p id="f7af"&gt;Developers didn’t need to research infrastructure vendors.&lt;/p&gt;
&lt;p id="c387"&gt;They just added a service and kept building.&lt;/p&gt;
&lt;p id="2edf"&gt;&lt;strong&gt;Docs if you want to see how the system worked:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="f992"&gt;&lt;a href="https://devcenter.heroku.com/articles/add-ons" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://devcenter.heroku.com/articles/add-ons" rel="noopener noreferrer"&gt;https://devcenter.heroku.com/articles/add-ons&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="9443"&gt;Heroku felt… friendly&lt;/h3&gt;
&lt;p id="8e68"&gt;This is the part that’s hard to quantify.&lt;/p&gt;
&lt;p id="6a70"&gt;Some developer tools feel like they were designed by people who enjoy building software.&lt;/p&gt;
&lt;p id="2af0"&gt;Heroku had that vibe.&lt;/p&gt;
&lt;p id="8348"&gt;The CLI was readable.&lt;/p&gt;
&lt;p id="793c"&gt;The documentation was clear.&lt;/p&gt;
&lt;p id="e5ef"&gt;Even the terminology dynos, buildpacks, add-ons made the system easy to reason about.&lt;/p&gt;
&lt;p id="a21f"&gt;There’s a reason so many programming tutorials used Heroku as the deployment step.&lt;/p&gt;
&lt;p id="95b2"&gt;It didn’t overwhelm beginners.&lt;/p&gt;
&lt;p id="ae45"&gt;It helped them ship something.&lt;/p&gt;
&lt;p id="dc97"&gt;And shipping something is the moment developers get hooked.&lt;/p&gt;
&lt;h3 id="10f1"&gt;Simplicity is still the hardest problem in cloud infrastructure&lt;/h3&gt;
&lt;p id="4d07"&gt;Modern cloud platforms are incredibly powerful.&lt;/p&gt;
&lt;p id="b7e9"&gt;Kubernetes can orchestrate thousands of containers.&lt;br&gt;Serverless platforms can scale instantly.&lt;br&gt;Edge networks can deploy globally.&lt;/p&gt;
&lt;p id="6ea2"&gt;But power usually comes with complexity.&lt;/p&gt;
&lt;p id="7976"&gt;Heroku’s real trick was &lt;strong&gt;hiding complexity without removing capability&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="55a4"&gt;You could scale dynos, configure environments, attach databases, and run background jobs without needing to understand the underlying infrastructure.&lt;/p&gt;
&lt;p id="bf6d"&gt;And that balance is hard to get right.&lt;/p&gt;
&lt;p id="5a51"&gt;Which is why, even now, when developers migrate away from Heroku, they often say something like:&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="7057"&gt;&lt;em&gt;“I miss how simple it was.”&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="905e"&gt;That sentence alone tells you everything about the platform’s legacy.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;img alt="" width="800" height="437" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2AvgwGp08GZooYz-i284nfrQ.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="e02e"&gt;What replaces Heroku now&lt;/h2&gt;
&lt;p id="c988"&gt;If Heroku isn’t the default answer anymore, what is?&lt;/p&gt;
&lt;p id="58de"&gt;That’s the interesting part.&lt;/p&gt;
&lt;p id="6ddd"&gt;There isn’t &lt;strong&gt;one replacement&lt;/strong&gt; there are many.&lt;/p&gt;
&lt;p id="3a68"&gt;&lt;strong&gt;In the Heroku era, the decision was simple:&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6bec"&gt;Build app → deploy to Heroku&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="e660"&gt;Today, the choice depends on what you’re building.&lt;/p&gt;
&lt;h3 id="2120"&gt;For frontend apps&lt;/h3&gt;
&lt;p id="8c37"&gt;Platforms like &lt;strong&gt;Vercel&lt;/strong&gt; and &lt;strong&gt;Netlify&lt;/strong&gt; became the go-to options.&lt;/p&gt;
&lt;p id="6ff4"&gt;Connect your Git repo, push code, and the platform automatically deploys it. Preview environments appear for every commit, and the app is distributed globally through edge networks.&lt;/p&gt;
&lt;p id="3642"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://vercel.com/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://vercel.com/docs" rel="noopener noreferrer"&gt;https://vercel.com/docs&lt;/a&gt;&lt;br&gt;&lt;a href="https://docs.netlify.com/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://docs.netlify.com/" rel="noopener noreferrer"&gt;https://docs.netlify.com/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="af68"&gt;For full-stack apps&lt;/h3&gt;
&lt;p id="09d2"&gt;Tools like &lt;strong&gt;Render&lt;/strong&gt;, &lt;strong&gt;Fly.io&lt;/strong&gt;, and &lt;strong&gt;Railway&lt;/strong&gt; feel like modern versions of Heroku.&lt;/p&gt;
&lt;p id="d666"&gt;&lt;strong&gt;They keep the core ideas developers loved:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;

&lt;li id="4849"&gt;Git-based deployment&lt;/li&gt;

&lt;li id="a615"&gt;Simple scaling&lt;/li&gt;

&lt;li id="b10b"&gt;Managed databases&lt;/li&gt;

&lt;li id="542c"&gt;Minimal infrastructure setup&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="1bcd"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://render.com/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://render.com/docs" rel="noopener noreferrer"&gt;https://render.com/docs&lt;/a&gt;&lt;br&gt;&lt;a href="https://fly.io/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://fly.io/docs" rel="noopener noreferrer"&gt;https://fly.io/docs&lt;/a&gt;&lt;br&gt;&lt;a href="https://railway.app/docs" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://railway.app/docs" rel="noopener noreferrer"&gt;https://railway.app/docs&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="1cc7"&gt;For infrastructure control&lt;/h3&gt;
&lt;p id="0c0a"&gt;Some teams skip PaaS entirely and run apps on &lt;strong&gt;Kubernetes&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="8881"&gt;It offers full control over scaling and networking but also brings much more operational complexity.&lt;/p&gt;
&lt;p id="2e02"&gt;&lt;strong&gt;Docs:&lt;/strong&gt;&lt;br&gt;&lt;a href="https://kubernetes.io/docs/" rel="noopener ugc nofollow noreferrer"&gt;&lt;/a&gt;&lt;a href="https://kubernetes.io/docs/" rel="noopener noreferrer"&gt;https://kubernetes.io/docs/&lt;/a&gt;&lt;/p&gt;
&lt;h3 id="0e42"&gt;The ecosystem today&lt;/h3&gt;
&lt;p id="e850"&gt;&lt;strong&gt;Instead&lt;/strong&gt; of one clear default, developers now choose between many platforms:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="7109"&gt;Vercel&lt;/li&gt;

&lt;li id="193a"&gt;Netlify&lt;/li&gt;

&lt;li id="45b9"&gt;Fly.io&lt;/li&gt;

&lt;li id="1466"&gt;Render&lt;/li&gt;

&lt;li id="3630"&gt;Railway&lt;/li&gt;

&lt;li id="fed3"&gt;AWS Amplify&lt;/li&gt;

&lt;li id="4b0d"&gt;Google Cloud Run&lt;/li&gt;

&lt;li id="e93c"&gt;DigitalOcean App Platform&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="875e"&gt;&lt;strong&gt;They all promise the same thing Heroku once did:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="e524"&gt;Deploy your app &lt;strong&gt;without worrying about servers&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="4843"&gt;The difference is that today, that promise comes from many platforms competing to offer the best developer experience.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="8a63"&gt;The real legacy Heroku leaves behind&lt;/h2&gt;
&lt;p id="a453"&gt;It’s easy to frame Heroku’s story as a classic rise-and-fall.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="5615"&gt;A beloved tool appears.&lt;br&gt;Developers love it.&lt;br&gt;A big company buys it.&lt;br&gt;Momentum fades.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="f014"&gt;But that version misses the real point.&lt;/p&gt;
&lt;p id="23c1"&gt;Heroku didn’t fail because the idea stopped working.&lt;/p&gt;
&lt;p id="c42b"&gt;It faded because &lt;strong&gt;the idea worked so well that everyone copied it&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id="a00b"&gt;Heroku changed how developers think about deployment&lt;/h3&gt;
&lt;p id="b883"&gt;Before Heroku, deploying an app meant learning server administration configuring proxies, managing processes, and debugging infrastructure.&lt;/p&gt;
&lt;p id="b241"&gt;Heroku flipped that model.&lt;/p&gt;
&lt;p id="f3c9"&gt;You pushed code.&lt;/p&gt;
&lt;p id="34f0"&gt;The platform handled everything else.&lt;/p&gt;
&lt;p id="c251"&gt;That shift changed developer expectations. Today almost every modern platform tries to hide infrastructure behind simpler abstractions serverless functions, containers, and edge deployments.&lt;/p&gt;
&lt;p id="529a"&gt;&lt;strong&gt;Different tools, same philosophy:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="c217"&gt;Infrastructure should disappear unless you actually need it.&lt;/p&gt;
&lt;h3 id="f960"&gt;Heroku proved developer experience matters&lt;/h3&gt;
&lt;p id="1bce"&gt;Heroku didn’t win developers with massive feature lists.&lt;/p&gt;
&lt;p id="27cb"&gt;It won them with &lt;strong&gt;good developer experience&lt;/strong&gt;:&lt;/p&gt;
&lt;ul&gt;

&lt;li id="0979"&gt;A clean CLI&lt;/li&gt;

&lt;li id="f434"&gt;Simple scaling commands&lt;/li&gt;

&lt;li id="1bba"&gt;Readable logs&lt;/li&gt;

&lt;li id="896c"&gt;Excellent documentation&lt;/li&gt;

&lt;/ul&gt;
&lt;p id="8605"&gt;Today every cloud platform talks about &lt;strong&gt;DX&lt;/strong&gt;, but Heroku helped prove that developer experience isn’t a luxury feature.&lt;/p&gt;
&lt;p id="d670"&gt;It’s the product.&lt;/p&gt;
&lt;h3 id="73ab"&gt;The idea never went away&lt;/h3&gt;
&lt;p id="9276"&gt;The platforms gaining momentum today are basically rebuilding the Heroku experience with modern infrastructure underneath.&lt;/p&gt;
&lt;p id="fb83"&gt;Push code.&lt;br&gt;Automatic builds.&lt;br&gt;Managed services.&lt;br&gt;Scaling without thinking about servers.&lt;/p&gt;
&lt;p id="edd3"&gt;The technology changed containers, edge networks, serverless runtimes but the core idea stayed the same.&lt;/p&gt;
&lt;p id="2410"&gt;Heroku created the template.&lt;/p&gt;
&lt;p id="36fc"&gt;The rest of the industry is still refining it.&lt;/p&gt;
&lt;h3 id="e90e"&gt;The real success story&lt;/h3&gt;
&lt;p id="57bc"&gt;When people say “Heroku is dead,” what they usually mean is that it’s no longer the center of the deployment conversation.&lt;/p&gt;
&lt;p id="0b30"&gt;But its philosophy is everywhere.&lt;/p&gt;
&lt;p id="38e0"&gt;And that’s probably the best legacy a developer platform could leave behind.&lt;/p&gt;
&lt;p id="1aab"&gt;&lt;strong&gt;Because Heroku taught the industry something simple:&lt;/strong&gt;&lt;/p&gt;
&lt;p id="0dce"&gt;Deploying software should be easy.&lt;/p&gt;
&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;h2 id="9948"&gt;Conclusion heroku didn’t fail, it finished the level&lt;/h2&gt;
&lt;p id="ee89"&gt;There’s a simple way to tell if a technology really mattered.&lt;/p&gt;
&lt;p id="065d"&gt;Look at what the world looks like &lt;strong&gt;after it fades&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="fd32"&gt;If nothing changes, the tool probably wasn’t that important.&lt;/p&gt;
&lt;p id="84c9"&gt;But if the entire ecosystem starts behaving differently, then the tool did something bigger than just hosting apps.&lt;/p&gt;
&lt;p id="b248"&gt;That’s basically what happened with Heroku.&lt;/p&gt;
&lt;p id="0ec5"&gt;It normalized the idea that deploying software shouldn’t feel like configuring a nuclear reactor. Developers shouldn’t need to memorize Linux arcana just to get a web app online.&lt;/p&gt;
&lt;blockquote&gt;&lt;p id="6872"&gt;You write code.&lt;br&gt;You push code.&lt;br&gt;Your app runs.&lt;/p&gt;&lt;/blockquote&gt;
&lt;p id="ba55"&gt;That philosophy now shows up everywhere from &lt;strong&gt;Vercel preview deployments&lt;/strong&gt; to &lt;strong&gt;Fly.io’s global containers&lt;/strong&gt; to &lt;strong&gt;Render’s one-click services&lt;/strong&gt;.&lt;/p&gt;
&lt;p id="6529"&gt;Even massive infrastructure platforms are starting to embrace it.&lt;/p&gt;
&lt;p id="0e6c"&gt;AWS launched &lt;strong&gt;Cloud Run–style services&lt;/strong&gt;, simplified app platforms, and more serverless workflows because the industry realized something Heroku understood early:&lt;/p&gt;
&lt;p id="a7cc"&gt;Developers don’t want infrastructure.&lt;/p&gt;
&lt;p id="6586"&gt;They want working software.&lt;/p&gt;
&lt;p id="2f43"&gt;Which makes Heroku’s story feel less like a tragedy and more like the end of a successful experiment.&lt;/p&gt;
&lt;p id="c264"&gt;The platform that once felt like magic slowly became unnecessary, because the magic spread everywhere.&lt;/p&gt;
&lt;p id="5a07"&gt;&lt;strong&gt;In gaming terms&lt;/strong&gt;, Heroku didn’t get defeated.&lt;/p&gt;
&lt;p id="471d"&gt;It finished the level and unlocked the mechanics for everyone else.&lt;/p&gt;
&lt;p id="5449"&gt;&lt;strong&gt;&lt;em&gt;And honestly, that’s a pretty good legacy for a platform that started with one ridiculously satisfying command:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;span id="582a"&gt;git push heroku &lt;span&gt;main&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span&gt;Press enter or click to view image in full size&lt;/span&gt;&lt;img alt="" width="800" height="555" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmiro.medium.com%2Fv2%2Fresize%3Afit%3A1050%2F1%2ARPB8UlLgpBGSiC0sa3siAQ.png"&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;p id="9357"&gt;And when developers build more things, the entire ecosystem grows.&lt;/p&gt;
&lt;p id="fa77"&gt;Heroku proved that.&lt;/p&gt;
&lt;p id="fea8"&gt;The rest of the cloud world is still catching up.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>programming</category>
      <category>heroku</category>
    </item>
  </channel>
</rss>
