How to Finish a Side Project
By Cristian Lascu · The Sovereign Technologist · Last updated: July 6, 2026
TL;DR — What's on this page
How to finish a side project: scope, rhythm, and systems. The Sovereign Technologist. Practical frameworks for employed technologists building products, le
👉 Want the next list each Thursday?
Free. No spam. Unsubscribe anytime.
To finish a side project, cut its definition of done to the smallest thing that delivers one useful outcome to one real person, then ship that before you allow yourself to add anything else. The blocker is almost never discipline or skill; it's that "done" keeps moving. Each new idea pushes the finish line back faster than nights-and-weekends effort can close the gap. Fix the scope, not the schedule, and the project actually crosses the line. An unglamorous v1 sitting at a real URL beats an ambitious codebase that no one but you has ever opened.
The failure mode for a side project is rarely a clean quit — it's the quiet rewrite. You get roughly to the point where the interesting parts work, lose appetite for the boring last stretch (auth, error states, deploy, copy), and "start fresh" with a cleaner architecture that resets you to zero. The reset feels like progress because you're writing code again, but you've swapped a nearly-shippable thing for a brand-new unshippable one. That last unglamorous stretch is the project. Treat "I should just rebuild this properly" as a symptom of avoidance, not a piece of engineering judgment.
What does "done" actually mean for a side project?
Done means a stranger can complete the one core action without you narrating over their shoulder — not feature-complete, not pretty, just usable for a single job. Before you write more code, write two lists: the one path that must work end to end, and everything you are deliberately cutting out of v1. The cut list is the more important document, because it's where scope creep gets said out loud instead of quietly committed. If your must-work path forks into more than one branch, you haven't cut enough yet.
A blunt forcing function: describe v1 in one sentence and ban the word "and." "A page where someone pastes a URL and gets back a readability score" is one project. Bolt on "and it saves their history and emails a weekly digest," and you've quietly started three projects, none of which will ever ship. When the word "and" sneaks back in, that's your scope growing in real time — send the new idea to a v2 file and keep building the one sentence.
- →One user reaches the core action in under a minute, or you drop auth entirely for v1 and add it later
- →Exactly one happy path works end to end; every edge case shows an honest error instead of crashing
- →It lives at a URL you can paste into a message, not on localhost behind three terminal commands
- →Copy is finished on the one screen that carries the product; everywhere else it's ugly-but-clear
- →Sending it to a real person makes you slightly uncomfortable — that discomfort is calibration, not a reason to keep building
Get the next list before everyone else.
Each Thursday, The Sovereign Technologist ships a new framework, agent-ready workflow, or curated list — built specifically for senior engineers, tech leads, and consultants who want to compound career leverage without quitting their jobs.
Free. No spam. Currently read by 141+ senior technologists.
How do you keep a rhythm on 5-10 hours a week?
With a full-time job, the real tax on a side project is reload cost: every time you sit down, the first stretch goes to rebuilding the mental model of where you left off. Rhythm is the fix. Two or three fixed 90-minute blocks across the week beat one heroic Saturday, because the gap between sessions stays short enough that context survives from one to the next. End every block mid-task on purpose — leave a failing test, a half-written function, or a one-line TODO naming the exact next move. Starting is the expensive part, so make the next start cheap.
Two activities masquerade as progress on a side project: researching instead of building, and polishing instead of shipping. Reading one more framework comparison feels like diligence and moves nothing. If you catch yourself with ten tabs open about state management before v1 even runs, close nine — that instinct is almost always the boring last stretch scaring you off, not a real technical decision that v1 depends on.
What systems carry a side project across the line?
Finishing depends less on staying motivated than on having a specific counter-move waiting at each place a side project predictably stalls. Name the stall, install the fix once, and stop relitigating it every session. Below are the stalls that kill side projects and the concrete rule that gets you past each.
| Where it stalls | The rule that carries it |
|---|---|
| Scope keeps growing | A written cut list; any new idea goes to a "v2 later" file and is banned from v1 |
| Sessions start slow | End each block with a breadcrumb — a failing test or a TODO naming the exact next move |
| Interest dips near the end | A dated ship date told to one real person who is actually expecting the link |
| Endless polishing | No visual or design work until the single happy path runs end to end |
| Urge to rebuild | A "no rewrites until v1 ships" line kept where you'll see it every time you open the editor |
Why do side projects die near the end — and how do you push through?
Side projects rarely die at the start; they die once the interesting problems are solved and only the unglamorous ones remain — auth, error states, empty states, deploy config, and copy that reads like a human wrote it. None of that gives you a dopamine hit or demos well, so the brain offers a flattering exit: rebuild it properly, this time with a cleaner architecture. The exit is a trap, and taking it is how a project that was almost shippable becomes a project that is unshippable again.
Push through by making the remaining work concrete and small. List what's left as verbs, not vibes — "wire up logout," "handle the empty-list state," "write the deploy config" — and do the ugliest one first each session while your attention is freshest. Refuse all visual polish until the happy path runs end to end, then ship it slightly worse than you'd like. You can improve a thing that exists at a real URL; you cannot improve a rewrite that no one has ever used.
When should you kill a side project instead of finishing it?
Not every side project deserves to be finished, and forcing a dead one across the line wastes weeks you could spend on the next. But the honest kill signals are not the same as boredom. The real ones are narrow: you've genuinely stopped believing anyone — you included — wants the outcome, or the smallest shippable version is still months out even after you've cut hard twice. Boredom near the end means push through; a real loss of belief in the outcome means stop.
If you kill it, kill it on purpose. Write one line on what you learned and what you'd do differently next time, so the project becomes a data point instead of a vague background sense of failure. A clean, deliberate kill hands back the hours and attention the next project will need — a far better result than a half-built thing quietly rotting in a repo you've started avoiding.
For the bigger picture, read the career sovereignty guide for technologists, or jump straight to 12 ranked side-project ideas for senior technologists. To get new frameworks like this each week, subscribe to The Sovereign Technologist newsletter.
Frequently asked questions
How small should a side project's first version be?
Small enough to ship in a few focused weeks, not months. The test: describe v1 in one sentence with no "and." If it needs an "and," you're describing v2. Cut until a single user gets one outcome — one input, one useful result — with no second feature propping it up. You should feel a slight embarrassment at how little it does. That embarrassment is the signal that you've cut down to something you can actually finish, deploy, and learn from, instead of something you'll abandon at the boring part.
How do I stay motivated to finish when the new-idea excitement fades?
Assume the excitement fades once the interesting problems are solved — that's normal, not a sign the idea was bad. Don't wait to feel motivated; borrow accountability instead. Give one real person a dated ship date and let them expect the link. Keep sessions short so restarting stays cheap. And track finished pieces, not hours logged: crossing off "deploy works" and "logout works" builds more momentum than any planning session. On a side project, motivation tends to follow shipping, not lead it.
Should I rewrite the messy code before shipping?
Almost never before v1 ships. The urge to rebuild it "properly" tends to arrive exactly when the remaining work is boring, which makes it avoidance dressed as engineering judgment. Messy code a real user can reach beats clean code no one has ever opened. Ship the ugly version, watch one person actually use it, and let what genuinely breaks in front of them — not your discomfort with your own code — decide what to refactor. A rewrite is a v2 decision, not a step in finishing v1.
One framework. Every Thursday.
If this list was useful, the next one will be too. Subscribe and you’ll get the next agent-ready playbook the moment it ships.
Free. No spam. Currently read by 141+ senior technologists.