Business & Financeintermediate

The Developer's Side Hustle: How to Build a Profitable One-Person Online Business

The Developer's Side Hustle: How to Build a Profitable One-Person Online Business
Audio course

The Developer's Side Hustle: How to Build a Profitable One-Person Online Business

0:00 / 2:16:4616 chapters

A practical course for working developers who want to turn their ability to build software into a small, profitable online business — without a team, investors, or burnout. It covers why developers keep losing to non-technical founders, how to pick a business model, validate ideas, ship lean, price right, find customers, handle the legal basics, and stay sane doing it all on the side.

🎧 16 chapters⏱ 2:16:46 audio 🎙 Narrated by Connor Updated
Share:
Progress0%

Sign up free to unlock:

  • Resume-where-you-stopped listening
  • Request & vote on new courses
  • Save courses for later listening
  • Get personalized recommendations
  • Build your public learning profile
Sign Up Free

Already have an account? Log in

Chapters

Click play to listen, or tap a chapter to read its transcript.

1Introduction

Forty subscribers. Two hundred and eighty dollars a month, and the person who built it was thrilled. Then somebody on the forum did the math they hadn't. Forty subscribers means forty support tickets when something breaks. Forty credit cards that can expire or get declined. Forty people who each feel entitled to your weekend. Two hundred and eighty dollars — for all of that.

That's not a coding problem. The code worked fine. What went wrong happened long before the first line was written.

Here's the thing nobody tells the working engineer. You already have the hardest skill in business — the ability to build. The person across town gluing a Google Sheet to a couple of no-code tools can't do what you do. And yet they're the one taking money from a stranger, while your beautiful repo sits there with the only number that matters stuck at zero. The trap isn't that you can't build. It's that you treat everything else — who pays, what to charge, how they find you — as an afterthought to the code. And every one of those traps looks, from the inside, like good engineering.

This course flips the order. Commercial intent first, code second.

Later, there's a Dutch developer named Pieter Levels, who once announced he'd launch twelve startups in twelve months — and the problem he was treating wasn't that he couldn't build. It was that he couldn't stop. There's Patrick McKenzie, who ran a business selling bingo cards for elementary school teachers on about five hours a week, and who lifted his conversion just by treating one email as a thing he could measure instead of a thing he wrote once and forgot. There's a number from CB Insights that should stop you cold — they read through hundreds of startup post-mortems, and the single most common cause of death, in around forty-two percent of them, was simply: no market need. They built it. Nobody wanted it.

By the time this is done, you'll be able to pick a business model on purpose, kill a bad idea in an afternoon instead of six months, and price for what your work is actually worth.

It starts where every business has to start — not with the code, but with the uncomfortable question of who, exactly, is going to pay you.

2How Developers Can Compete With Non-Technical Founders

On day one, the developer opens a fresh repo. Six weeks later, that repo is a thing of beauty. Clean schema. Proper test coverage. A queue system ready for the day a thousand users sign up at once. There's just one number missing from the whole project, and it's the only one that matters: zero. Zero customers. Zero dollars. Nobody outside the developer has ever seen it run.

Across town there's someone who can't write a line of code. Their whole product is a Google Sheet glued to a couple of no-code tools held together with hope. It's ugly. It breaks if you look at it wrong. And they just got a stranger to hand them money for it. That's the contrast this whole course is built around — and the uncomfortable truth is that the second person is winning, and they're winning for reasons that have nothing to do with talent and everything to do with order of operations.

Here's the thing that should make this story impossible. The developer has a massive structural advantage, and most developers never cash it in. Think about what a custom piece of software actually costs in the open market. The non-technical founder who wants the thing you built in a weekend has to go to an agency, and that agency quotes them somewhere between twenty thousand and eighty thousand dollars. For the founder, that's a bet-the-savings decision. They have to be right before they spend, because being wrong costs them a car.

You don't have that constraint. The same build that's a financial cliff for them is a Saturday for you. And that's the real edge — not that you can build it cheaper, but that you can be wrong cheaply, over and over, until you're right. A non-technical founder gets maybe one or two swings before the money runs out. You get fifty. The developer's advantage was never the code. It was the number of experiments the code makes affordable.

So if developers can run fifty experiments to a founder's two, why does the founder with the spreadsheet keep landing the customer first? Because the developer spends all fifty swings on the build and none on the business. They take the one advantage they have — cheap experiments — and pour it entirely into making the experiment beautiful instead of running more of them. There are three specific ways this happens, and the cruel part is that all three look like good engineering. That's why they're so hard to catch in yourself.

Take the first one. The over-engineering trap. Every instinct that makes you good at your day job turns into poison in the first three months of a side project. At work, you design for scale because the system really will have a million users. You write tests because a bug ships to real people. You keep the schema clean because someone inherits this code in two years. Those are correct instincts in their home environment. Drop them into a product with zero users and they become a very sophisticated way of avoiding the only question that matters, which is whether anyone wants this at all.

Here's the part that's genuinely hard to swallow. The schema you carefully design up front, before you have a single customer, is almost guaranteed to be wrong. Not because you're bad at schemas — because you're guessing at how people will use a thing that doesn't exist yet. You're building for users you've never met, solving edge cases nobody's hit, optimizing a load you don't have. That's not responsibility. It's speculation wearing responsibility's clothes. And the only way to find the real schema is to ship the rough one and watch what actual humans do to it.

This is exactly what Pieter Levels was wrestling with when he set up his twelve-startups-in-twelve-months challenge. Levels is a Dutch indie developer who's built a string of profitable one-person products. And his diagnosis of his own problem is sharp. He wrote that the issue wasn't building — he could already build. As he put it, his challenge was to actually finish and launch his projects. He names two things that kill good ideas in technical people. One is that we never feel a project is "just done" — there's always one more feature, one more refactor. The other is the fear of failure, the dread of pushing your baby out into a world that might hate it. So you polish forever, because polishing feels like progress and launching feels like risk.

That fear is real, and it deserves some grace. The instinct to make it perfect before anyone sees it isn't vanity. It's pride in your craft, and craft is a good thing. But craft applied to the wrong stage of a project is just a more respectable form of hiding. Which brings us straight to the second trap.

The avoidance trap. Developers prefer to solve problems with code rather than with conversations — and the actual product spec lives in the conversations. Think about what's comfortable here. Code does what you tell it. It's logical, it's controllable, and when it doesn't work you can read the error message. Talking to a stranger about whether they'd pay for your idea is none of those things. They might say no. They might say something that means you wasted six weeks. So the developer retreats to the place where they feel competent, the editor, and tells themselves the talking can wait until the product is ready.

But that's backwards, and here's why it's backwards. You can't write the right code until you know what the right code is, and the only place that information exists is inside the head of the person who has the problem. Every hour you spend building instead of asking is an hour you spend guessing. The non-technical founder has no choice but to talk to people, because talking is all they've got. So they accidentally do the most important thing first. They learn what the product actually needs to be before they commit to building it. The developer does it last, if at all, and discovers the spec was wrong after the schema's already set in concrete.

So if a stranger stopped you right now and asked where the real product specification lives — not the one in your head, the real one — what would you say? … It lives in the gap between what you assume people want and what they tell you when you actually ask. And you can't refactor your way to it. You have to go get it from a human.

That leaves the quietest trap of the three, and the most expensive. The hobby mindset. It announces itself in a single innocent phrase: "I'll charge later." Get it working first, get some users, figure out the money once it's good. It sounds humble. It sounds like focus. And it reliably produces months of zero-revenue work that teaches you almost nothing about whether you have a business.

Here's why "I'll charge later" is so dangerous. It feels like deferring one decision, but it actually defers the only decision that gives you real information. Free users will tell you they love your product all day long. The compliment costs them nothing. The moment you ask someone to pay — even a tiny amount — you find out whether the problem is real or just mildly interesting. Patrick McKenzie, who's written more clearly about the business side of software than almost anyone and who built and sold his own small software products, makes a related point that cuts right to this. He argues engineers aren't actually hired to program things. They're hired to create business value — to add revenue or reduce costs. As he puts it bluntly, producing beautiful software is not a goal. Add revenue, reduce costs — those are the only goals.

Now, "charge from day one" sounds crass to a lot of developers, like you're being greedy before you've earned it. Flip that. Commercial intent isn't crass — it's the cheapest, fastest source of truth you have. A price tag is a question you ask the market, and the answer is the most honest signal you'll ever get. Deferring the price doesn't make you noble. It just blindfolds you for six months and calls it humility.

There's a real debate buried in here, and serious people land on different sides of it. Levels' whole twelve-startups challenge leans hard toward shipping fast and treating each launch as a quick market test — fail it in a month if it shows no signs of demand, move on. Other practitioners push back that you can't judge a market in thirty days, that real businesses take eighteen months to find their feet, and that a churn-and-burn cadence trains you to abandon things right before they'd work. Both are right about something. But for the specific person stuck six weeks into a codebase with zero users, the evidence favors Levels by a mile. The failure mode that's actually killing you isn't quitting too soon. It's never launching at all. When in doubt, ship — you can always go deep later on the one that gets traction.

So picture the two people from the start of this again. The developer with the gorgeous repo and the founder with the duct-taped spreadsheet. The founder isn't beating the developer at building. They're beating the developer at sequence. They put the business questions first — who has this problem, will they pay, where do I find them — and treated the build as the easy part to bolt on after. The developer did the exact reverse, and the reverse is fatal, because all the structural advantages only compound once there's a real customer to compound them around.

That's the flip this whole course delivers. Commercial intent first, code second. And once you make that flip, a different definition of winning opens up. You don't need a venture-scale rocket ship. A one-person software business doing three to ten thousand dollars a month, mostly running on automation, is not a consolation prize. It's a strategy — a deliberately small, deliberately profitable thing that one person can actually run in the hours around a day job. Small isn't what you settle for when the big dream fails. For a solo developer, small is the smart play from the start.

Strip it all back and three things are doing the real work here. Your edge isn't building cheaper — it's being able to afford fifty wrong guesses where a founder gets two. The three traps that sink you all look like good engineering, which is exactly why they're invisible from the inside. And the fix isn't more discipline or more code; it's changing the order — business questions before build, revenue as the first metric instead of the last.

Here's the one line worth carrying out of this: the ability to build was never the hard part, and treating it like the hard part is precisely why the spreadsheet keeps winning. So the very first question — before the schema, before the repo, before the framework debate — is the one nobody technical wants to start with: what are you actually going to charge for, and who, exactly, is going to pay? Which means the next thing to get right isn't the idea at all. It's the container you pour the idea into — the business model — because the same idea can become five completely different businesses depending on how you decide to charge.

3Solo online business models for developers

There's a developer who built something genuinely clever — a tool that takes a messy CSV and turns it into a clean, deduplicated database in one command. He spent six weeks on it. The code is good. The README is beautiful. And around month three, he's stuck, and he can't figure out why. He keeps tweaking the product. He adds a feature. He rewrites the parser. Nothing moves. No customers, no momentum, just a slow grinding sense that the thing isn't working.

Here's what he's missing, and it's the thing almost every developer misses at exactly this point. His problem isn't the idea. The idea is fine — people really do have messy CSVs. His problem is that he never decided how this thing makes money. Is it a subscription? A one-time tool? A consulting service where he cleans the data for them? An open-source library that builds his reputation? He never chose. He just built, and assumed the money question would sort itself out later. It won't. That's the wall. And the wall has a name — it's not the wrong idea, it's the wrong model, or more often, no model at all.

So this is the distinction that unlocks the whole section. There's the idea — the thing you solve. And there's the business model — how you charge for solving it. Those are two completely different decisions, and developers collapse them into one. Think of it this way. The idea is what goes in the container. The model is the container itself. Same contents, five very different shapes — and the shape you pick determines almost everything about how your life looks for the next year.

Take that CSV-cleaning idea and pour it into five different containers. As a subscription tool people pay ten dollars a month to use — that's micro-SaaS. As a paid course that teaches data engineers how to do it themselves — that's an info product. As a service where you personally clean clients' data for two grand a project — that's freelancing. As an API other developers wire into their own apps — that's a developer tool. As a blog and a YouTube channel about data cleaning that makes money from sponsors and affiliate links — that's content. Same idea. Five businesses that feel nothing alike to run. The mistake is thinking the idea was the hard part. The model is where the real choice lives.

Before walking through those five, there's a constraint you have to be honest about, because it quietly decides which models are even available to you. You have a day job. You have something like ten to fifteen hours a week, and they're tired hours — evenings and weekends, after you've already spent your good brain on someone else's code. That's your real budget. Not money. Time. And the thing nobody tells developers is that the five models have completely different time profiles. Some pay you fast and demand your hours forever. Others pay you nothing for months and then keep paying after you stop working. Matching the model to the hours you actually have — that's the whole game, and getting it wrong is how people burn out before they ever see a dollar.

There's a clean way to sort this. Some models are front-loaded — you do a big chunk of work up front, then it earns with little ongoing effort. Other models are continuous-effort — the money only flows while your hands are on the keyboard. Hold that fork in your head, because it's the sharpest lens for the tour that's coming. Front-loaded buys you leverage but makes you wait. Continuous-effort pays now but caps what you can earn. Almost every honest trade-off in this section is some version of that one.

Start with micro-SaaS — a small software product people pay for monthly. This is the one the indie hacker world won't shut up about, and for a real reason. Patrick McKenzie — who goes by patio11 online and ran a string of small software companies before joining Stripe — put it bluntly when reflecting on his appointment-reminder business: SaaS is the best business model ever for software. The reason is recurring revenue. You're not re-selling from zero every month. But here's the honest part the hype skips. Micro-SaaS is the most front-loaded model on the list. You build the product, you market it, you support it — and the revenue is slow at the start and small at first. The deeper mechanics of how that recurring money compounds get their own treatment later in this course. For now, just file it under: highest ceiling, slowest start, demands the most patience. It thrives for the developer who can stomach months of near-zero and keep going. It reliably crushes the person who needs validation — or income — this quarter.

Next, info products — courses, ebooks, templates, anything you make once and sell many times. This is front-loaded in a different way. You write the course, then you sell it without rebuilding it each time. The catch is that you're not really selling software anymore, you're selling teaching, and the developers who do well here are the ones who already know something other developers would pay to learn. If you're the person on your team who finally understood Kubernetes, or who can explain auth without making people cry, there's a product in your head. The person who struggles here is the developer who has no audience and no track record — because an info product with nobody who trusts you is just a PDF nobody buys.

