You know the pattern. Week one, you can't stop thinking about it. Week three, it's in a folder you open less and less. Week eight, you forget the repo exists until GitHub emails you about a security alert.
The usual explanation is "I lost motivation" or "I got busy." Those are real, but they're not the actual mechanism. There's a specific moment that kills most side projects, and it's the same moment every time.
The moment: when it stops being fun and starts being work
Every side project has a free period — the part where you're exploring, everything is new, and progress feels fast because you're mostly building the easy 80%. Then you hit the last 20%: error handling, edge cases, deployment, the boring settings page nobody will ever compliment you on.
This is exactly where a job would pay you to push through. A side project doesn't pay you anything except the finished thing — and the finished thing is still weeks away, invisible, and uncertain to even matter. So the switching cost to "just start a new project" (which is all free-period fun again) is basically zero. You're not lazy. You're responding rationally to the incentives you've built for yourself.
Why "just be disciplined" doesn't fix it
Willpower-based advice treats this like a motivation problem. It's actually a structure problem — you've built a system where quitting is free and finishing is expensive, and then you're surprised when you quit.
The fix isn't more discipline. It's making the boring 20% not feel like a black hole with no end.
What actually seems to work
1. Scope the boring part before you start the fun part.
Write down, up front, what "done" specifically means — not "a full-featured app," but "a user can sign up, create one item, and see it in a list." A concrete finish line turns the last 20% into a checklist instead of an open-ended slog.
2. Ship something ugly and real before you polish anything.
The fastest way to make a project feel real is to have one actual user (even if it's just you, using it for its real purpose) before the code is anything you'd be proud to show off. Motivation comes back once something is working, not once something looks good.
3. Set a deadline that costs you something if you miss it.
Not "I'll finish this eventually" — an actual date, ideally one where something happens if you blow past it. Telling one other person and asking them to check in on a specific date works better than most people expect, mostly because it turns an invisible commitment into a slightly embarrassing one.
4. Cut scope ruthlessly the moment you feel the drop-off starting.
The instant a feature feels like a slog, ask: does this need to exist for the thing to be useful, or did I add it because it seemed cool in week one? Most side projects die carrying scope that was never actually required for the core idea to work.
5. Separate "interesting to build" from "worth finishing."
Some projects are genuinely just for learning — you're not going to finish them and that's fine, the value was in exploring. The trap is not being honest with yourself about which kind of project you're in, so you feel guilty abandoning something that was never meant to be shipped, or you abandon something that actually deserved to be finished.
The uncomfortable part
None of this is really about side projects. It's about any project where the reward is far away and the cost of quitting is invisible. The same structure — concrete finish line, something real early, an external deadline, ruthless scope cuts — is just what "finishing things" looks like in general, whether the thing is a side project, a book, or a gym habit.
The motivation was never the problem. The problem was that quitting was always the cheapest option, and nothing ever made finishing cheaper than that.
What's sitting in your own graveyard of half-finished repos — and if you had to guess, was it a motivation problem or a structure problem?
Top comments (0)