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