Now the one that pays fastest, and it's worth pausing on because it changes how you should think about the whole journey. Freelancing and consulting — selling your hours to clients. This is the shortest path to your first dollar, full stop. You can land a paying client this week. No product to build, no audience to grow. You already have the skill people pay for. But — and this is the trade-off that defines it — freelancing is pure continuous-effort. The money stops the second your hands leave the keyboard. There's no asset accumulating while you sleep. You're trading time for money, and there are only so many hours in a tired evening, so the ceiling is your own calendar.

Here's the move, though, and it comes straight from Rob Walling — who founded MicroConf and TinySeed and has watched, by his own count, thousands of bootstrappers launch products. Walling's "stair step" framework says something most people get backwards. Don't treat freelancing as the destination you're stuck in. Treat it as the bridge. Use the fast cash from consulting to buy yourself runway — and crucially, Walling argues your first product shouldn't even be a standalone SaaS. He says don't start there. Start with something simpler with built-in discovery — a WordPress plugin, a Shopify app, a Heroku add-on — small to build, cheap to buy, and you get found through the marketplace instead of having to market from scratch. So if someone stopped you here and asked how a developer should actually sequence this — what would you say? … Freelance for the cash. Ship a small marketplace add-on for the practice and the recurring revenue. Then attempt the bigger SaaS once you've learned the mechanics on something low-stakes. The trap Walling names directly is abandoning what's already working to chase a bigger, sexier challenge before you're making enough to own your time.

That's three. The fourth is developer tools and APIs — products where your customer is another programmer. Think a hosted API, a library, a service that other developers wire into their own code. This is a special case worth its own mention because of who's buying. Your customers are exactly like you. They evaluate on technical merit, they read your docs instead of your marketing, and they spread the word through GitHub and integrations rather than ads. Justin Jackson — the co-founder of the podcast host Transistor — tells the story of Taylor Otwell, creator of the PHP framework Laravel, who built a deployment tool called Forge for the developers already using his framework. Jackson quotes Otwell saying he had no idea what to expect, but within a month Forge had about a thousand customers. The lesson Jackson draws is sharp — there are over five million PHP developers, and to get a thousand new customers a year, Otwell only needs to attract two-hundredths of one percent of them. Fishing is easy, Jackson writes, when your pond is full of fish. Developer tools thrive for the person who has a real audience or a real ecosystem to build into. They struggle badly for the developer building a tool for an audience they don't actually belong to.

And the fifth — content and audience. A blog, a YouTube channel, a newsletter that earns through sponsorships and affiliate links. This is the slowest-burning, most front-loaded model of all. You can write for a year and make pocket change. But content, done right, becomes the distribution engine for every other model on this list. McKenzie built his entire reputation — and the audience that bought his later products — partly on the back of writing. The honest take: pure content as a standalone income model is brutal and slow for a solo developer, and most people quit before it compounds. But content as a layer underneath one of the other four? That's where it earns its keep.

So here's the contested edge, and it's a real argument among people who've done this. The standalone-SaaS crowd — the Twitter founders shipping a SaaS in twelve weeks — say go big, build the recurring-revenue machine from day one, because that's where the ceiling is. Walling pushes back hard, and his track record across thousands of founders makes the case persuasive: most people who start with standalone SaaS as their first product fail, not because the model is bad, but because it stacks every hard problem at once — building, marketing, and supporting a complex product while you have zero experience at any of it. The evidence leans Walling's way. Start on a stair you can actually climb. The model with the highest ceiling is not the model with the best odds for your first attempt.

Strip all of this down and a few things are doing the real work. The idea and the model are separate decisions, and the model is the one you keep skipping. Your true budget isn't money, it's ten or fifteen tired hours a week, so match the model to the time you actually have. Front-loaded models — SaaS, info products, content — make you wait but build an asset. Continuous-effort models — freelancing especially — pay now but cap out at your own calendar. And the smartest sequence for most developers isn't to pick one and marry it; it's to use the fast one to fund the patient one.

The honest one-liner to carry out of here: the developer who's stuck at month three almost never has an idea problem — they have a container problem, and they never noticed they were supposed to choose the container. Pick it on purpose, match it to your hours, and the wall stops being a wall. Of the five, micro-SaaS is the one everyone fixates on and the one most people misjudge — so the next thing worth understanding is exactly how that recurring-revenue math works, and why it's both more powerful and slower than the hype admits.

4How Micro-SaaS and Recurring Revenue Work for Solo Developers

On the first of January, the developer who sold a fifty-dollar product wakes up to a number that should terrify them. The number is zero. Everyone who bought last year already bought. The sale they made on December 30th does nothing for them on January 2nd. They have to go find a brand-new human, convince them, close them — and the moment that's done, they're back at zero again, climbing the same hill, forever.

Now picture the developer who did something that looks almost identical from the outside. Same product, roughly. But instead of charging fifty dollars once, they charged ten dollars a month. They've got eighty-three subscribers. That's eight hundred and thirty dollars a month — call it about ten grand a year, same as five hundred one-time fifty-dollar sales. But here's the thing that changes everything. On January first, the first developer is at zero. The second developer is at eight hundred and thirty dollars before they've done a single new thing. Their customers carried over. Their work last year is still working this year.

That gap — between starting from zero and starting from where you left off — is the entire reason micro-SaaS dominates the indie-developer conversation. And this section is about what's actually true underneath that hype, because the arithmetic that makes it beautiful is the same arithmetic that makes it brutal if you get one number wrong.

So let's start with the beautiful part, because it's real. The technical name is monthly recurring revenue — MRR — and Baremetrics, the analytics company that built its whole business around measuring this stuff, defines it simply as the money you get from your customers every single month from subscriptions. Not setup fees. Not a one-time consulting gig. The recurring part. And the magic of recurring revenue isn't that it's bigger — it's that it stacks.

Think about it like a savings account versus a paycheck you spend the day you get it. A one-time sale is a paycheck. It hits, it's gone, you go earn the next one. A subscription is a deposit that keeps earning. Land ten customers in March, and if they stay, those ten are still paying you in April when you land ten more. Now you've got twenty. Add ten in May, and you've got thirty, and you didn't have to re-sell the first twenty. That's the flywheel. Each month's work doesn't replace last month's — it sits on top of it. Sell that fifty-dollar product to ten new people every month and you make the same five hundred bucks in December that you made in January. Sign up ten new ten-dollar subscribers every month, and by December you're at twelve hundred dollars a month, and climbing, with the exact same amount of effort. Same hustle, wildly different shape.

Here's where most people stop reading the Twitter threads — and it's exactly where the interesting part begins. Because that flywheel has a hidden counterforce, and it's the thing that separates people who actually run a micro-SaaS from people who tweet about wanting to. The word is churn.

Churn is the rate at which your customers cancel. And every metrics resource that takes this seriously — Baremetrics again puts it right at the center of their guide — treats churn as the one number that quietly governs whether your business is alive or dying. Here's why it matters so much more for subscriptions than for one-time sales. When you sell something once, a refund is a bad day. When you sell a subscription, a cancellation is a leak in the boat. Because remember the whole point of the flywheel was that your customers carry over. Churn is the carry-over breaking down.

Picture it concretely. You've got a hundred subscribers, and every month five percent of them cancel. Doesn't sound like much, right? Five people. But that means every single month, before you grow at all, you have to find five new customers just to stand still. Stay with this for one more step, because it's the part that catches everyone. Get to two hundred subscribers at that same five percent, and now you're losing ten a month. At four hundred, you're losing twenty. The bigger you get, the harder you have to run just to stay in place. That's why people say the real product of a subscription business isn't the sign-up — it's the second month. Every customer you keep is revenue you don't have to re-earn. Every customer who leaves is a hole you have to refill before you've grown an inch.

So here's a gut-check before we move on. If a friend stopped you and asked why eighty-three subscribers paying ten dollars is fundamentally different from selling to a thousand people once — what would you say? … It's not the money. The money can be identical. It's that one of them keeps paying while you sleep, and the only thing standing between you and that is whether they cancel.

Which brings us to the lie the timeline tells. If you spend any time in the indie-hacker corner of the internet, you'll see a very specific story on repeat: someone built a thing in a weekend, launched it, and hit ten thousand dollars a month by week twelve. Those stories are real — they're just not the median, and they're not even close. The honest number, the one practitioners who've actually done this will tell you, is six to eighteen months to meaningful recurring revenue. Not six to eighteen months to a launch. Six to eighteen months to the point where the MRR is worth talking about.

And once you understand the flywheel, that timeline stops feeling discouraging and starts making perfect sense. Of course it's slow at the start. The whole power of recurring revenue is that it compounds — but compounding is brutal early and gorgeous late. The first few months you're adding customers to a tiny base, so the absolute numbers look pathetic. Ten new subscribers on a base of five is doubling. Ten new subscribers feels like nothing emotionally, and looks like nothing on the dashboard. This is the part that quietly kills more micro-SaaS projects than any technical problem ever will — the founder gets to month four, sees a hundred and twenty dollars a month, decides it's a failure, and walks away right before the curve was about to bend. The compounding hadn't kicked in yet. It almost never has by month four.

So the discipline here is brutal and simple: you have to judge the business by the slope, not the height. Is the line going up month over month? Is churn under control? Then the height in month four tells you almost nothing. There's nothing wrong with finding that maddening, by the way — running a business on a compounding curve fights every instinct that wants results now. The people who win at this just learned to read the slope instead of the number.

Now, the single decision that determines whether that slope ever bends at all isn't your code. It isn't your design. It's your niche. And the principle that working solo founders keep returning to is almost backwards from what your gut wants: tighter is better. Narrower. More specific. The more painfully small the audience, the better your odds.

This is so counterintuitive that it's worth slowing down on, because every developer's instinct is to build for the biggest possible market. More potential customers, more money, right? Wrong, and here's the cleanest way to see why. Seth Godin — the marketer who's written this idea up better than anyone — calls it the minimum viable audience. The smallest group that could possibly sustain your work. And his argument is that when you pick the smallest viable group and decide you have to delight them because you've got no one else, two things happen. You stop compromising, so the product gets sharper. And, in his words, you discover it's a larger group than you expected, and they tell the others. Aim for mass, Godin warns, and mass is just another word for average — and average gets you nowhere.

But there's a second reason tighter wins that's even more important for a solo developer, and it's the one nobody puts on the motivational poster. A tight niche is a distribution strategy hiding inside the product. Here's what that means in plain terms. If you build a generic project-management tool, your customers are… everyone. Which means they're nowhere. There's no single place on the internet where "everyone who manages projects" gathers, so you have no idea where to go find them. But build a scheduling tool specifically for solo music teachers, and suddenly you know exactly where they are. There's a subreddit. There's a Facebook group. There's a forum. There are three podcasts. You can find every one of your potential customers because they already congregate around their shared, specific problem. The narrowness of the niche is what makes the customers findable — and findable is the whole ballgame when you're one person with no marketing budget.

That's the test you should run on any micro-SaaS idea before you write a line of code. Not "is the market big enough." Ask instead: can you name the exact place your customers already gather? If you can point at a specific community, a specific forum, a specific conference, you have a niche. If your answer is "well, basically anyone who…", you don't have a niche — you have a fog. And you cannot do solo distribution into a fog.

Here's where it gets genuinely interesting, though, and it ties back to the very first developer we met. MicroConf, the community that's been surveying bootstrapped SaaS founders since 2011 — they run the State of Independent SaaS report, the main benchmark for this whole world — has been watching these businesses for over a decade. And the picture that emerges from real bootstrapped founders isn't the rocket ship. It's something steadier and, honestly, more achievable: real businesses, run by one or two people, often serving niches a venture capitalist would laugh out of the room precisely because they're too small to matter to anyone but the person running them.

Which surfaces the last thing, and it's the one that quietly reframes the whole game. Solo micro-SaaS has a ceiling. As one person — with a day job, ten or fifteen hours a week, no team to absorb the work — you are not building the next billion-dollar company. The math doesn't support it and the time doesn't exist. A realistic, healthy outcome is a few thousand to maybe ten thousand dollars a month, mostly automated, run in the gaps. And here's the reframe: that's not the consolation prize. That's the prize.

This is where the developer's instinct fights them again. We're trained to optimize, to scale, to think a plateau means you failed to grow. But a micro-SaaS that settles at five thousand dollars a month with low churn and a few hours of upkeep isn't a stalled startup — it's a working machine that pays you while you do other things. The non-technical founder from the start of this course, the one who landed a paying customer with a Google Sheet, would trip over themselves to build that. The flywheel doesn't need to spin to a billion dollars to change your life. It just needs to spin past zero, and keep spinning, while you sleep.

So strip all of it down and three things are carrying the weight. Recurring revenue compounds because your customers carry over — that's the entire edge over one-time sales. Churn is the counterforce, and the bigger you get, the more it eats, so keeping customers matters more than finding them. And the niche has to be tight enough that you can name the exact place your customers already gather — because tightness isn't a limitation, it's how a solo founder gets found at all. Plateauing at a comfortable side income isn't the business failing. For most people doing this, it's the business succeeding exactly as designed.

But all of this assumes you already know what to build — that you've got a problem worth charging ten dollars a month to solve. And that turns out to be the hardest question in the whole course, because the most plausible-sounding ideas are usually the ones nobody actually wants.

5Finding Business Ideas for a One-Person Online Business

Paul Graham wrote a line that should be tattooed on the inside of every developer's eyelids before they open a code editor. The best startup ideas, he said, are the ones you'd build for yourself, because you actually live the problem. Not the ones that sound like a startup. The ones that scratch an itch you scratch every single day anyway.

That sounds almost too simple to be useful. But it's the difference between a product someone pays for and a product nobody remembers existed. So here's the thing this whole section is built around: the hardest part of finding an idea isn't creativity. It's honesty — being honest about which problems actually hurt enough that someone would pay to make them stop.

Let me name the trap first, because it's the one that catches smart people. Call it the sitcom idea. You know how in a sitcom, a character announces they're starting a business, and the business sounds completely plausible? An app that helps dog owners find dog parks. A platform connecting local chefs with dinner parties. A marketplace for vintage furniture. It sounds like a startup. It has the shape of a startup. And in the show, nobody ever asks the only question that matters — does anyone actually want this badly enough to pull out a credit card?

