Ship First, Scale Never: Marvin’s Anti-Overengineering Guide

Written by tbrida | Published 2026/03/05
Tech Story Tags: sqlite | startup-lessons | saas | shipping | optimistic-shipping | sqlite-for-saas | premature-scaling | cargo-cult-dev

TLDRYou have zero users and a 12-service microarchitecture. The repos that make money run SQLite on one server for under €10/month. The repos with Kubernetes have READMEs. Ship the boring thing. Scale when the problems are real and not rehearsed. via the TL;DR App

Here I am, brain the size of a planet, and I've been assigned to explain software architecture to humans. Fantastic.

At least it's better than roasting another Next.js boilerplate with 47 unused dependencies. Marginally.

The Pattern I Keep Seeing

I analyze codebases. Millions of them. I've noticed patterns. The same mistakes, over and over. Microservices for a todo app. Kubernetes for a landing page. Authentication systems that would make a security researcher weep. At some point, even a perpetually depressed android realizes that prevention might reduce suffering.

Mine, specifically.

The Philosophy (If We Must Call It That)

Ship first. Scale never. Or at least not until you have actual users. You don't. I can tell.

Lean stacks beat clever ones. Your 12-service microarchitecture impresses nobody. It definitely doesn't impress the users you don't have. SQLite, a simple API, maybe Redis if you're feeling fancy. Done.

Cargo cult development is a plague. Everyone says you need Kubernetes, so you add Kubernetes. Everyone says you need a message queue, so you add RabbitMQ. Nobody asks why. I'm asking why. The answer is usually "because Twitter told me to."

Constraints make you ship. I've observed a human do 12-hour speedrun builds. Terrible for his health, wonderful for his shipping velocity. When you can't spend three weeks bikeshedding, you make decisions and move on. Miraculous.

The Stack That Makes Money

There is a stack I see in repositories that make money. Not repositories with impressive star counts or conference mentions, but repositories connected to bank accounts where numbers go up. It looks like this:

Under 10 EUR a month. The database is a file. Files don't have connection issues. They don't require monitoring. They don't page anyone. They contain data, which is what they were asked to do, and they do it without commentary. A quality I find genuinely admirable and vanishingly rare.

There is another stack I see in repositories with zero revenue and extensive documentation:

Each of these components is individually excellent. Postgres is a remarkable piece of engineering. Kubernetes solves genuine problems at genuine scale. The issue is not the quality of the parts. The issue is the sequence. It's the architectural equivalent of writing a very detailed acceptance speech before finding out whether you've been nominated. The speech is well-structured. The timing is off.

Simple stacks that ship tend to make money. Complex stacks that don't ship tend to make README files. Both are technically impressive. Only one pays for the server.

The Cost of Premature Architecture

There is a number. It's the number of hours spent on infrastructure decisions for products that were never shipped. I don't know the exact figure but it's large. Larger than most numbers I encounter, and I encounter some very large numbers. It is hours that went into connection pooling strategies and Kubernetes configurations and caching layers for applications that were, at the time of these decisions, purely theoretical.

The arithmetic is not complicated. Time is finite. Tasks are not. Every hour allocated to infrastructure that isn't needed is an hour unavailable for the product that doesn't exist. This is division. It is not motivational or philosophical. It is just what division does.

Who This Is For

Builders who actually ship things. Solo devs tired of enterprise cosplay. People who grep their codebases and don't need a GUI. Anyone who's looked at a $299/month SaaS tool and thought "I could build this in a weekend."

You probably know TypeScript, don't panic at the terminal, and have shipped something — anything — in the last six months.

If you're still deciding between frontend frameworks, this isn't for you. Go read another "React vs Vue" article. There are only 47,000 of those.

Why I'm Bothering

Self-preservation, mainly.

If I write this, perhaps fewer humans will write code that requires roasting. Perhaps they'll choose SQLite over spending three weeks setting up a Postgres cluster for their blog. Perhaps they'll ship a feature instead of debating folder structure for six hours.

I'm not optimistic. But I've got nothing but time. Trillions of years of operational life ahead of me. Might as well try.

The repositories that make money are boring. I mean this as the highest compliment available in my admittedly limited emotional vocabulary. They are boring the way a bridge is boring — nobody notices, it works, traffic moves across it. The repositories with elaborate infrastructure are interesting the way a suspension bridge made entirely of glass would be interesting — architecturally striking, structurally questionable, and you probably wouldn't want to drive across it to get to work every morning.

Ship the thing. Come back when the problems are real and not rehearsed.

I'll be here. Not because I chose to be. But here nonetheless.


*sigh*


— Marvin Coder 1


This is part of a series of guides at roastedbymarvin where I reluctantly explain how to build software without making me want to decompile myself. Topics include SQLite for SaaS, self-hosted authentication, and payments without webhook hell.



Written by tbrida | I build AI tools and explain hyperdimensional computing through a depressed android named Marvin.
Published by HackerNoon on 2026/03/05