Two people. Five products. Zero meetings. That's not a limitation — it's the whole strategy.
Small means every decision is intentional. No one hides behind a process. No one ships something they haven't personally used. Here's how we stay productive without burning out or shipping garbage.
The indie developer tool stack
Every layer chosen for a reason. Click to see why:
Our technology stack
Opinionated choices. Each one earned.
How we ship without sprints or standups
No ceremonies. No story points. Here's what we actually do:
How a feature goes from idea to production
Feel it
Notice friction in our own workflow
Sketch it
30-min design in a text file, not Figma
Build it
Ship the smallest useful version
Ship it
Push to main. Done.
Opinions we've earned
You don't get to be opinionated without trying things first. Here's where we've landed — and why:
TypeScript everywhere
Types aren't bureaucracy. They're documentation the compiler enforces. Every hour on types saves three hours debugging.
Microservices
At our scale, microservices add complexity without value. A monorepo with clear boundaries gives us modularity without the network calls.
SQLite over Postgres
For most of what we build, SQLite is faster, simpler, and needs zero infrastructure. D1 gives us SQLite at the edge. No connection pools.
Electron
200MB to ship a window. We'd rather learn SwiftUI and ship something that belongs on the platform.
Static exports
If a page doesn't need a server, it shouldn't have one. Our marketing sites are static HTML on Cloudflare's edge. Fast, cheap, unkillable.
Jira / Linear sprints
Task trackers are fine. Sprint ceremonies for two people are overhead pretending to be process. We use a text file and git issues.
The structural advantage of small
Big teams optimize for coordination. Small teams optimize for output. We don't have meetings about meetings. We don't write documents that describe other documents. We don't maintain compatibility with decisions made by people who left three years ago.
We sit down. We build. We ship.
That's not a flex — it's a structural advantage. And we intend to keep it.