That's the trap. Sitcom ideas are seductive precisely because they sound reasonable to a room full of people who don't have the problem. They pass the dinner-party test and fail the market test. And developers are unusually vulnerable to them, because a developer can hear "marketplace for vintage furniture" and immediately start picturing the schema, the auth flow, the payment integration. The buildability of the thing tricks you into thinking the demand is there too. It isn't. Buildable and wanted are completely different questions.

So how do you tell a real problem from a sitcom problem? The cleanest test comes down to one distinction — interest versus urgency. A problem people are interested in is one they'll happily talk about. They'll nod along. They'll say "oh that's cool, I'd totally use that." A problem people will pay for is one they're already losing time, money, or sleep over right now. They've already cobbled together an ugly workaround. They're already paying for something that half-works. The tell isn't enthusiasm — enthusiasm is cheap and it lies. The tell is that they've already spent something to solve it.

Stay with that for one more step, because it's the most counterintuitive part. The loudest signal of a real problem is almost never excitement. It's irritation. It's the spreadsheet someone maintains by hand every Friday and complains about. It's the three browser tabs and a Notion doc someone duct-tapes together because no single tool does the job. People are interested in a thousand things. They will pay to make a much smaller number of things go away. Your job is to find something in that second, smaller pile — and resist the gravitational pull toward the first.

Which raises the obvious question: where do you find a pile like that? And the answer brings us back to Graham's line — you start with your own friction. This is the part developers consistently underrate, because it feels too easy to count. You live a professional life full of annoyances you've stopped noticing because you've normalized them. The deploy step that always breaks. The report you regenerate by hand every Monday. The internal tool your team keeps rebuilding badly at every company you've worked at. Those normalized annoyances are gold, because if they bug you, they bug the thousand other people doing the exact same job.

Here's the part nobody mentions about dogfooding — building the thing you yourself need. It doesn't just give you a good idea. It gives you a customer you never have to go find, interview, or guess about: you. When you live the problem, you don't need a focus group to write the spec. You already know which features are load-bearing and which ones are decoration, because you feel the difference every day. That's a brutal advantage over the founder building a vintage-furniture marketplace they personally have zero use for, who has to reverse-engineer what their users want from the outside.

The cleanest illustration of this comes from a story Justin Jackson tells about Taylor Otwell, the developer who created the PHP framework Laravel. Otwell's first product was an invoicing app. He built it without any particular market in mind — and it went nowhere. It didn't get much traction at all. Then he built something completely different: a tool called Forge, aimed squarely at the PHP developers already using his framework. And as Jackson recounts, Otwell said he had no idea what to expect before launching it — but within a month, Forge had about a thousand customers.

Now sit with the difference between those two launches, because it's the whole lesson in miniature. Same person. Same skills. Same amount of code, roughly. One flopped, one took off in a month. The invoicing app was a sitcom idea — plausible, buildable, aimed at nobody in particular. Forge was aimed at an audience Otwell knew intimately, full of people who already trusted him, already had the problem, and were already gathered in one place. He wasn't guessing what they wanted. He was one of them.

And that points to the second unfair advantage developers sit on top of without using it — domain knowledge. Not just your technical skill. Every job you've held, every industry you've shipped software into, every weird vertical you've learned the jargon of — that's a map of problems most people can't even see. The developer who spent three years building logistics software understands warehouse pain that no outsider could fake. The one who worked in healthcare knows exactly which compliance hoops make everyone's life miserable. That knowledge is a moat, and most developers leave it sitting there unguarded while they chase some generic to-do app instead.

There's a subtle point underneath this that Justin Jackson keeps hammering, and it's worth pausing on because it contradicts the romantic version of startups. The market matters more than the idea. He quotes Vincent Woo of CoderPad putting it bluntly — that a good market excuses poor execution and even total ignorance, while a missing market means it doesn't matter how brilliantly you build. The fish-in-a-pond image Jackson uses is exactly right: fishing is easy when your pond is full of fish. Otwell didn't need to be a marketing genius. He'd dropped his line into a pond holding more than five million PHP developers, and to land a thousand customers a year, he only needed to reach two-hundredths of one percent of them.

Now, here's a place where serious people genuinely disagree, and it's worth knowing which side has the stronger case. Graham's camp says start with your own problem — solve what you personally feel, and trust that others feel it too. But Jackson, and the people he cites, lean harder on market size and momentum: pick a big, growing pond first, then find a problem inside it. These can pull in opposite directions. Your personal problem might live in a tiny pond. And the conventional indie wisdom you'll hear most often — "just scratch your own itch" — quietly skips the question of whether anyone else is standing in the same puddle.

The honest synthesis, and the one the evidence actually supports, is that you need both, in a specific order. Start with your own friction, because that's where you have the unfair knowledge and the built-in first customer. But then immediately run it through Jackson's market test — is this pond big enough, and is there real demand swimming around in it? Otwell's invoicing app probably had a market. What it didn't have was Otwell's connection to that market. Forge had both: a problem he lived, inside a pond he already swam in. That overlap — your problem and a real market — is the bullseye. The puddle nobody else cares about and the giant pond you have no connection to are both ways to lose.

Seth Godin sharpens this with an idea he calls the minimum viable audience — the smallest group that could possibly sustain your work. His argument flips the usual instinct on its head. If you aim for the mass market, for average, you'll build something average, and average gets you nowhere. But if you pick a small, specific group and obsess over delighting them, two things happen — you discover the group is larger than you thought, and they tell the others. Otwell's PHP developers were exactly that. A group everyone else had written off as uncool, burnt out, hating their jobs. Pent-up demand nobody was serving. He served them, and they brought their friends.

So if a friend stopped you right now and asked how to tell whether an idea is worth building — what would you say? … Not "does it sound like a startup." Not "could I build it." The question is whether someone, somewhere, is already losing something over this problem right now, and whether you happen to know that someone well enough to be one of them.

Strip all of this down and three things are doing the real work. First, build for yourself, because living the problem hands you a spec you can't fake and a first customer you don't have to find. Second, sort ruthlessly for urgency over interest — people are interested in everything and pay for almost nothing, so chase the irritation, not the enthusiasm. And third, aim your own friction into a pond that actually has fish, using the domain knowledge that being a working developer already gave you for free.

That last piece is where being technical stops being just a way to build cheaply and starts being a genuine moat. When you build for an audience you already understand — developers like Otwell's, or whatever vertical your day job dropped you into — your technical fluency isn't a commodity. It's the thing that lets you see and solve a problem outsiders can't even name. That's the idea worth building: the one where you're not guessing about the customer, because the customer is someone like you.

Of course, "I'm pretty sure people want this" is still a hunch — and a hunch that's cost developers months of building the wrong thing more times than anyone can count. Which is why the next move isn't to open your editor. It's to find out, for cheap, whether you're right.

6How to Validate a Business Idea

This course opened with a number from CB Insights: around 42% of startup post-mortems cite "no market need" as the cause of death. Section 4 was about finding an idea where that need is real — distinguishing urgency from interest, workarounds from wishful thinking. This section is about what you do before you write a line of product code to confirm you've actually found one.

The trap is specific to people who can build. When a non-technical founder has an idea, building it is expensive and scary, so they're forced to ask "does anyone actually want this?" before they commit. For a developer, building is the fun part and the cheap part. So the instinct is to skip the scary conversation and go straight to the keyboard, because the keyboard is home. That instinct feels like productivity. It's actually the most expensive form of procrastination there is. You're avoiding the one question that determines everything, by doing the one thing you're already good at.

So let's talk about what validation actually is, because the word gets thrown around until it means nothing. Validation is not "asking your friends if they'd use it." It's not building the thing and seeing if anyone signs up — that's not validation, that's the gamble you were trying to avoid. Validation is a set of cheap experiments you run before you write product code. Each one is designed to get you a little closer to the truth about whether real people will pay.

The framework underneath all of this comes from Eric Ries and his 2011 book The Lean Startup. The core engine he describes is a loop: build, measure, learn. You build the smallest possible thing that tests an assumption. You measure what real people do when they meet it. Then you learn something you couldn't have known from your chair — and you feed that back into the next, smarter version of the thing. The key word in Ries's vocabulary is validated learning. Not learning in the abstract, but a specific claim about your customers that you've now confirmed or killed with evidence. The loop is fast on purpose. The faster you can run it, the cheaper each lesson is.

Notice what's smallest in that loop. It is almost never code. The smallest possible thing that tests "will a freelance bookkeeper pay $30 a month to automate client reminders?" is a conversation with a freelance bookkeeper. So that's where we start.

The first and cheapest experiment is the customer-discovery conversation. This is the part developers dread most, and the part that matters most, because the actual product spec lives in those conversations and nowhere else.

Here's the mistake almost everyone makes the first time. They sit down across from a potential customer and say, "I'm building a tool that does X — would you use it?" And the person, being polite, says, "Yeah, sounds useful." You walk away glowing. You've learned nothing. You asked a leading question, you got a courtesy answer, and you've mistaken it for a signal.

The fix is to stop talking about your idea entirely. Talk about the person's life instead. Ask about the past, not the hypothetical future. "Walk me through the last time you had to chase a client for payment." "What did you do? How long did it take? What did you use?" People are unreliable narrators about what they would do, and surprisingly reliable about what they actually did last Tuesday. Real behavior is data. Predicted behavior is fiction.

You're listening for two things. Is this an urgent, painful, recurring problem — or a mild annoyance they've already made peace with? And have they spent money or real effort trying to solve it already? Someone who's duct-taped three tools together and pays for two of them is telling you something a hundred polite "sounds useful" responses never will. The strongest signal in any of these conversations is evidence that the person has already paid to make the pain go away.

This feels brutally inefficient. Ten conversations to maybe sharpen one idea, when you could have written half the app in that time. But every hour here is buying you out of months of building the wrong thing. That's the trade.

The second principle reframes the whole job: in the validation phase, you should deliberately do things that don't scale. Paul Graham made this the title of one of his most-cited essays, and the examples are worth holding onto because they sound almost embarrassing.

When Stripe was getting started, the founders didn't send a signup link and wait. When someone expressed even mild interest, they'd say "give me your laptop" and install the product on the spot. The Collison brothers called it the "Collison installation." It does not scale to a thousand users. That was never the point. The point was to remove every ounce of friction between a real human and the actual product, and to watch what happened in the room.

Airbnb is the other classic story. The founders couldn't figure out why listings in New York weren't converting. So they flew to New York and knocked on doors. They photographed apartments themselves, talked to hosts, learned that the listing photos were terrible. No dashboard would have told them that. They had to be in the apartment.

For a solo developer, this is liberating, because it means your first version doesn't have to be software at all. If your idea is a service that generates monthly SEO reports, you can generate the first ten by hand in a spreadsheet and email them. If your customers are happy and keep paying, you've validated demand for the outcome — and you now know exactly what to automate. This is the concierge approach: you personally are the product for a while. It's slow, it's manual, and it tells you the truth.

Once you've talked to people and maybe hand-delivered the outcome a few times, there are a few standard experiments that test demand with little or no product code.

The first is the landing page with a fake door. You build a single page describing the product as if it already exists, with one clear call to action — "Start free trial" or "Get early access." You send a trickle of real traffic to it, from the communities your niche already gathers in. Then you measure. How many people who read it actually clicked? A click on a button for a thing that doesn't exist yet is a small, honest vote. A page that gets a hundred visitors and two clicks is telling you something you needed to hear now rather than in six months.

The second, stronger experiment is the pre-order. Asking someone to enter a card before the product exists is a far higher bar than an email address, and that's exactly why it's valuable. Money is the only completely unambiguous signal. People will join a waitlist for almost anything. They will pre-pay for very few things. If you can get even a handful of pre-orders, you've moved past interest into commitment.

The third is the manual-delivery experiment we just covered — doing the work by hand for your first customers before building the system that does it automatically.

Notice the ladder here. A conversation is the cheapest experiment and tells you whether the problem is real. A landing page tests whether your pitch lands. A pre-order tests whether people will actually pay. Each rung costs a little more effort and buys you a stronger signal. You climb it before you write the product, not after.

Here's the retrieval moment. Picture someone who's spent three weekends building a working prototype, posted it on Twitter, and gotten forty likes and zero signups. Is that validation, or is it the gamble?

It's the gamble. Likes are not money. Building the whole thing and watching for signups is precisely the expensive bet validation exists to avoid — you've spent the costly resource, your time, before testing the cheap question. The likes are a vanity metric dressed up as a signal. Compare that to someone who had ten conversations, hand-delivered the result to three people, and collected two pre-orders before opening their editor. Less to show off. Far more certainty.

So, the recap. If you only run three experiments before building, run these, in this order. First, ten customer-discovery conversations about what people actually did, not what they'd hypothetically do — you're hunting for urgent, recurring pain that someone has already spent money on. Second, a landing page with a real call to action, fed real traffic, measured honestly. Third, a pre-order or a hand-delivered concierge version that asks for money or serious commitment. Each one is cheap. Each one is reversible. And together they buy you out of the single most common way these businesses die — building something nobody wanted.

The keyboard will still be there next week. The conversations have to come first.

7How to Build an MVP Without Over Engineering

In the introduction we met Pieter Levels — the Dutch developer who announced he'd launch twelve startups in twelve months, not because he couldn't build, but because he couldn't stop building and start shipping. That's the developer paradox this section is built around, and by now you've seen it show up in every trap we've named: the over-engineered schema, the feature added before anyone asked, the beautiful README on a product with zero customers.

So the question here isn't "how do I build an MVP" — you already know how to build. The question is how to build less than you're capable of, on purpose, and know exactly when to stop holding back.

Start with the trap that feels the most responsible, because that's what makes it dangerous. Building for scale before you have users. You sit down to design the database schema, and your training kicks in. You normalize the tables. You think about what happens at a hundred thousand users. You add indexes for queries you haven't written yet, for a load pattern you've never observed. It feels like diligence. It feels like the difference between a professional and a hobbyist. Here's the uncomfortable part. It's speculation dressed as responsibility. You are making detailed engineering decisions about a future that doesn't exist yet, based on guesses about users you've never met. And the schema you design upfront will look nothing like the one you actually need — because you don't yet know what the product is. You'll learn that from real people using a rough version, and when you learn it, half your beautiful schema becomes the thing you have to migrate away from. You didn't save time by planning. You spent time building a cage you now have to escape.

