How indie products scaled their stacks

Everyone's migration blog makes it sound like you need microservices on day one. These indie products prove otherwise — with numbers, sources, and zero Kubernetes clusters.

Nomad List

One founder, PHP, SQLite, and a Google Sheet MVP

Pieter Levels built Nomad List solo on deliberately boring tech — no React, no Kubernetes, no platform team. It started as a spreadsheet and grew into a profitable nomad directory still running on a cheap VPS.

3 stages · 3 sources

Levels.fyi

Millions of users, Google Sheets as the database

Levels.fyi ran salary data for millions of monthly visitors with Google Forms, Google Sheets, AWS Lambda, and JSON files in S3 — no Postgres on day one. They moved to a real database only after product-market fit, not before.

3 stages · 3 sources

Plausible Analytics

Two-person analytics on Elixir, Postgres, then ClickHouse

Plausible is privacy-friendly web analytics built by a tiny team in the EU. They started with Elixir and PostgreSQL, hit performance walls at real traffic, and added ClickHouse on a couple of servers — still no hyperscaler cosplay.

3 stages · 3 sources

Bear Blog

Django on a $7 Heroku dyno survived the HN hug

Herman Martinus shipped Bear Blog as a weekend Django project for minimal, fast writing. It survived a front-page Hacker News spike on hobby-tier hosting — then grew to thousands of blogs without a frontend framework in sight.

3 stages · 3 sources

Photopea

One developer, zero backend, $50/year hosting

Ivan Kutskir built Photopea alone in the browser — a Photoshop-class editor where the server only serves JavaScript files. Millions of monthly opens, ad revenue in six figures, and hosting cheaper than a nice dinner.

3 stages · 3 sources

Sidekiq

Open-core Ruby jobs — Redis, not a platform team

Mike Perham built Sidekiq as a better Resque, kept the core free, and sold Pro/Enterprise add-ons. The product is Redis plus Ruby gems — no Kubernetes brochure — and the business grew from beer money to seven figures on word of mouth.

3 stages · 3 sources

Tarsnap

Paranoid backups on S3, EC2, and one developer’s C code

Colin Percival’s Tarsnap is online backup for the truly paranoid: client-side encryption and deduplication, a log-structured filesystem on Amazon S3, and a tiny EC2 footprint for metadata. Solo operator, published architecture, no hype stack.

3 stages · 3 sources

Pinboard

Paid bookmarks on PHP, MySQL, and five boring servers

Maciej Cegłowski built Pinboard as the anti-social bookmarking site: pay to join, fast pages, no engagement bait. It runs on a classic LAMP-ish stack he wrote himself — and famously stayed small enough for one person to operate.

3 stages · 3 sources

Hacker News

Arc, flat files, and the legendary single box

Hacker News runs on Paul Graham’s Arc dialect with data in files and memory — not a fleet of managed services. For years the whole forum lived on one server (plus failover), and staff comments still treat that simplicity as a feature.

3 stages · 3 sources

SourceHut

Self-hosted forge, colo bills, public spreadsheets

Drew DeVault’s SourceHut (sr.ht) is a subscriber-funded dev forge — git, builds, mailing lists — running on AGPL code and radical financial transparency. No VC, no JavaScript-required dashboard cosplay, colocation instead of hyperscaler cosplay.

3 stages · 3 sources

Buttondown

Newsletters on Django, Heroku, and one Stripe engineer’s nights

Justin Duke built Buttondown while working at Stripe — a minimalist newsletter tool on Django and Postgres, hosted mostly on Heroku with Redis/RQ for email scheduling. ~45k lines of Django later, still one monolith, deliberately boring.

3 stages · 3 sources

Fathom Analytics

Privacy analytics — Laravel, then Vapor, then SingleStore

Jack Ellis and Paul Jarvis rebuilt Fathom on Laravel, hit Heroku limits, moved to Laravel Vapor on AWS Lambda, then swapped RDS/Redis/Dynamo for SingleStore when database pain arrived. Still a tiny team, still anti-cookie-banner analytics.

