Tech radar
What I reach for
A personal take on the ThoughtWorks radar: the tech behind the projects I'm running right now, ranked by how readily I reach for it, from Adopt (my default) out to Hold (steering new work away).
Hover a tool to lift it. Click to take it down and read it.
35 of 35 shown
Techniques
Habits more than purchases. The four in the middle are how I'd start any project tomorrow: lean on AI in the loop, keep every environment in a repo, keep branches short, and spend judgement on the product.
The two boxes on the shelf I'm still looking at seriously. One of them would run a company with nobody in it.
4 Adopt, 1 Trial, 2 Assess
Tools
Claude Code is the harness in the middle, my daily driver. Its tag is new and the leather isn't. That happens fast with a tool you use every day.
Along the top are the things I'm using on real work and happy with, including two built for agents to pick up instead of me.
5 Adopt, 5 Trial, 1 Assess
Platforms
The boring reliable core. AWS is the sledgehammer, and the tack hammer above it is DigitalOcean, for when the sledge is overkill.
PostgreSQL is bolted to the bench: the default datastore until proven otherwise.
6 Adopt, 2 Trial
Languages & Frameworks
TypeScript end to end, frontend and back, with React as the baseline I reach for first.
The top row is cleaner because it's newer to my hands: Go when simplicity and throughput matter, Hono at the edge, and TanStack Start for the sites I build. This one included.
6 Adopt, 3 Trial
The whole wall, written down
Everything on the board. Adopt: My default; I’ll pick this without much debate. Trial: Using it on real, production work and happy with it. Assess: Worth a serious look; exploring it deliberately. Hold: Proceed with caution; I’m steering new work away from it.
Techniques
AI-augmented development
Adopt
Small teams shipping like big ones by leaning hard on AI in the loop.
Block and tackle. One person lifts what used to take several.
Infrastructure as code
Adopt
Every environment reproducible from a repo, no console clicking.
Steel drilling jig. The same holes in the same places, every time.
Trunk-based development
Adopt
Short-lived branches, merge often, keep main releasable.
Pruning saw. Keeps the branches short.
Boring technology
Adopt
Known failure modes beat novelty; spend judgement on the product.
Brace and bit. A boring tool, literally. No battery, and I know how it fails.
Coding agent swarms
TrialNew
Fleets of coding agents working a problem in parallel.
Parallel clamps. They are called that. Several at once, on one job.
In Tiny Tactics
Agents in CI
AssessNew
Autonomous agents reviewing, fixing, and migrating in the pipeline.
Pipe inspection scope. Goes down the pipeline so I don’t have to. Still in its box.
Zero-human company
AssessNew
Businesses run end to end by agents, with humans only on the edges.
Lights-out time switch. Runs the place with nobody in. Still in its box, and I’m in no hurry.
Tools
Claude Code
AdoptNew
My primary agentic coding harness — daily driver.
Leather tool harness. It says harness on the tin. I put it on every morning.
In Sakurai
Vite
Adopt
Fast dev server and bundler for anything frontend.
Speed wrench. Vite is French for fast. So is this, for a wrench.
In Tiny Tactics
Docker
Adopt
Reproducible builds and runtime, local to prod.
Docker’s bale hook. What you carried cargo with before containers.
In Seedit
GitHub Actions
Adopt
Default CI/CD — close to the code, easy to reason about.
Yankee push driver. Push once and the action runs by itself.
Drizzle ORM
Adopt
Type-safe SQL without hiding the database.
Oil can. It drizzles, and you can see exactly where it goes.
In Companion AI, Bikkel, Social publishing platform, MandarinAI
Stripe
Trial
Billing, subscriptions, and revenue splits.
Chalk line. Snaps a clean stripe, and splits a board in two.
In Companion AI
Turborepo
Trial
Monorepo task graph with caching that holds up.
Socket rail. Everything on one rail. Nothing fetched twice.
In Live-streaming platform, Online gaming platform, Companion AI
Playwright
Trial
Reliable end-to-end browser testing.
Continuity tester. Clip one end, touch the other. It either lights or it doesn’t.
agent-device
TrialNew
Drive real mobile devices from AI agents.
Long-reach grabber. Works the thing from a distance, with real fingers.
agent-browser
TrialNew
Browser automation built for AI agents.
Inspection mirror. Looks round the corner for someone who can’t.
Polar
AssessNew
Open-source monetization and billing for developers.
Polar planimeter. A real instrument for measuring what’s owed. Still in its case.
Platforms
AWS
Adopt
Multi-region default — ECS, the boring reliable core.
Sledgehammer. Heavy, dull and reliable.
Cloudflare
Adopt
Edge, DNS, and DDoS protection in front of everything.
Welding helmet. Goes in front of everything, and the sparks hit it first.
In Bikkel, Companion AI, Social publishing platform, MandarinAI, Tiny Tactics
PostgreSQL
Adopt
The default datastore until proven otherwise.
Bench vise. Bolted down. Holds whatever you give it until you say otherwise.
In Live-streaming platform, Online gaming platform, Companion AI, Bikkel, Social publishing platform, MandarinAI, Seedit
Redis
Adopt
Caching, queues, and ephemeral state.
Magnetic parts tray. Red, close at hand, and nothing in it is meant to stay.
GitHub
Adopt
Source of truth for code, CI, and releases.
Engineer’s square. The one you check all the others against.
In Sakurai
Blacksmith.sh
AdoptNew
Faster, cheaper CI runners for GitHub Actions.
Blacksmith’s tongs. No other way to say that one.
Pulumi
TrialNew
Infrastructure as code in real languages, not HCL.
Letter punches. Real letters, in a real language.
DigitalOcean
Trial
Simple, predictable hosting when AWS is overkill.
Tack hammer. For when the sledge next to it is overkill.
Languages & Frameworks
TypeScript
Adopt
Default language end to end, frontend and back.
Vernier caliper. Every part gets measured before it goes in.
In Live-streaming platform, Online gaming platform, Sakurai, Autarco Helios, Seedit, Companion AI, Social publishing platform, Bikkel, MandarinAI, Tiny Tactics
React
Adopt
The UI baseline I reach for first.
Spirit level. It gives you the baseline.
In Live-streaming platform, Online gaming platform, Autarco Helios, Companion AI, Social publishing platform, Bikkel, MandarinAI, Tiny Tactics
Node.js
Adopt
Backend runtime that shares the frontend language.
Double-ended spanner. One tool, same language at both ends.
In Seedit, Tiny Tactics
Tailwind CSS
Adopt
Styling without leaving the markup.
Sash brush. You paint right where you’re working.
Zustand
AdoptNew
Minimal client state without the boilerplate.
Spring clamp. Holds what you give it. No screws, no ceremony.
React Native
Adopt
One React codebase across iOS and Android.
Adjustable wrench. One tool, two sizes of nut.
Go
Trial
For services where simplicity and throughput matter.
Go/no-go gauge. Simple. It gives you one answer.
TanStack Start
TrialNew
Type-safe full-stack React I build sites on.
Router plane. It has a router in it. I build sites on the rest.
In Bikkel, Social publishing platform, MandarinAI, Tiny Tactics
Hono
Trial
Tiny, fast, edge-ready API framework.
Kiridashi knife. Tiny, Japanese, and all edge.
Choosing what to reach for?
Picking a stack is easier with someone who has lived with the choices. Tell me what you're building.