So what does the alternative look like in practice? Levels has written openly about his MVP workflow, and the striking thing is how unimpressive it sounds. He uses a single boring stack he already knows. He skips the framework debates. He writes plain server-rendered pages, often one file, no separate front-end app, no microservices, no Kubernetes. Nomad List, which grew into a real business making real money, started as a public Google Sheet. The first version of a Levels product is frequently something he ships in a few days, embarrassingly rough, and puts in front of strangers immediately.

The point of this isn't that his stack is correct and yours is wrong. The point is the ordering of his decisions. He optimizes for one thing first: how fast can a real person touch this and tell me whether it matters? Everything else — clean architecture, the right database, the abstraction that would make future features easier — waits until there's a future worth building toward. He's not being lazy. He's refusing to spend his most expensive resource, time, on questions the market hasn't asked yet.

The twelve-startups-in-twelve-months experiment was the cure he prescribed himself for exactly the disease we're describing. When you commit to shipping something every single month, you physically cannot polish. The deadline strips perfectionism out of you. You learn, fast and a little painfully, that most of what you'd have agonized over didn't matter, because most of the products didn't find users — and the ones that did told you what to fix far better than you could have guessed. The experiment isn't a productivity stunt. It's launch-anxiety therapy. It teaches your nervous system that shipping a rough thing is survivable, and that the feedback on the other side is worth more than the polish you skipped.

Let's get concrete, because "build less" is useless advice without a list. Here are the professional instincts to deliberately switch off in the first weeks of a side project.

Switch off building for scale. You already know why. You have no users to scale for. The simplest thing that works for ten people is correct, even if it would fall over at ten thousand. You will never have that problem in the timeframe that matters, and if you do, it's the best problem you'll ever get to solve.

Switch off exhaustive testing. This is the one that makes good engineers flinch, so be precise about it. You are not abandoning quality forever. You're recognizing that a comprehensive test suite is insurance against regressions in code you intend to keep — and in the first weeks, you intend to throw most of this away. Writing thorough tests for a feature you'll delete next week is polishing a part you're about to scrap. Test the one path that takes money or breaks loudly. Leave the rest.

Switch off documentation. Not your customer-facing docs — those can matter for sales. Internal documentation, architecture decision records, the careful comments explaining a design you'll have abandoned by month two. There's no team to onboard. You're the only reader, and you have the whole thing in your head right now.

Switch off the abstraction reflex. The urge to extract the reusable component, to generalize the function so it handles the case you can imagine arriving someday. Premature abstraction is the same speculation as the premature schema, just smaller and sneakier. Write the dumb, specific, duplicated version. You can extract the pattern once you've seen it three times in reality instead of imagining it once.

Notice what these have in common. Every one of them is a cost you pay now to buy a benefit later — and "later" is exactly the future you can't yet predict. In normal professional work, that future is real and the trade is wise. In a zero-customer side project, you're paying real present cost for an imaginary future return. That's the whole trap in one sentence.

Now the part most "just ship it" advice skips, and the part that matters most. These instincts aren't wrong. They're badly timed. So when do you turn them back on?

Here's the question worth holding in your head: what is the one signal that tells you to start engineering properly again? Take a second with it before reading on.

The answer is paying customers. Not signups. Not stars. Not someone telling you it's a great idea. Money changing hands. The moment people are paying you, the future you were speculating about stops being imaginary and starts being a thing you owe them. Now scale matters, because losing their data or their access costs you real revenue and trust. Now tests matter, because a regression breaks something someone is paying for. Now that abstraction earns its keep, because you've seen the real pattern in real usage.

The signal is beautifully clean because it's binary and external. You don't have to guess whether you've "validated enough" or argue with yourself about readiness. Either money is arriving or it isn't. While it isn't, you stay scrappy. The day it starts, you've earned the right to engineer — and now you're engineering toward a future that actually exists, paid for by the people who proved it does. The migration you do at that point isn't escaping a cage. It's renovating a house someone's living in.

One more shift, and it cuts in your favor. The build phase that this whole section is trying to shrink has gotten dramatically cheaper in the last couple of years. AI coding tools now absorb a large slice of the rote work — scaffolding the app, wiring up the boring CRUD, drafting the landing page, handling the integration glue you've written a hundred times.

Be careful about what this actually means, though, because it's easy to misread. It does not mean you can now afford to build more. The temptation is to point AI at your over-engineered vision and finally build the whole thing. That's the trap with a faster engine bolted on. What cheaper building actually does is lower the cost of each experiment. If shipping a rough MVP used to take you three weekends and now takes one, the right response isn't to build something three times bigger. It's to run three times as many experiments — three rough swings at finding a problem people pay to make go away. The bootstrapped-founder community has started calling this the AI-powered solopreneur for a reason: the leverage isn't in building grander things, it's in building disposable things faster and learning from more of them. Cheaper experiments, more shots on goal. That's the edge, if you spend it on the right thing.

So, the short version. You already know how to build; the skill this section asks for is building less than you can, on purpose. Building for scale before you have users is speculation dressed as responsibility, and the schema you lovingly design upfront is usually the cage you'll have to escape. In the early weeks, switch off four instincts — scaling, exhaustive testing, internal documentation, premature abstraction — not because they're wrong, but because they're badly timed. The single signal that tells you to switch them back on is paying customers, the only future concrete enough to engineer for. And use AI tooling to take more rough swings, not to build one grand thing slower.

You've now got something rough, in front of real people, and — if you've done this right — someone willing to pay for it. Which raises the question that sinks more developers than any schema ever did: what do you charge? Spoiler: almost certainly more than your first instinct. That's where we go next.

8How to Price Your Software: Why You're Charging Too Little

We opened this course with a number: $280 a month, forty subscribers, and a developer who was thrilled — until someone did the math they hadn't. Forty support tickets. Forty expiring credit cards. Forty people who feel entitled to your weekend. That story was about sequencing — building before deciding who pays or how much. This section is about the second half of that same mistake: charging a price that makes the whole thing not worth running.

Pricing is the single highest-leverage lever a solo developer has, and it's the one they reflexively yank in the wrong direction. Here's the diagnosis, and it comes straight from Patrick McKenzie — the developer who built and sold a couple of small software businesses and then spent years writing about why people like him kept leaving money on the table. In his SaaS pricing newsletter, McKenzie puts it bluntly: most SaaS starts out underpriced, and the reason is psychological, not strategic. Technical founders, he writes, perceive code as being worth its cost — and its cost to them is zero. You built it. You know exactly how few hours the core feature took. So when you set a price, you anchor to the effort it took you, then add a modest markup. That's pricing from cost. But the customer doesn't care what it cost you to build. The customer cares what it's worth to them to have the problem gone. Those are completely different numbers, and the gap between them is the entire game.

Think about it like a locksmith. You call a locksmith because you're locked out of your house at midnight in the rain. He shows up, picks the lock in ninety seconds, and charges you a hundred and fifty bucks. If you priced that locksmith from cost — ninety seconds of labor plus a bent piece of metal — you'd say he's robbing you. But you're not paying for ninety seconds. You're paying to not sleep in your car. The value is in the problem solved, not the labor spent. Developers price like they're charging

9How to Get Your First Customers as a Developer

On the night before his startup launched, Brian Chesky and his Airbnb cofounder weren't optimizing a signup funnel. They were knocking on doors in New York City, meeting the handful of people who'd actually listed an apartment, photographing their places by hand because the listings looked terrible. That's not a growth strategy. It's two guys, in person, recruiting users one at a time.

That image bothers a lot of developers, and it should — because it's the exact opposite of how you've been trained to think about reaching people. Code scales. You write a function once and it runs a million times. Sales doesn't work like that, at least not at the start, and the move that actually gets you your first ten paying customers is the move that feels most like a waste of an engineer's time. This whole section is built around that discomfort, because getting through it is the difference between a product nobody uses and a business.

So here's the uncomfortable truth, and Paul Graham, the Y Combinator cofounder who's watched thousands of startups try to grow, put it about as bluntly as anyone has. His advice to early founders is to do things that don't scale — and the first thing on that list is to recruit customers manually, one by one. Not market to them. Recruit them. The distinction matters. Marketing is broadcasting and hoping. Recruiting is going to a specific human, understanding their specific problem, and personally walking them into your product.

Think about why that has to be true when you have zero customers. A scalable channel is one where you put effort in at the top and users fall out the bottom without you touching each one. Paid ads. SEO. A referral loop. Every one of those needs something you don't have yet. Ads need a landing page that converts, which you can't tune until you've watched real people fail to convert. SEO needs months and existing traffic to learn from. A referral loop needs customers to refer. At zero, none of the machines have fuel. The only engine that runs on empty is you, in a conversation, with one person. That's not a phase you skip because you're technical. It's a phase you skip because you want to fail.

This is where most developers get stuck, and it's worth naming exactly why. The instinct is to hide behind the product. To spend another weekend on the onboarding flow instead of sending ten messages to actual humans, because the onboarding flow is a problem you know how to solve and the humans are not. Building feels like progress. Talking feels like begging. But the begging frame is wrong, and here's the reframe that gets you past it — you're not asking for a favor, you're offering to solve a problem you happen to understand better than almost anyone. That's not a sales pitch. That's just being useful to someone.

Which brings up the question that paralyzes people. Where do you even find these first ten? And the answer is not "everywhere." The answer is narrow on purpose.

Seth Godin, the marketer who's written most of a shelf of books on this, has a concept he calls the minimum viable audience — the smallest group that could possibly sustain your work. His argument is that if you aim for mass, which is just another word for average, you'll build something average, and average gets you nowhere. But if you pick the smallest specific group and obsess over delighting them, two things happen. You find out the group is bigger than you thought, and they tell the others. The narrowness isn't a limitation. It's the whole engine.

For a developer, narrowness has a practical payoff that's almost unfair. Your first customers already gather somewhere. There is a subreddit for it. There is a Discord. There is a Slack workspace, a Hacker News crowd, a specific tag on a specific forum where the exact people with your exact problem complain about it, daily, in their own words. If you built a tool for, say, indie game developers tracking their Steam wishlists, those people are not scattered across the internet at random. They're in three or four places, and you can name them. Going there beats broadcasting to nobody, because broadcasting to nobody is what a tweet to your forty followers actually is.

Here's the part that trips people up, though. Showing up in those communities is not the same as advertising in them. Drop a link to your product cold in a subreddit and you'll get banned, ignored, or both — and you'll deserve it. The move is to be a genuine participant first. Answer questions. Solve someone's problem in a comment without mentioning your product at all. Pieter Levels, the indie developer who built Nomad List and a string of other products in public, has talked about how the community around your work is the thing that carries it — you become a known, helpful presence, and the product comes up because it's relevant, not because you forced it in. That's slow. It's also the only version that works without burning the bridge you need.

Let's say you've found the place, you've been helpful, and someone actually signs up. This is the moment most developers blow, because the engineering instinct says: now I get out of the way and let the product do its job. Wrong. Now you do the most unscalable thing yet — concierge onboarding. You personally walk that first user through setup. You get on a call. You watch them use the thing. You ask what confused them and you fix it that night.

Graham's point about this is sharp, and it's not really about onboarding at all. He argues that the manual, high-touch approach makes users feel like they're dealing with a company that actually cares, and almost no companies do — which means you're cheap to differentiate. But the deeper reason is intelligence-gathering. Your first ten users are not customers. They're collaborators. They are the only people who can tell you what's actually wrong with the product, because they're the only ones using it for real, and every confused face on a screen-share is a feature request more honest than any survey.

So if someone stopped you here and asked what your first ten users are actually for — what would you say? … Not revenue. Ten people at ten dollars a month is a rounding error. They're for the spec. The real product specification lives in their friction, and you can only see it by watching, up close, one person at a time. That's why this phase can't scale and shouldn't.

Now, there's a real disagreement worth flagging here, because the indie-hacker internet is loud about it. One camp — and you'll hear this loudest from the build-in-public crowd, the people who post their revenue dashboards and their launch-day screenshots — treats the big launch platforms as the path. Product Hunt. Hacker News. A coordinated launch where you hit the front page, the signups pour in, and the business is born in a day. The other camp, and Graham is firmly here, treats all of that as basically irrelevant to whether you build a real company. So who's right?

The honest read is that launches are a spike, not a strategy. A good Product Hunt day can send you a thousand visitors. The problem is that a thousand strangers who saw your name on a leaderboard are nearly worthless compared to ten people you recruited by hand from a community who actually have the problem. Levels has been candid that launches give you a burst and then the graph falls off a cliff, and what matters is what you built before the spike and what converts after it. If you launch with no recruited base and no concierge muscle, the spike lands on nothing and drains away. The launch isn't where you get customers. It's where you announce the customers you already earned the hard way. Treat it as a press release, not a business model, and it's useful. Treat it as the plan, and you're gambling your one big moment on strangers.

There's one advantage in all of this that you've been sitting on the whole time, and it's worth saying out loud. Being a developer is a sales asset, not a liability. When you show up in a technical community and you can actually talk shop — when you understand the problem from the inside because you've lived it — you have a credibility that no marketing hire can fake. The people you're selling to can smell whether you actually get it. You do. The instinct to hide behind the product wastes the one thing that makes you uniquely good at this conversation: you're not a salesperson cosplaying as a domain expert. You are the domain expert. Lead with that.

So strip this down to what actually does the work. Early customers come one at a time, by hand, because no scalable channel runs on zero. You find them where they already gather — a named community, not the whole internet — and you earn the right to be there by being useful before you're promotional. The first ten are collaborators, and concierge onboarding is how you mine the real product spec out of their confusion. And the launch platforms are a spike that lands on whatever base you built by hand, never a substitute for building it.

The question this whole section has been circling is the one the rest of the course keeps answering in different forms: the things that feel least like engineering are exactly where the leverage hides. Recruiting customers by hand isn't a detour from building the business — it is building the business, and the developer who refuses it doesn't have a lean startup, just a clean codebase with no one inside it. Once you've got those first real users talking back to you, the next problem is turning what they teach you into a system that finds the next thousand without you in every conversation — which is where marketing stops being a dark art and starts being something you can actually engineer.

