It’s 11pm on a Tuesday and I’m staring at a folder on my desktop called “the_app_FINAL_v3.” Inside is a half-built app, three different README files that don’t match each other, and a component from Stack Overflow I copied and never used again. Sound familiar?
I’ve been “working on” this project for eight months. Eight months of telling myself I’ll get back to it after the busy week ends, after the holidays, after I feel more inspired. The gap between the version that exists in my head and the one running has been slowly eating me alive.
Here’s what nobody talks about: finishing a side project isn’t really a productivity problem. It’s a psychology problem. And once I figured that out, everything changed.
The Graveyard We Don’t Talk About
Most developers and makers have what I call a project graveyard. You open your laptop to do something totally unrelated and for a half second you think about that project and feel a small pang. Then you close the thought and go watch Netflix.
The weird thing is, most of those abandoned projects weren’t bad ideas and weren’t even that hard to build. They just got started at a high point of motivation and then ran straight into the wall that comes after motivation fades. Which it always does, because motivation is a feeling, not a system.
I’ve started probably thirty side projects. I’ve finished four. And the four I finished had almost nothing to do with how good the idea was, how much free time I had, or how skilled I was. They came down to a completely different set of factors.
What Kills Side Projects
The first enemy is scope. You start with a simple idea, you add many features and then you realize the whole architecture should probably be different. Before you know it, you’re trying to build a platform when you originally just wanted a tool that solved one problem for you specifically.
The second enemy is invisibility. Nobody knows you’re building it. There’s no external pressure, no deadline, no user waiting on you. You could stop today and literally nothing in the world would change.
The third enemy is the gap between your taste and your ability. You got into this because you have good taste. You can see what a great version of this thing looks like. And your current build looks nothing like that. That gap is humiliating in a quiet, private way, so you avoid looking at it.

The Shift That Works
What changed for me wasn’t finding more time or getting more disciplined. It was reframing what “done” means.
Done doesn’t mean the product vision in your head. Done means a person who isn’t you can touch it. When I accepted that, I started shipping things that were small. And people used them, sometimes they even said thank you. And that external signal made me want to keep going.
The other thing that shifted was accountability. Not the fake kind where you tweet “building in public!” and then disappear for three months. Real accountability: telling a specific person a specific thing you’ll finish by a specific date. The social weight of that commitment is underrated. We’ll do for others what we won’t do for ourselves.
A Practical System That Sticks
- Pick one project. The one closest to done. Finishing anything teaches you more about finishing than planning the perfect new project ever will.
- Set a “done” definition that would embarrass your current ambitious self. Seriously. If it doesn’t feel a little too small, make it smaller. Your job for the next two weeks is to hit that tiny target. You can expand later. You can’t expand something that doesn’t exist.
- Work in public even if nobody’s watching. Write a post. Start a thread. Ship to a landing page with zero users. The act of treating your work as something that exists for other people changes how you approach it. It stops being a personal art project and starts being something with edges and a purpose.
- Track the small wins. This sounds like fortune cookie advice but it’s actually neuroscience. Your brain needs to feel progress to keep going. If the only win condition is “launch,” you’ll go months without a dopamine hit and eventually tap out. Break it down. Shipped the auth flow? That’s a win. Wrote the copy for the homepage? Win. Got one friend to test it and give you feedback? Huge win.
And when you hit the part where you’re bored and the project feels stupid and you’re not sure anyone will care, keep going anyway. That moment is not a signal that the project is bad. It’s a completely predictable phase that every project goes through. The builders who finish are the ones who know this feeling is just part of the process and push through it anyway.

Launch Tips
If you want to launch your side priject, here are a few practical tips that actually matter in the early stages:
Start with a Minimum Viable Product (MVP):
Launch with only the core features that solve the main problem. Get it into real users’ hands early, even if it feels unfinished. Use their feedback to decide what to build next instead of guessing.
Focus on niche markets first:
Don’t try to serve everyone at once. Pick smaller, clearly defined groups with specific needs. They’re easier to understand, more engaged, and give more useful feedback for faster product improvement.
Pay attention to how users actually behave
Don’t rely only on what users say. Watch how they interact with your product. Small friction points like hidden buttons or unclear navigation often reveal more than feedback alone.
Treat feedback as direction, not validation
User feedback isn’t just approval or criticism, it’s guidance. Combine it with real usage patterns to understand what actually needs to change, not just what people mention.
Expect mistakes and learn from them quickly
Early versions will be imperfect. Some features will fail or underperform. The point is to treat mistakes as learning moments, improve testing, and refine before scaling further.
Build iteratively, not perfectly
Progress comes from continuous small improvements shaped by real users. A successful product evolves step by step, not from one perfect launch.

Every time you finish something, even something small, you update your internal story about who you are. And a person who finishes things builds very differently than a person who doesn’t. There are tools out there that can help you manage the chaos of a side project, keep your tasks organized and visible, and hold yourself to the milestones you set. The most important part is deciding that this time, you’re going to treat the project like it deserves to exist in the world.
Whatever you’ve been sitting on for the past six months, someone out there would probably find it useful. Open the folder. Write down what “done” means for the next two weeks. Now go build the thing!