3 stages · 3 sources

Transistor.fm

Podcast hosting on Rails and AWS — two founders, open revenue

Justin Jackson and Jon Buda bootstrapped Transistor in 2018 on Ruby on Rails and AWS (Elastic Beanstalk), sharing revenue publicly via Baremetrics. They hit ~$20k MRR in 11 months — not five years — on boring SaaS infra and calm growth.

3 stages · 3 sources

Feedbin

RSS on Heroku, then metal, then your own rack

Ben Ubois launched Feedbin two days before Google killed Reader — profitable in weeks, crushed by Heroku Postgres pricing, then rebuilt on SoftLayer metal, Sidekiq Pro, and eventually colocation at Hurricane Electric.

3 stages · 3 sources

Overcast

One developer, PHP and MySQL, then Go for the hot path

Marco Arment built Overcast solo after Tumblr and Instapaper — mostly PHP and MySQL on Linode, then a dedicated Limestone box for feed crawling. When PHP’s networking model hurt, he rewrote crawlers in Go and halved server count.

3 stages · 3 sources

Healthchecks.io

Cron monitoring on Hetzner metal, one Latvian operator

Pēteris Caune runs Healthchecks.io solo — a cron job dead-man’s-switch SaaS on Django, PostgreSQL, and Hetzner bare metal. No platform team, no automatic failover theater: manual DB promotion and a Go sidecar for pings.

3 stages · 3 sources

Listen Notes

Podcast search on boring Django, one founder

Wenbin Fang built Listen Notes — a podcast search engine and API — as a one-person company on Django, PostgreSQL, Redis, and Elasticsearch. It started on three DigitalOcean droplets for ~$30/month and grew without a platform cosplay phase.

3 stages · 3 sources

Marginalia Search

Indie search from a living-room gaming PC

Viktor Löfgren’s Marginalia Search indexes tens of millions of documents from consumer hardware in his apartment — Java, nginx, and a refusal to need a datacenter budget to compete with the big indexes.

3 stages · 3 sources

Lichess

Free chess on Scala, MongoDB, and donations

Thibault Duplessis built Lichess as a free, adless chess server — Scala and Play on the backend, MongoDB for billions of games, funded by user donations instead of VC. It publishes costs openly and still treats boring infra as a virtue.

3 stages · 3 sources

BuiltWith

Technographics at ~$14M ARR, essentially one person

Gary Brewer turned “what stack is that site on?” into BuiltWith — a technographics and lead-gen platform reportedly doing eight-figure ARR with almost no employees. Stack is ASP.NET, MongoDB, SQL Server, AWS crawlers, and OVH hosting.

3 stages · 3 sources

Storemapper

Store-locator widget, Rails on Heroku, nights and weekends

Tyler Tringas built Storemapper — a store-locator SaaS for e-commerce — on a flight from San Francisco to Buenos Aires. Rails on Heroku, Postgres, and Stripe grew it to roughly $200k ARR before a life-changing exit, all documented in public.

3 stages · 3 sources

Simple Analytics

Privacy analytics without Kubernetes cosplay

Adriaan van Rossum built Simple Analytics — a privacy-friendly Google Analytics alternative — in three months using Node.js and Postgres, then added Elasticsearch when aggregations hurt. Multiple plain servers, no containers, EU hosting.

3 stages · 3 sources

Baremetrics

Open-startup SaaS metrics on Rails and Heroku

Josh Pigford built Baremetrics — Stripe SaaS analytics — from zero to $5k MRR in five months on Rails and Heroku, then pioneered the open startup movement by publishing revenue and infra costs for years.

3 stages · 3 sources

Get the right stack for YOUR scale — not theirs

Nomad List's PHP file won't fit your SaaS. Photopea's zero-backend model won't fit your CRUD app. Describe what you're building and get a stack sized for you.

Plan my stack — free