10How Developers Can Use Marketing Strategies That Work Like Code

Patrick McKenzie ran a little software business called Bingo Card Creator. It made bingo cards for elementary school teachers. Not glamorous. But McKenzie did something most developers never do — he stopped treating his marketing emails as throwaway copy and started treating them like a system he could measure and improve.

Here's what that looked like in practice. He had an email that went out to people who'd downloaded his free trial. He didn't just write it once and forget it. He treated the wording as a hypothesis, shipped a change, measured what happened, and kept the version that won. One round of that — rewriting the copy in a lifecycle email, nothing else — lifted his conversion by around fifteen percent. No new feature. No new code in the product itself. Just the same engineering loop he already used every day, pointed at words instead of functions.

That's the whole move this section is built around. Marketing feels like a dark art to a lot of developers — vibes, hustle, posting on social media and hoping. But the parts that actually matter for a one-person software business aren't vibes at all. They're systems. And systems are the thing you already know how to build.

So start with the reframe, because it's the load-bearing idea here. Think about how you debug. You form a hypothesis about what's broken. You change one thing. You measure whether the change helped. You keep it or roll it back. That loop — hypothesize, change, measure, decide — is exactly what good marketing is underneath. The reason marketing feels mystical is that most people who do it never close the loop. They post and pray. They never measure. A developer's superpower here isn't creativity. It's the discipline to actually instrument the thing and look at the numbers.

McKenzie's framing on this is blunt, and it's worth sitting with. He's said that engineers tend to think of marketing as either lying or magic — and it's neither. It's a learnable, testable skill, run by the same scientific method you'd use on anything else. Once you accept that, the whole intimidating fog of "I'm not a marketer" just… lifts. You don't have to become a different kind of person. You have to point the skills you already have at a new target.

Let's get concrete about the first system, because it's the one that runs while you sleep — lifecycle email.

Here's the kitchen-table version. Lifecycle email just means: when someone does a thing, the system sends them the right message at the right moment, automatically, forever. Someone signs up for your free trial today. They get a welcome email now, a "here's how to get your first win" email tomorrow, a "your trial ends in three days" email later that week. You write each of those once. The system fires them for every new user from now until you turn it off. That's the part that makes it feel like code: you build the sequence once, and it keeps working without you in the loop.

This is exactly what McKenzie's fifteen percent came from. The trial-to-paid email is one node in that sequence. It's a function with an input — a user on a trial — and an output — a paying customer, or not. And because it runs for every single user, a small improvement in that one function compounds across everyone who ever touches it. That's why he could rewrite a single email and move the whole business. A frontend tweak that only one user sees is worth almost nothing. A lifecycle email that every user sees is worth obsessing over.

Now, here's the part that trips developers up, so name it before you hit it. The instinct is to build the email system before you have anyone to email. Don't. The sequence is only worth automating once you know what to say, and you only know what to say after you've watched real people get stuck. So the order is: do it manually first, by hand, for your first handful of users — then encode the version that worked into the automation. The automation is the last step, not the first. Building it early is the over-engineering trap wearing a marketing costume.

That's email. The second system is the one with the longest payback and the slowest start — content that ranks in search.

Think about the difference between renting and owning. Paid ads are renting. You pay, traffic shows up; you stop paying, it vanishes. And renting is getting brutally expensive — the team at ProductLed points out that in 2021 alone, the cost to reach a thousand people on Google and YouTube roughly doubled, and Facebook wasn't far behind. ProfitWell's data, which they cite, shows customer acquisition costs climbed over fifty-five percent across five years while people's willingness to pay actually dropped. So the rented channel keeps getting pricier while it returns less.

A piece of content that ranks in search is the opposite. You write it once. It sits there. And it keeps pulling in the exact people searching for the exact problem you solve — next month, next year, with no ongoing spend. That's an asset, not an expense. It's the closest thing marketing has to a deployed service that scales itself. The catch — and this is the honest part nobody puts on the motivational poster — is that it's slow. A new article can take months to climb. So content is a compounding bet, not a quick hit. You plant it now and harvest it later, which is exactly the kind of patience a developer with a day job and a ten-hour week can actually afford, because you're not trading hours for clicks every single day.

Here's where to point that content, and it ties back to a thread running through this whole course. Write for the specific search someone types when they have your exact problem. Not "productivity tips." Something like "how to export Stripe invoices to QuickBooks" — narrow, painful, and typed by someone who would pay to make it stop. The tighter the niche, the less competition you face for that search term, and the more the person who lands there is already pre-qualified to buy. Your unfair advantage as a developer is that you can write the genuinely technical answer that ranks because it's actually correct, not the keyword-stuffed garbage that floats around most of these topics.

So you've got people arriving — from email, from search. The third system turns arriving into paying. That's conversion, and developers should love this one, because it's pure measurement.

Picture the path a visitor takes as a funnel. They land on your page. Some fraction read past the headline. Some fraction click sign up. Some fraction finish onboarding. Some fraction become paying customers. At every step, people fall out. Conversion optimization is just finding the leakiest step and patching it — and it's the same instinct as finding the slow query in a request that's timing out. You don't optimize randomly. You find where the drop-off is worst and you fix that first.

This is where there's a real, named disagreement worth flagging, because the obvious developer move is wrong. The textbook conversion advice — and a whole cottage industry of tools — pushes you toward A/B testing everything: button colors, headline variants, endless split tests. The trouble is statistics. To detect a small lift, you need a large sample. A solo product with forty trial signups a month will never get enough traffic for most A/B tests to mean anything — you'll be reading noise as signal and shipping changes that did nothing. McKenzie himself, who's run plenty of these tests, has been clear that at low volume the disciplined thing is often to make a confident change based on talking to users and reasoning about the funnel, not to wait six months for statistical significance you'll never reach. So the practitioner take beats the textbook here: instrument the funnel so you can see the obvious leaks, fix the big ones by judgment, and save formal split-testing for the one or two pages that actually get enough traffic to test. Don't instrument everything. Instrument the steps where money is won or lost.

There's a trap in that last idea worth pausing on. The obvious move when conversion is low is to add more tracking — more events, more dashboards, more numbers. And it's exactly backwards… More data on a low-traffic product just buries the two numbers that matter under forty that don't. You want to know: of the people who land, how many start a trial, and of those, how many pay. Those two. Everything else is decoration until you have real volume.

So if a friend stopped you here and asked what the three marketing systems actually are — what would you say? Email that runs the sequence automatically. Content that ranks and keeps pulling people in for free. And a funnel you've instrumented just enough to see where buyers leak out.

There's one more idea, and it's the one that separates developer products from everything else — building distribution into the product itself.

Most businesses bolt marketing on after the product is done. Developer tools can do something stranger and better: they can spread through the act of being used. Think about how this works in practice. A product-led model — the kind ProductLed describes with Slack and Dropbox — lets someone try the thing for free and onboard themselves, no salesperson, no demo. The product does the selling. ProductLed's example of Ahrefs is the dream version: a forty-million-dollar business run by around forty people, because the product itself does the work a sales team would otherwise do. For a one-person shop, that ratio isn't a nice-to-have. It's the only way the math works at all.

But the developer-specific version goes further than self-serve. Your tool can live on GitHub, where every star and fork is a tiny billboard. It can plug into ecosystems other people already use, so you ride their distribution. It can leave a "powered by" link on every page it generates. The marketing isn't a thing you do on the side — it's a property of the design. Which means the decision about how your product spreads is an architecture decision, and you get to make it early, in the part of the work you're already best at.

Strip all of this back and the through-line is the same one running under the whole course. Marketing isn't a foreign language you have to learn to fake. It's a set of systems — email loops, compounding content, instrumented funnels, distribution baked into the design — and systems are the thing you build for a living. The fifteen percent McKenzie pulled out of a single email didn't come from becoming a marketer. It came from refusing to treat marketing as something other than engineering.

Here's the line to carry out of this one: stop posting and praying, and start treating every channel as a function you can measure and improve. The numbers you'd use to do that — what actually counts as a win, and which metrics quietly lie to you — are the next thing to get straight.

11SaaS Metrics That Actually Matter for Your Business

Picture a GitHub repo with a thousand stars. Green badges, a slick README, a logo someone clearly spent a weekend on. The kind of project other developers fork and tweet about. And in the Stripe dashboard sitting in another browser tab — nothing. Zero dollars. Not zero this month. Zero ever.

That gap, between a thousand stars and zero dollars, is the most expensive lie in this whole game. Because the stars feel like progress. They light up your notifications, they show up in your follower count, they make your mother slightly less worried about the "computer thing." But they're measuring how impressed people are. They are not measuring whether anyone will pay you. And those are completely different questions — which is exactly what this section is built around. The numbers that make you feel good and the numbers that tell you the truth are almost never the same numbers.

So let's start with the trap, because it's seductive and it catches good engineers hardest. Stars, signups, page views, retweets, upvotes on Hacker News — these are what people in the business call vanity metrics. Not because they're fake. The thousand people really did star your repo. The trap is that they measure a feeling — interest, admiration, a fleeting "oh that's neat" — and a feeling is not a transaction. The kalzumeus blog, written by Patrick McKenzie, who ran a bootstrapped bingo-card business for nearly a decade before spending six years at Stripe, hammers a version of this constantly: the only early metric that actually tells you whether you have a business is whether money moves from a customer's account to yours. Everything else is a leading indicator at best, and a flattering distraction at worst.

Here's the cleaner way to feel the difference. Baremetrics, a company that runs revenue analytics for over eight hundred startups, makes a sharp distinction in their metrics academy between total users and active customers. Total users is everybody who ever signed up — the free-trial people, the people on the free plan, the people who tried it once and ghosted. Active customers are the ones paying you right now. And they give an example that should make every founder slightly nauseous. A business grows from five hundred total users in January to eleven hundred in March. Looks like a rocket ship. But the active, paying customers only crept from three hundred to four hhundred and forty. So the headline number tripled, and the number that actually matters barely moved. If you only watched total users, you'd think you were winning. You'd be losing slowly and feeling great about it.

That's the part nobody mentions — free users aren't free to you. They still hit your servers, they still email support, they still cost you attention. So a chart of total signups racing upward can be hiding a business that's quietly bleeding. This is the easy part, though. The harder, more useful move is knowing which numbers to put in their place.

There are exactly four worth learning, and you can hold all four in your head without a single spreadsheet. The first is monthly recurring revenue — MRR. That's the predictable money that shows up every month from your subscriptions. Not the one-time setup fee, not the consulting gig you did on the side — Baremetrics is specific that those don't count toward MRR, because they don't repeat. MRR is the heartbeat. If you want a bigger, scarier-sounding version, multiply by twelve and you get ARR, annual run rate — same number, just stretched across a year for the people who like round annual figures. For a solo founder, MRR is the one you check. It answers the only question that matters in the first year: is this thing alive, and is it growing?

The second number is churn. Churn is the percentage of customers — or revenue — that walks out the door in a given month. Someone cancels, a card fails and never gets fixed, a subscription quietly lapses. Baremetrics literally describes part of their benchmark work as tracking the percentage lost every month, and where and why charges are failing. Hold onto churn for a second, because it's the one that does the most damage while attracting the least attention, and we're coming back to it hard.

The third number is lifetime value — LTV. This is the total amount a typical customer pays you across their entire time as a customer, start to finish. A customer paying you ten dollars a month who sticks around for two years is worth two hundred and forty dollars in lifetime value. Same customer who bails after two months is worth twenty. Notice what just happened there — LTV isn't really a separate number. It's churn wearing a dollar sign. The longer they stay, the more they're worth, and how long they stay is just the flip side of your churn rate. These two are joined at the hip.

The fourth is customer acquisition cost — CAC. That's what it costs you to land one paying customer. Add up what you spent getting people in the door — ads, your time, the free trial servers, all of it — and divide by the number of customers it produced. And the whole game, the entire economic engine of a subscription business, lives in one comparison: is your lifetime value bigger than your acquisition cost? If a customer is worth two hundred and forty dollars and costs you forty to acquire, you have a business. If they're worth twenty and cost you forty, you have a very expensive hobby that's actively setting money on fire with every new signup.

So: MRR is the heartbeat, churn is the leak, LTV is what a customer is worth, and CAC is what they cost to get. Four numbers. That's the whole instrument panel.

Now here's where most developers point their energy in exactly the wrong direction. The instinct, the thing that feels like growth, is acquisition — get more customers, get more signups, drive that top-of-funnel number up. It's the satisfying number. It goes up and to the right and you can tweet about it. But the quiet truth that experienced founders will tell you, and that McKenzie's whole career argues, is that retention beats acquisition almost every time. Keeping a customer you already have is dramatically cheaper than finding a new one — you've already paid the acquisition cost, you've already done the convincing. Every customer you keep is revenue you simply don't have to re-earn next month.

Stay with this for one more step, because this is the part that genuinely reshapes how you think about the business. Imagine two solo founders, same product, same price, both adding ten new customers a month. The only difference is churn. One loses three percent of customers a month, the other loses eight. Doesn't sound like a huge gap, right? Five percentage points. But play it forward two years and they are not running the same business anymore. The low-churn founder's customers stack up like sediment — each cohort largely stays, so the base keeps thickening. The high-churn founder is bailing water. They add ten and lose nine, add ten and lose nine, and the boat never actually fills. Same acquisition effort, wildly different outcomes — and the entire difference was a number most people don't even bother to look at.

That's why small retention gains compound into large profit gains. Cutting your churn from eight percent to five isn't a five percent improvement. Over time it's the difference between a business that grows and a business that runs on a treadmill. And here's the gut-check before we go on. If a customer paying ten dollars a month stays for ten months on average, what's the simplest way to make each one worth fifty percent more — without finding a single new customer, without changing your price? … Get them to stay fifteen months instead of ten. That's it. Retention is a lever on revenue that doesn't require you to do any more selling, and selling is the part developers hate most anyway.

Which brings us back to churn, because churn is doing something sneakier than just losing you money. The churn number is a smoke detector for product-market fit. A high churn rate isn't really telling you "people are leaving." It's telling you that people tried your thing, and after living with it, decided it wasn't worth the price of staying. That's the market talking, in the only language that's fully honest — what people do with their wallet over time, not what they said in a friendly survey. McKenzie's repeated point about SaaS being the best business model for software cuts both ways. The recurring revenue is a gift when people stick, and it's a monthly verdict when they don't.

