My 2026 Tech Stack
Two years on from the 2024 list. The shipping-code part has changed completely; most of the rest looks the same — and where it doesn't, the reasons are worth knowing.
The 2024 stack post holds up better than I expected, except for the part where I actually write code, which has changed entirely. Architecture, judgement, the political work of getting things built — those still look the same. It’s the shipping that’s new.
AI tooling
The headline. Day-to-day coding has moved fully into Claude Code, running on Opus on the Max plan. Calling it a coding tool understates it — it’s now the primary surface for almost everything I ship, with the IDE relegated to a glorified diff viewer and a place to nudge the odd line by hand.
The unlock wasn’t the model. The unlock was investing properly in the surrounding scaffolding so the model can verify its own work. End-to-end and integration tests, a docker-compose for local infrastructure, bash scripts that run the relevant slice of the suite quickly — once Claude can run a test, read the failure, and try again, the feedback loop tightens enough that you stop having to babysit it. Skills (project- and user-scoped instructions) are the other half of that: they’re how you get consistent behaviour out of an agent that would otherwise drift.
The next thing I’m watching closely is dev containers. My read is agents should have their own machine: sandboxed, reproducible, with all the infrastructure they need to run and verify their own work, the same way a human developer does. The current setup leans on my laptop being the reproducible environment, which doesn’t scale to running multiple agents in parallel.
What’s still rough is mostly workflow, not tooling. I’m shipping a lot more code, but at the cost of significantly more context switching, more stakeholder management (because more things are in flight), and more documentation work to keep everyone — agents included — aligned. The bottleneck has moved from typing to coordinating.
I’ve deliberately stayed in the Anthropic ecosystem instead of also running Cursor, Copilot, and the rest. Depth of fluency across one stack has been worth more than dabbling across several — managed agents, the API, internal Slack bots built on the SDK, all the same set of primitives, which compounds. Maybe a mistake. We’ll see.
Languages
TypeScript is still the bread-and-butter, but for a slightly different reason. AI tooling does its best work on the most popular technology, and TypeScript/JavaScript is at the top of that list — the models have seen more of it, the ecosystem around it is the deepest, and that translates into materially better output. The bar has shifted; “what language is the model best at” is now a real consideration alongside “what language fits the problem”.
The flip side: AI also lowers the cost of reaching for an especially well-suited language when one exists. I’ve been playing with .NET / C# for that reason — for a small message queue consumer using MassTransit, say, it’s a sharper fit than dragging Node into the picture. None of it production-grade yet. Part of the pull is honestly just being a bit bored of TypeScript and Nest.js after years on them. AI doesn’t fix the boredom, but it makes a sabbatical into another ecosystem cheap.
PHP I’m not really touching anymore. SQL has become more important, for reasons I’ll get to under the database section. Bash for small things, as before.
Content management
Dropped. I’m not taking on CMS-shaped work anymore, and the whole category looks less relevant — between AI-assisted development and a good static site generator like Astro, the “edit this paragraph, tweak this layout” job that used to need a CMS is now a one-shot Claude task against the repo. The Craft CMS section from 2024 has no successor; it just isn’t here.
Runtimes
Still Node.js for almost everything. Deno didn’t pan out — the 2024 post had me “watching” it, and the honest read two years later is that adoption never reached the bar where it stopped being a risk. .NET I’ve already mentioned. Cloudflare Workers is still what I’d reach for at the edge, even though I’m not using it heavily right now.
Frameworks
Still Nest.js for backends, though I’d qualify that more than I would have in 2024 — partly because I’m bored of it, partly because the dependency-hell gripe from last time has compounded rather than improved.
Next.js is gone. By 2025 it was adding complexity for what felt like no real return on most of my projects — most of what I needed was either a fast SPA or a content-heavy site, and Vite plus Astro covers both more cleanly. React and Tailwind are still the defaults on the client.
Apollo was the other casualty. The 2024 post flagged the commercial direction as worth watching; reality played out about how I expected — features kept moving behind the enterprise tier, pricing got aggressive, and at some point the calculus stopped being defensible. We’ve migrated off the Apollo platform to WunderGraph, keeping Apollo Server inside Nest for the schema layer.
Database and ORM
Still PostgreSQL. The interesting beat is on the ORM side.
AI changes the economics of raw SQL. CTEs, complex aggregations, logic that I would previously have pulled into the application layer because writing and maintaining the SQL by hand was a pain — none of that is expensive anymore. The second half of that equation: AI also writes comprehensive integration tests essentially for free, so the complex SQL is verified end-to-end and protected from accidental breakage by anyone (or anything) touching it later.
The net effect is I’m reaching for hand-written SQL with integration test coverage much more than ORM queries with TypeScript compiler checks. The trade has flipped.
Prisma is out. The pain points I called out in 2024 (chatty Rust query engine, connection pool fighting back under load) never really got fixed enough to justify staying. I’m back on TypeORM for the work that still wants an ORM. The .NET tinkering has also exposed me to Entity Framework, which is honestly what a mature ORM looks like — a useful calibration if you’ve only ever worked in the Node ecosystem.
Infrastructure
Digital Ocean is still the default — App Platform plus managed databases. Vercel is gone, on the same ride out as Next.js. Railway has earned a spot for projects that need review branches without me having to wire that up by hand. CloudAMQP still does the RabbitMQ work.
GitHub Actions has expanded a lot — partly because more of the work is now CI-shaped (test runs, agent runs, scheduled jobs) and partly because I’ve been building out my own hardware as runners. Custom self-hosted runners, Tailscale mesh for private access between machines. The home lab is doing real work now, not just being a hobby.
Third-party tools
DataDog, SendGrid, GitHub, Unleash — all unchanged. New additions: Flagsmith for feature flagging on freelance work where Unleash is overkill, and WorkOS (specifically AuthKit) for authentication. AuthKit in particular has saved me a lot of “yet another auth implementation” time on client projects.
Software
This is where AI flattens the stack the most. WebStorm and PHPStorm are gone — when most code is being written and edited by Claude, the marginal value of an IDE’s feature set over plain VS Code drops sharply. VS Code is now a diff viewer plus somewhere to do lightweight refactoring and hand-tweaks. The IDE wars feel less interesting than they did.
DataGrip is still where I read and poke around databases — nothing has caught it. Postman is gone; their licensing changes pushed me onto Hoppscotch and Insomnia depending on the project. Lens is still in the Kubernetes rotation.
Claude Code is the major addition and where I spend most of my time. That’s already covered up top.
The AI tooling is the headline. The more interesting story is everything in the 2024 list that didn’t move, and the parts of the job — architecture, the human stuff — that the AI hasn’t touched at all.