And here's the part that should genuinely change your behavior — churn quietly caps your business. There's a ceiling baked into it, and the math is unforgiving. If you add a fixed number of new customers each month but lose a fixed percentage of your base, you don't grow forever. You climb toward a plateau and then you stop, because the losses scale with the size of your base while your additions stay flat. Picture a bucket with a hole in it. You can pour faster and faster, but at some point the water leaking out equals the water going in, and the level just sits there. Higher churn means a smaller bucket. You can throw all the acquisition energy you want at the top, and the business simply will not rise past the line your churn rate draws. Most stalled solo SaaS businesses aren't stalled because the founder stopped finding customers. They're stalled because they never noticed the hole.

This is the part that trips developers up the most, so let's name it directly. The obvious reading is that a flatlining business has a marketing problem — not enough new customers coming in. So the founder doubles down on acquisition, writes more content, runs more ads, posts more on Hacker News. And it doesn't work, and they can't understand why. The actual problem is at the bottom of the bucket, not the top. Fix the hole first. A point of churn you plug is worth more than a dozen new signups you have to keep replacing.

Now, there's a real debate worth flagging here, because the metrics world is not as settled as the dashboards make it look. There's a camp — and the venture-backed, growth-at-all-costs playbook is its loudest voice — that treats churn as something you out-grow. The logic goes: if you're adding customers fast enough, churn is a rounding error you'll fix later at scale. And for a company with a sales team and a war chest, there's something to that. But for a solo founder, that advice is close to poison, and the bootstrapped community is pretty unified against it. The MicroConf crowd — the people behind the State of Independent SaaS survey, which has benchmarked bootstrapped founders since 2011 — lean hard the other way. When you don't have venture money to paper over a leaky bucket, retention isn't a problem for later. It's the whole game. The evidence here isn't really contested for a one-person business: you cannot out-acquire bad retention when you're the entire acquisition department. McKenzie's own businesses, run lean for years, were built on customers who stayed — dentist offices and teachers who kept paying because the thing kept working. Lean toward the bootstrappers on this one. At your scale, the growth-hacker advice is solving a problem you don't have at the cost of the one you do.

So which numbers should you actually watch? Here's where the developer instinct to instrument everything becomes a liability. Baremetrics' own metrics academy makes the point cleanly — the list of SaaS metrics you could track is, in their words, unnecessarily long, and tracking metrics you'll never act on is just wasting time you don't have. You have ten or fifteen hours a week. You do not need a forty-tile dashboard. For a solo founder in the first year or two, you watch two things, maybe three. MRR — is the business alive and growing. Churn — is the bucket leaking. And if you're spending money to acquire, the rough ratio of what a customer's worth against what they cost. That's it. Everything else — daily active users, page views, the quick ratio, expansion-versus-contraction breakdowns — is real, and it'll matter someday when you have the time and the scale to act on it. Right now it's a number you'll glance at, feel something about, and do nothing with. And a metric you can't act on is just another vanity metric wearing a lab coat.

So strip it all down and three things are doing the real work here. Vanity metrics measure how impressed people are; revenue measures whether they'll pay — and only one of those keeps the lights on. Of the four numbers that matter, retention quietly outranks acquisition, because keeping a customer is revenue you don't have to win twice. And churn is the number with its hand on the thermostat — it sets the ceiling on how big a one-person business can ever get, no matter how hard you pour into the top.

There's a sentence worth carrying out of here: you cannot out-acquire a leaky bucket, and as a solo founder, you are the whole bucket factory. The metrics aren't there to impress anyone — they're the instruments that tell you whether the business is breathing. And once you can read the dashboard, the obvious next question is how a single person keeps that business breathing without it eating their whole life — which is where someone running a real software company on about five hours a week comes in.

12How to Run a Software Business Part Time

Patrick McKenzie sold software that made bingo cards. Not bingo cards for game night — bingo cards for elementary school teachers, the kind a second-grade teacher prints out to drill spelling words or multiplication facts while making it feel like a game. He called it Bingo Card Creator. And here's the part that should reorganize how you think about a one-person business: McKenzie has written that for long stretches, he ran it on roughly five hours a week. Not five hours a day. Five hours a week — the kind of time you'd lose to one long meeting and a couple of Slack threads.

That's the thing this whole section is built around. Not how to grow a business to where it's enormous, but how to build one that keeps running when you're not touching it. Because the developer's day job doesn't go away. You have ten or fifteen hours a week, and most of them you'd rather spend building than babysitting. So the real engineering problem isn't the product. It's designing a business that operates without you in the loop.

Start with the single idea that makes all of this possible: the time asset. A time asset is something you build once that keeps producing value long after you stop working on it. McKenzie is the person who put a name to this. He's written, more or less, that the work most people do disappears the moment they stop doing it — you answer an email, the value is spent, the email's gone. But some work keeps paying out. Write one really good help article that answers the question forty customers were about to email you, and that article keeps answering it next month, next year, while you're asleep. That's a time asset. It's the difference between a job and a business.

Think of it like the difference between carrying water and digging a well. Carrying water gets the job done today, but you're back at the river tomorrow with the same empty bucket. Digging the well is brutal up front and produces nothing for a while — and then it produces water forever with almost no further effort. Most of what a solo founder builds should be wells. The trap, and developers fall into it constantly, is spending all your hours carrying water because carrying water feels productive. Answering each support ticket by hand feels like running a business. It's actually just a part-time job you pay yourself badly for.

So here's the question that should drive every operational decision you make: does this thing I'm about to do keep working after I stop doing it? If yes, it's worth real time. If no — if it evaporates the second you walk away — automate it, delete it, or make the product do it instead of you.

Which brings us to the operational drag. Every software business has a set of recurring chores that have nothing to do with building the product. Billing. Onboarding new users. Answering the same five questions over and over. For a funded startup, you hire people for this. For you, the working developer with fifteen hours a week, every one of those chores is a tax on the only resource you can't buy more of. And the good news — genuinely good news — is that almost all of it can run without you.

Take billing first, because it's the easiest win and the one developers most often over-engineer. You do not build a billing system. Stripe and its competitors already handle subscriptions, failed-card retries, dunning emails when a card expires, receipts, taxes in a lot of jurisdictions, the whole grim apparatus. Wire it up once and it runs forever. A customer's card fails at two in the morning, the system emails them, they update it, you never knew it happened. That's a well. The version where you manually invoice forty people and chase the ones who forgot to pay — that's a bucket, and you'll be carrying it every single month.

Then there's onboarding, and this is where product design does the heavy lifting. The model you want is what the team at ProductLed calls product-led growth — using the product itself as the main way you acquire, activate, and keep customers. Their definition is worth sitting with for a second. In a product-led company, the user tries the thing for free, gets to a real outcome on their own, and upgrading becomes a no-brainer — no demo, no salesperson, no you on a Zoom call walking them through it. ProductLed points out that you've already lived this. Nobody requested a demo before trying Slack or Dropbox. You just used it.

For a solo founder, that's not a nice-to-have. It's the entire operating model. The reason this matters comes down to a hard number you can actually feel: time-to-value. ProductLed's argument is that the quicker a user accomplishes a key outcome inside your product, the quicker a free user turns into a paying one — and crucially, the less hand-holding any of it requires. They also flag the bigger shift behind it. According to Forrester, three out of every four business-to-business buyers would rather teach themselves and buy through an app than sit through a salesperson. Your customers don't want you in the loop either. So self-serve isn't a compromise you make because you're a tiny team. It's what people now prefer.

Here's where most developers get this exactly backwards, and it's worth naming before you walk into it. The instinct is to make onboarding personal — to hop on a call with every new signup, walk them through the features, make sure they're set up right. It feels like good service. And early on, it genuinely is good service, and you should do it, because those first conversations are where you learn what's confusing. But every one of those calls is a bucket of water. If your onboarding only works because you're personally there for it, you don't have a business that runs on five hours a week. You have a business that runs on you, and it caps out the second your calendar fills. The job is to take everything you learned from those early hand-held calls and bake it into the product — so the next thousand users get the same outcome without you on the phone.

Now, support. This is the one that quietly eats solo founders alive, and the math is unforgiving. Picture the version where the product barely explains itself: every new customer generates a question, and you answer each one personally. Forty customers, forty conversations, every month, forever. That's not a business. That's a help desk you can never leave. The fix is the time-asset move applied relentlessly. The first time a question comes in, you answer it well, in writing, somewhere permanent — a help doc, an FAQ, a tooltip inside the app at the exact moment of confusion. The second time it comes in, you point at the answer. The third time, the product should be answering it before the user even thinks to ask. Every recurring question is either a documentation gap or a product gap. Treat it as a bug to be fixed once, not a chore to be repeated forever.

And this is the part where the ground has genuinely shifted in the last couple of years. AI tooling now absorbs a whole layer of work that used to require either your time or an actual hire. The repetitive support questions, the first-draft content, the admin grind — a lot of it can now be handled by a model that's been pointed at your own documentation. The customers who'd rather self-educate, in Forrester's phrase, can now ask a question in plain English and get your answer back, drawn from the help docs you already wrote, at two in the morning, without you. The thing to notice is that this doesn't replace the time-asset discipline — it amplifies it. The AI is only as good as the documentation you fed it. Write the well-crafted answer once, and now it's not just a static help page. It's the training material for a system that answers the same question a thousand different ways. The leverage compounds.

So that's the build-it-once philosophy, and it's tempting to think the whole game is adding clever automation. It isn't. And this is the move that separates founders who stay sane from founders who slowly drown — the discipline of choosing what not to do.

Here's the principle, and it's the opposite of what your engineering brain wants to hear. Every manual process you add is a process you have to maintain forever. That special discount you offered one customer over email? Now there's an edge case in your billing you'll be hand-managing for a year. The custom onboarding you did for one big client because they asked nicely? Now they expect it every time, and so does the next person they refer. Each little exception feels like good service in the moment. Stacked up, they become the actual reason you can't step away — a thousand tiny hooks, each one holding a few minutes of your week hostage.

This is genuinely hard for developers, and not because they're undisciplined. It's hard because the instinct that makes someone a good engineer — see a problem, build the thing that solves it — is exactly the instinct that fills a solo business with bespoke machinery you now have to keep running. The skill you're building here isn't "automate everything." It's deciding which problems are worth a system and which problems you should simply refuse. Sometimes the most leveraged move is to tell a prospective customer no, because saying yes means inheriting a maintenance burden that outweighs their monthly check.

There's a contested version of this worth flagging, because serious people land in different places. One camp — and you hear this loudly in the indie-hacker world around builders like Pieter Levels — says ship maximally rough, automate aggressively, never get on a call, let the product sink or swim. The other camp, closer to where McKenzie operates, says the early human touch is precisely what teaches you what to automate, and skipping it leaves you automating the wrong things beautifully. The honest read is that they're describing different moments on the same timeline. Do things by hand at the start — that's how you find the real questions. Then ruthlessly retire each manual process the moment you understand it well enough to systematize it. The mistake isn't doing manual work. The mistake is doing the same manual work twice and not turning it into an asset.

So if someone stopped you here and asked what actually lets one person run a real software business in the gaps around a day job — what would you say? … It's not working faster. It's that the work keeps happening when you're not there. Billing collects itself. The product onboards people without you. Your documentation answers questions you went to bed hours ago. And the one discipline holding it all together is the refusal to add manual processes you'll have to feed forever.

Strip it down and a few things are doing the real work. A time asset is anything you build once that keeps paying out — the well, not the bucket — and most of your hours should go to building wells. The operational drag of billing, onboarding, and support is almost entirely automatable, and a product-led, self-serve design removes you from the loop instead of wedging you into it. AI now absorbs the support and admin layer that used to need a team, but only as well as the documentation you wrote for it. And every manual exception you allow is a permanent maintenance cost, which means the highest-leverage word in a solo founder's vocabulary is often just "no."

This is what "small is a strategy" finally looks like in practice — not a smaller version of someone else's company, but a machine deliberately built to run on a fraction of one person's week. The business isn't supposed to need you. That's the whole point. Get this right and you've bought back the thing you were short on the entire time, which raises the only question that really matters once the systems are humming: how do you keep doing this for years without the second job quietly burning down the first one?

13Legal and Tax Setup for Solo Online Businesses

The first time a lot of developers think seriously about taxes on their side project, it's the following April, and the number on the screen is bigger than they expected — and there's a second number under it, a penalty, for not having paid it sooner. Nobody warned them. They built a clean product, charged real money, kept the Stripe dashboard humming, and quietly assumed the tax part would sort itself out the way withholding does at a day job. It doesn't. When you work for yourself, nobody is taking money out of your check before you see it. The whole thing lands on you, all at once, with interest if you're late.

That's the thing about the legal and tax side of a one-person business. It's not hard. It's just unfamiliar, and it punishes you for not knowing the few rules that actually bite. So here's the goal for the next few minutes — not to turn you into an accountant, but to get you the handful of facts that keep the IRS from being an unpleasant surprise. One flag before anything else: this is US-focused, and the specifics shift by state and shift hugely by country. If you're outside the US, the shapes will rhyme but the details won't. Treat this as the map, not the territory, and confirm your own jurisdiction before you file anything.

Start with the question developers over-think the most: what kind of business should it be? Sole proprietorship, LLC, corporation. The instinct, especially for someone who likes doing things properly, is to set up the fancy structure on day one. Resist that for a second, because here's the part nobody tells you up front: if you start selling something under your own name and don't file any paperwork at all, you are already a sole proprietorship. That's the default. It happens automatically. There's no form to become one. You just are one the moment money changes hands.

A sole proprietorship means you and the business are legally the same thing. Your income is your income, your debts are your debts, and there's no wall between the business and your personal stuff. That's the simplest possible setup, and for a side project taking its first few payments, it's often genuinely fine. The catch is that word — wall. That's what the next step up buys you.

An LLC — a limited liability company — is mostly about that wall. The Small Business Administration describes the LLC's main job as separating your personal assets from your business liabilities, so if the business gets sued or owes money it can't pay, your house and your savings sit on the other side of a legal barrier. That's what liability protection actually is. It is not magic, and it is not a tax dodge — by default, a single-member LLC is taxed exactly like a sole proprietorship, the income flows straight onto your personal return. What you're paying for, with the filing fee and the annual upkeep, is the wall. Whether you need it depends on your risk. Selling a thirty-dollar info product about CSS? Your liability exposure is close to nothing. Building software that touches people's health data, or handles their money, or could plausibly cause real damage if it breaks? Now the wall starts to matter, and matter early.

The corporation — the full C-corp or the S-corp election — is the third option, and for almost every one-person side business in its first year, it's premature. Corporations exist to solve problems you probably don't have yet: taking on investors, issuing stock, optimizing payroll taxes once you're making real, consistent money. The S-corp tax election in particular can save self-employed people a chunk on taxes, but it only pays off above a certain income, and it brings real paperwork and payroll requirements with it. That's a conversation for an accountant once the business is clearly working — not a thing to set up before you have a single customer. This is the over-engineering trap wearing a suit. The same instinct that builds a Kubernetes cluster for forty users will happily incorporate a Delaware C-corp for a project making zero dollars.

So here's the honest sequence. Start as a sole proprietor by default. Form an LLC when your liability exposure is real or when you simply want the separation and can afford the upkeep. Think about a corporation only once an accountant tells you the math works. The mistake isn't picking the wrong one — it's spending a weekend and a few hundred dollars on structure before you've validated that anyone wants the thing.

That covers the shell. Now the part that costs people actual money: registration and tax IDs. What's genuinely required to start versus what can wait? For a basic sole proprietorship, the surprising answer is: not much. You can often operate under your own Social Security number, no separate tax ID needed at all. The IRS issues something called an EIN — an Employer Identification Number — which is basically a tax ID for a business, the way a Social Security number is for a person. You need one if you form an LLC, hire employees, or in some cases to open a business bank account. The good news, and this is worth saying because people assume otherwise: the IRS gives you an EIN for free, directly, in a few minutes online. Any service charging you a fee to "get your EIN" is charging you for something the government does for nothing.

Beyond the federal EIN, registration is mostly local and mostly boring. Some states and cities want a business license or a "doing business as" registration if you operate under a name that isn't your own. If you sell physical goods, sales tax registration enters the picture. For a developer selling software or digital products, the rules around sales tax on digital goods vary so much by state that it's exactly the kind of thing to check locally rather than guess. The principle to carry away is this: the federal stuff is light and free to start, the local stuff is where the variation lives, and almost none of it has to happen before your first dollar. Take the dollar first. Sort the registration as the money becomes real.

Now the one that ambushes nearly everyone. Self-employment tax. Quick gut-check before the explanation — if you've only ever had a regular job, do you know what FICA is, the line on your paycheck for Social Security and Medicare? … At a normal job, you pay half of it and your employer quietly pays the other half. You never see their half. When you work for yourself, you are both the employee and the employer — which means you pay both halves. That's self-employment tax, and it lands at roughly fifteen percent on top of your regular income tax. Not instead of. On top of.

This is the number that makes the April screen bigger than people expect. They mentally budget for income tax and forget the self-employment piece entirely, because at a day job it was invisible. The IRS rule is blunt: if you net four hundred dollars or more from self-employment in a year, you owe self-employment tax and you have to file. Four hundred dollars. That's a couple of months of a small subscription product. You report it all on a form called Schedule C, which attaches to your regular 1040 return — Schedule C is just where you list your business income and subtract your business expenses to land on the profit you actually owe tax on.

And here's the second half of the ambush — the part with the penalty attached. The US tax system runs pay-as-you-go. At a job, withholding handles that automatically. As a self-employed person, the IRS expects you to send in estimated payments four times a year, using a form called 1040-ES, rather than waiting until April. If you owe enough and didn't pay along the way, they charge an underpayment penalty. That's the second number people find under the first one. The threshold to worry about is generally if you expect to owe a thousand dollars or more in tax for the year. Below that, you can usually settle up in April. Above it, the quarterly rhythm starts to matter.

This is where developer discipline actually helps you, so reframe it as a system rather than a chore. The move that saves people the most pain is mechanical: every time a payment hits your account, sweep a fixed percentage — a lot of solo founders use somewhere around twenty-five to thirty percent — straight into a separate savings account and pretend it was never yours. That account is the tax money. When a quarterly payment is due, it's already sitting there. You never feel the April cliff because you never let the money pool in the first place. It's the same logic as withholding, except you're the one running the script. Permission to find the tax stuff genuinely annoying, by the way — it is. But it's a finite set of rules, and once the sweep is automated it mostly takes care of itself.

So far this has all been about money the government wants. But there's a whole other category that catches developers completely off guard, because it has nothing to do with tax and everything to do with how you market. The rules around what you can say to sell your product. Two of them bite specifically.

The first is the FTC's disclosure rules — the Federal Trade Commission, the US agency that polices unfair and deceptive marketing. The rule developers trip over most is about endorsements and reviews. If you recommend a product and you have a financial connection to it — an affiliate link that pays you, a sponsorship, a free product you got in exchange for the review — you have to disclose that connection, clearly, where people can actually see it. The FTC updated these endorsement guidelines in 2023 and they've gotten stricter, not looser. Buried in a footer, or hidden behind a "more" link, doesn't count. And it's not just your own words — if you pay people to review your software, or you post fake five-star reviews, or you have employees praise the product without saying they work for you, that's the FTC's territory too. The agency has been explicit that fake and undisclosed reviews are squarely in its sights. For a developer who lives on affiliate income from a content site, or who's running an early influencer push, this is not optional fine print.

The second is CAN-SPAM, which governs commercial email — and the name is misleading, because it's not just about spam. It's the law for any marketing email you send, including to people who signed up willingly. The FTC, which enforces it, lays out the core requirements plainly. Don't use deceptive subject lines or fake "from" addresses. Tell recipients clearly that it's an ad if it's not obvious. Include a real physical postal address. And give people a working, easy way to unsubscribe — and once they do, honor it promptly, within ten business days. Here's the part that genuinely surprises people: the penalties are per email. The FTC has said each separate email in violation can be penalized at over fifty thousand dollars. Send one sloppy blast to a few thousand people with no unsubscribe link, and the theoretical exposure is staggering.

Now, the practical reality softens that, and it's worth being honest about it. If you use a normal email platform — the Mailchimps and ConvertKits of the world — most of CAN-SPAM is handled for you by default. They force the unsubscribe link, they store your physical address, they manage the suppression list automatically. The way developers actually get burned here is by being too clever: rolling their own email-sending script straight through a raw API to save a few dollars, and quietly skipping the unsubscribe machinery because they didn't know it was the law. The compliance is cheap if you use the tools. It's the hand-rolled version that's dangerous — which, if you've been listening to this course, is a very familiar shape.

So if someone stopped you right here and asked what actually has to happen before you take your first dollar — what would you say? … Almost none of it. You can start as a sole proprietor with no filing, no EIN, no LLC. The legal setup is something you grow into as the money and the risk become real, not a gate you have to clear before you begin. The two things you can't ignore even on day one are the tax you'll owe — start sweeping that percentage from the very first payment — and the marketing rules, which mostly take care of themselves if you use real tools instead of building your own.

Strip it all down and a few things are doing the real work. You're a sole proprietor automatically, and the LLC's only real job is the wall between your business and your personal assets — buy it when your risk is real, not before. Self-employment tax is the ambush: roughly fifteen percent on top of income tax, owed once you net four hundred dollars, paid quarterly so April doesn't bite. And the marketing rules — disclose your financial connections, keep your email honest and unsubscribable — are nearly free to follow as long as you don't try to outsmart them.

Here's the line to carry: the legal and tax side isn't a wall you climb before starting — it's a set of switches you flip as the business gets real, and the only one that can't wait is paying yourself the taxman's share before you spend it. Which leaves one last thing the spreadsheets can't protect you from — the cost of running all of this on top of a full-time job, in the hours you don't really have, for longer than you expect.

14How to Avoid Burnout With a Side Business

More than four in five software developers say they're burned out. That number comes from one widely-cited 2023 survey by Haystack Analytics, looking at developers at their primary jobs — the salaried, nine-to-five, someone-else-pays-the-bills job. Before they've added a single second of side-project work.

Sit with that for a second. The baseline isn't zero. You're not starting your side hustle from a calm, rested place with energy to spare. Most developers are starting it already running a deficit — already tired, already context-switching all day, already half-fried by sprint planning and on-call rotations and the meeting that should've been an email. And then, in the gaps, they're going to build a business.

That's the real subject of this chapter. Not motivation, not hustle, not "how bad do you want it." The actual question is structural: how do you build a second thing on top of a first thing that's already draining you — without the whole stack collapsing? Because here's the uncomfortable truth this whole course has been circling. Small isn't just a strategy for making money. Small is a strategy for not quitting.

Let's start with why developers in particular are at risk, because it's not what you'd guess. The obvious story is "two jobs is more hours than one job, so of course you burn out." True, but shallow. The deeper problem is the kind of tired. Your day job and your side project pull on the exact same muscle — focused technical attention. They don't trade off against each other the way a desk job and a run do. They compete for the same scarce resource. You finish eight hours of staring at code, and the side project asks for more of the precise thing you just spent all day depleting. It's like trying to rest your legs by doing more squats.

So the first move that goes wrong is the heroic one. You decide you're going to sprint. Nights, weekends, "just for the next three months until launch." And this is where the research gets genuinely useful, because it points at the thing that actually protects entrepreneurs — and it isn't grit.

What the entrepreneurship research keeps surfacing is two protective factors, and neither one is "work harder." The first is autonomy — control over your own time and your own decisions. The second is managing the emotional demands of working alone. Now here's why the first one matters for you specifically. A salaried developer has very little autonomy. Someone else sets your priorities, your deadlines, your standup time. The cruel irony is that the side business — the thing that's supposed to be more work — is also the thing that can give you the one ingredient research says protects against burnout: control. If you run it that way. If you copy your day job's deadline culture into your side project, you've just built a second low-autonomy job. You took the one thing that could save you and threw it away.

The second factor gets named in the research and then ignored everywhere else, so let's actually unpack it. Working alone is its own slow drain. There are no coworkers to vent to when the deploy breaks at midnight. There's no manager telling you the thing you shipped was good. When you launch and nobody claps, the silence lands on you alone, and you carry the doubt by yourself. That emotional load is real, and it compounds the technical fatigue. What the research points to as the lever is simple and unglamorous: don't do it in total isolation. Join an indie founder community where other people are running the same experiment and will tell you that the silent-launch feeling is normal. Set up a weekly check-in with one other builder — even a fifteen-minute call. The point isn't accountability theater. It's that a second person who understands the work absorbs some of the emotional weight you'd otherwise carry alone.

Which raises an obvious question — and the obvious answer is wrong. The obvious answer is: go faster, finish sooner, then you can rest. But faster is exactly what kills these projects. Listen to the people who've actually done it.

Justin Jackson, who co-founded the podcasting platform Transistor, wrote about this in a piece that started, of all places, on a ski lift. He'd noticed something about the bootstrappers he admired. The founders of MailChimp waited six years before going full-time on their software business. They consulted on the side and let the app revenue grow slowly underneath. Same pattern for Basecamp, for Todoist, for Wildbit. Jackson's question was simple and a little heretical: instead of heaping expectations on a new startup, what if you just gave it time?

Then it gets more concrete, and more sobering. One of the people who replied to Jackson, Jeff Bargmann, described his product Fences like this: "It took six years to move Fences from pet project to general availability. And then six years of hacking on back-burner to find profitability. Twelve years in all, two-thirds of which was patience." Twelve years. Another founder, Jonnie Hallman, said of his freelancer app: "Approaching year five with Cushion and I have a feeling this is our year." Year five, and he's hopeful it's finally the year.

And here's the number that should reframe your entire timeline. Rob Belcher mentioned a study his finance firm ran on around 950 business-to-business software companies. The median time to a million dollars in annual revenue was six years. Six. Not the outliers — the median. The middle of the pack.

So here's the math that actually matters for burnout. If the realistic path is measured in years, and you try to run it at sprint pace, you will not make it. You'll flame out around month four, right where the heroic-sprint people always flame out, and you'll conclude you weren't cut out for it. You weren't unfit. You were just running a marathon at a sprinter's cadence. The slow approach isn't the soft option. It's the only option that finishes.

Now, an honest note, because there's a real disagreement among smart people here, and pretending it's settled would be lying. Jackson got two responses from people he respects, and they flatly contradicted each other.

Jason Cohen, the founder of WP Engine, pushed back hard. His line was essentially: it's difficult to find successful companies where the founders didn't work eighty-plus hours and didn't get to a million in revenue in under four years. If you're two years in and you still need a day job, he argued, then by definition the business doesn't have good fundamentals. He uses ten thousand dollars a month per founder as his rough test for whether you're ready to go full-time. That's the tough-love camp, and you can't wave it away — Cohen built a real company.

But David Heinemeier Hansson, the creator of Basecamp, looked at the same situation and said something different. Yes, he agreed, you can't just launch a thing and let it sit there and expect magic. Growth has to be there. But — and this is the part that matters for sustainability — he said if you can spend ten to fifteen hours a week on something, that's a meaningful investment of time, and it can absolutely change the trajectory of the business. Ten to fifteen hours. Not eighty.

So who's right? Here's where the lean falls, and why. Cohen's measuring whether a business is venture-quality — whether it has the fundamentals to become a fast-growing full-time company. By that yardstick, sure, slow growth is a warning sign. But that's not the game this entire course is about. The thesis here has never been "build a rocket ship." It's been "build a calm, profitable, mostly-automated business that fits in the gaps of your life." For that goal, DHH's framing is the right one — and more to the point, Cohen's eighty-hour standard is precisely the standard that produces the burnout statistic we opened with. If the only businesses that count are the ones that ate eighty hours a week, then the developer with a day job and fifteen real hours has already lost before starting. That can't be true, because Transistor, MailChimp, and FeedbackPanda all exist. The contested point isn't really speed. It's what kind of company you're trying to build — and you get to choose.

That choice is the heart of what gets called the calm company philosophy. And it's worth being precise about what it actually means, because it's easy to mistake it for "go slow and don't try." It means the opposite. It means designing the business, from day one, to fit your life instead of consuming it. Arvid Kahl frames the bootstrapping journey as four stages — preparation, survival, stability, growth. He'd know: he grew FeedbackPanda to fifty-five thousand dollars a month and sold it just two years in. The entire point of running it sustainably is that you're meant to still be a functioning human at the end. Kahl's own warning is blunt: building a business will take a lot of work and sacrifice. He's not selling you a four-hour workweek. He's selling you a business that doesn't require you to be a martyr.

Here's the part nobody tells you, and it connects directly back to the over-engineering trap from the very start of this course. Every manual process you add to your business is a process you now have to maintain forever — with energy you don't have. The developer instinct to do everything carefully by hand is the same instinct that quietly builds you a second full-time job. The calm-company move and the small-business move are the same move: automate the support, make the onboarding self-serve, and ruthlessly choose what not to do. Sustainability isn't a wellness add-on you bolt on at the end. It's the same engineering discipline applied to your own time as a resource.

Stay with this for one more step, because it's the part that separates persevering from quietly drowning. Those two things look identical from the outside. Both involve a tired person still showing up. The difference is whether you actually know your numbers — and not the business numbers, your personal ones. Your runway. How long can you keep this pace before something breaks — the project, your health, your relationship, your day-job performance? Persevering is showing up while running a plan you can sustain. Drowning is showing up while running a plan that's silently bankrupting you, telling yourself month after month that you'll rest after the next milestone. The milestone moves. It always moves.

So if a friend asked you right here, what's the one thing the developers who go the distance actually do differently — what would you say? … They set honest expectations before they start, not after they crash. They look at the six-year median and they plan for years, not weeks. They don't grind in isolation — they find the one or two people who keep them sane. They treat fifteen real hours a week as a feature, not a failure. And they design the business to need less of them over time, not more.

Strip away everything else and three things are doing the real work here. The baseline matters — you're not starting rested, so the plan has to account for a tired person, not an imaginary fresh one. The pace matters more than the effort — slow and sustainable finishes the race that heroic sprints abandon at month four. And the design matters most of all — a business engineered to fit your life is the same business that survives long enough to pay you, because the founder is still standing when the slow compounding finally kicks in.

That's why "small is a strategy" was never just about money. It's the survival strategy that keeps you in the game long enough for everything else in this course to actually work. Which leaves exactly one question worth answering: now that you know the full sequence — intent before code, validate before build, price for value, recruit by hand, then engineer the systems that scale you down to a few hours — what's the single concrete move you make this week?

15How to Build a Profitable One-Person Developer Business

That's the whole arc — fourteen chapters of it. Now, one scene to bring it home.

Picture two developers, both six weeks in. One has the beautiful codebase from the very start of this course — clean schemas, full test coverage, a database that could handle a million users, and exactly zero of them. The other one shipped something rough three weeks ago, charged for it on day one, talked to eleven people, rewrote half of it based on what they said, and just landed their fourth paying customer at twenty-nine dollars a month. The first developer is a better engineer. The second one has a business.

That gap is the whole thing. And by now you know it isn't a talent gap or a discipline gap — it's a sequencing gap. The first developer put code first and everything else second. The second one flipped the order, and once you flip the order, every advantage a developer already has finally starts to compound. So this last stretch is about turning everything you've heard into one sequence you can actually run — and then naming the one move you make this week.

Let's lay the sequence out, because it's the spine of the entire course, and it goes in an order that fights every instinct you have.

It starts with commercial intent. Not "I'll charge later" — a decision, on day one, that money is the point. That single decision clarifies everything downstream, because the moment you're trying to get paid, you stop building features nobody asked for and start asking who, exactly, opens their wallet. Then comes the idea, and the strongest ideas are the ones where you live the problem yourself — where being technical isn't just how you build it, it's the moat. Then validation, which is the cheapest insurance you will ever buy: conversations and a landing page and maybe a pre-order, all before a line of product code. Then the lean build — scrappy on purpose, the engineering instincts deliberately switched off, shipping something that embarrasses you slightly. Then price for value, which almost always means a number that feels too high. Then customers, recruited by hand, one at a time, in the places they already gather. Then — and only then — you engineer the systems: the automation, the self-serve onboarding, the time assets that scale you down to a few hours a week. And underneath all of it, the discipline to keep the pace sustainable, because the median path here is measured in years.

Notice what just happened in that sentence. Code — the part you're best at, the part you'd happily do first — sits in the middle of the list, surrounded on both sides by business work. That's not an accident. That's the correction this whole course is making.

So here's a gut-check before going further. If a friend cornered you and asked what the single biggest mistake a developer makes is — what would you say? … It's not bad code. It's good code, written before anyone has confirmed they want it. The developer who loses isn't sloppy. They're disciplined about exactly the wrong thing first.

Now, that sequence is the median playbook — the one that reliably works. But there's a separate question worth sitting with: what do the people at the very top of this game do differently? Because the data here points somewhere specific, and it should shape your choices early.

A few patterns separate the top-decile solo founders from everyone else. They sell globally from the start instead of to their local market — a one-person software business has no reason to be geographically bound, and pricing in dollars to a worldwide audience changes the math entirely. They lean toward business customers rather than consumers, because businesses pay more, churn less, and treat software as a cost of doing business rather than a discretionary toy. And increasingly, the strongest ones build AI-native products — tools where the AI isn't a bolted-on feature but the core of what the thing does. None of that is a guarantee. But if you're choosing between two ideas and one of them is "sell a consumer app to people in my city" and the other is "sell a focused tool to businesses anywhere on earth, priced in dollars," the second one is playing on easier terrain. Worth knowing before you pick.

Here's the part where this gets honest, though — and it's where a real debate lives among people who've actually done this, not just tweeted about it.

How fast should this go? There's a genuine fight here between two people worth listening to. Justin Jackson — the bootstrapper behind Transistor, the podcast hosting company he co-founded — wrote a piece arguing that startups which grow slowly on the side do just fine. He pointed at MailChimp's founders, who waited six years before going full-time, consulting on the side while app revenue grew. He pointed at Basecamp, at Todoist. His own data point: Transistor passed four thousand dollars in monthly recurring revenue four months after launch, growing on the side. The slow-and-steady camp says: give the business time, remove the pressure, let it compound.

Then Jason Cohen — the founder of WP Engine, a serious operator — replied to Jackson publicly, and he did not pull the punch. His words, roughly: it's hard to find successful companies where the founders didn't work eighty-plus hours and took longer than four years to reach a million in annual revenue. If you're two years in and you still need a day job, then by definition the business doesn't have good fundamentals. Cohen uses ten thousand dollars a month per founder as his rough test of whether you're ready to go full-time.

So who's right? Here's where the evidence actually points, and it's more nuanced than either tweet. Rob Belcher, who'd run a study at his finance firm, dropped the number that reframes the whole argument: across a survey of around nine hundred and fifty B2B SaaS companies, the median time to a million in annual recurring revenue was six years. Six. Not the eighteen months Twitter sells you. And DHH — David Heinemeier Hansson, the Basecamp co-founder — landed on the synthesis that holds up best: you can't launch something and then just let it sit and expect it to grow. But ten to fifteen hours a week of real, focused investment? That can absolutely change the trajectory of a business.

Read those three together and the lean tips this way. Cohen is right that you can't dabble — a project you touch idly on Sundays won't reach escape velocity, and he's right that flat revenue with no growth is a dead fundamental no matter how slowly you tell yourself you're going. But the strict four-year, eighty-hour gate is survivorship talking. Belcher's six-year median is real, drawn from nearly a thousand actual companies, and it describes a path most of those founders walked while gainfully employed. The honest position isn't "go slow" or "go hard." It's: go consistent. Fifteen focused hours, sustained for years, beats both the heroic sprint that burns you out and the idle hobby that never compounds.

Which is exactly why the sequence has sustainability baked into it rather than bolted on at the end. A multi-year median path is only worth walking if you're still standing at year three.

Now, there's a sharper version of this slow-but-consistent idea, and it comes from Rob Walling — the founder behind Drip and MicroConf, who's watched, by his own count, thousands of bootstrappers launch products over a decade. He calls it the stair step approach, and it's the antidote to the most common way developers blow up on step one.

Here's the trap Walling names. Everyone wants to launch a standalone subscription software product right out of the gate — recurring revenue is the holy grail, after all. But a standalone SaaS is the hardest possible first move, because you have to build it and market it from scratch, with no built-in audience and no discovery. Walling's counsel: don't start there. Start with something smaller that plugs into an ecosystem that already has customers — a WordPress plugin, a Shopify app, a Heroku add-on, an ebook, a course. These are small to build, cheap to buy, and crucially, they come with built-in discovery through the plugin repository or app store. You're not also inventing a marketing channel from zero.

And here's the second half of the stair step that most people miss — the single traffic source. Walling's advice is to get good at exactly one way of finding customers, not all of them at once. For him, that was SEO on his first product. Not SEO and ads and social and email simultaneously — just one channel, mastered, before adding the next. The whole approach lets you become profitable far earlier, and then develop each new skill one at a time, as you actually need it. Step one is your first simple product on one channel. Step two is doubling down on what worked until you own your time. The biggest mistake Walling sees? Founders abandoning the thing that's working to chase something bigger before they're making enough to buy back their week.

Sit with how much that contradicts the developer instinct. The instinct says: build the ambitious, scalable, standalone thing, and build it well. The stair step says: build the small, unglamorous, parasitic thing that rides someone else's distribution, get paid, and only then climb. The unglamorous path has the higher success rate. That's not a consolation prize — that's the strategy.

So let's gather what's actually doing the work here, because it's the spine of everything you've heard. The order matters more than the talent: intent before code, validation before building, price for value, customers by hand, systems last. Consistency beats both speed and dabbling — fifteen real hours sustained for years is the median path, and the median path is measured in years, not weeks. Climb in stair steps: small product, single channel, double down before you reach for something bigger. And the deepest reframe, the one this entire course has been quietly building toward — every business skill you've been avoiding is a system, not a foreign language.

That last one is the whole thesis, so let it land properly. Pricing isn't a personality trait you either have or don't — it's an experiment with a measurable output. Marketing isn't a dark art performed by people in suits — it's a testable funnel with inputs you can instrument and copy you can iterate, the same way you'd iterate a function. Finding customers isn't charisma — it's going to a specific known location where specific known people already are. Every one of these things you've been treating as the soft, scary, non-engineering part of the business is, in fact, a system. And systems are the thing you are already best in the world at building. You were never missing the skill. You were just pointing it at the wrong layer of the problem.

Here's the encouraging part, and it's grounded in where things actually stand in 2026: solo founding is at an all-time high. The tooling that used to require a team — billing, support, content, the build itself — now collapses into things one person can run, increasingly with AI absorbing the load. The cost of running each experiment has never been lower. The structural advantages of being a developer have never compounded faster. The only thing that's ever been in short supply is the willingness to put the commercial question first.

Which brings this all the way back to the developer with the cleaner codebase — the one losing to the person with the Google Sheet. You now know precisely why they lose, and precisely what to do instead. So the only question left is the one that actually decides everything: what do you do this week?

Not this quarter. This week. And the move is deliberately small, because starting beats planning every single time, and a developer's favorite form of procrastination is a really thorough plan. So pick one. Write the one-paragraph description of a problem you personally live with and would pay to make go away. Or message three people who have that same problem and ask them about it — not pitching, just asking. Or stand up a single landing page that describes the thing and has a button that asks for an email or a pre-order. Any one of those. This week. Before you write a line of product code, before you design a schema, before you pick a framework.

Because here's the one sentence to carry out of this entire course and repeat to the next stuck developer you meet: you already know how to build — the whole game is learning to build the business with the same hands. Pick the move. Start it this week. The codebase can wait. The customer can't.

16How to Build a Profitable One-Person Online Business as a Developer

Here's the whole thing in one breath.

Commercial intent first. Before a line of code, decide who pays and why. Then the idea — not a clever one, a painful one, ideally a problem you live with yourself. Then validation, because the cheapest insurance a developer can buy is finding out nobody wants it before the build. Then the lean MVP, scrappy on purpose, with the over-engineering instincts switched off until paying customers tell you to switch them back on. Then price for value, not for cost, because you're almost certainly charging too little. Then customers, recruited by hand, one at a time, in the places your niche already gathers. Then automation — billing, onboarding, the support questions you've answered fifty times — so the business runs while you're at the day job. And underneath all of it, a pace you can sustain for years, because that's how long this actually takes.

That's the sequence. Eight moves, in that order. Get the order wrong and the structural advantages a developer has never compound. Get it right and they do.

Now, the honest trajectory. Meaningful recurring revenue is a six-to-eighteen-month story, not a twelve-week one. The median bootstrapped path is measured in years. Stripe's data on solo founders is blunt about what the top performers do differently: they sell globally from day one instead of to one local market, they lean B2B because businesses pay more and churn less than consumers, and they build AI-native products rather than bolting AI on later. Solo founding is at an all-time high right now, and the tooling has never made the build cheaper. None of that shortens the years. It just raises the ceiling on what one person can hold.

You already know which developer had a business. The one who shipped something rough, charged for it on day one, and recruited customers by hand. Not the one with the immaculate schema and the empty database. That queue was ready for a million users. The million users never came. The gap between those two developers isn't talent. It's order of operations. And by now you've watched it play out across every stage.

So here's what's different now. You're not the developer who started this course — the one who thought the build was the hard part. You've watched the trap from the outside. You know the over-engineering looks like good engineering. You know the clean codebase with nobody inside it is the dead one. The next time you catch yourself rewriting the parser instead of talking to a human, you'll feel it. That instinct is yours to override now. Nobody can hand it back.

So pick the move. Not someday — this week. And pick it based on where you actually are right now.

If you don't have an idea yet, you're not stuck, you're early. Spend the week mining your own friction. Write down every time something at work or in your day costs you twenty minutes it shouldn't. The list is your idea pipeline.

If you have an idea but haven't validated it, don't open your editor. Send ten emails to people who have the problem and ask them how they handle it today. Or stand up a one-page landing site and see if anyone gives you their address. Talk to humans before you talk to the compiler.

If you've already validated — if real people have told you they'd pay — then this is the week you ship something embarrassingly small and put a price on it. Not next month. This one.

You already know how to build. That was never in question. The whole game is building the business with the same hands.

Sources & References

This course draws from the following sources. Visit them for additional depth.

Want a course that doesn't exist yet? Request one →