Back to blog
Jul 29, 2025
4 min read

Side Projects Die Fast. Here's How I Keep Mine Alive.

I used to think finishing a side project meant building something big enough to impress myself. Now? I just want to sleep well and smile when I open the repo a year later.

The graveyard behind my GitHub

Project Graveyard

There are folders I haven’t touched since 2021.
Projects that started with excitement — dopamine rush, new tech, maybe a cool domain name.

And then… nothing.

You know the drill.
One late night, you push 14 commits. The next day, life hits.
Work, a deadline, a relationship, or just plain burnout.
You tell yourself, “I’ll pick it back up this weekend.”

You won’t. I didn’t.

Where I put my side projects

Rule 1: Timebox or trash it

Distracted boyfriend is looking at feature creep

If I can’t finish a working version in 2 weekends, it’s too big.

That’s the rule.

I’m not building Stripe.
I’m not iterating forever on something no one asked for.
I just want to make things that work, maybe help me, maybe make me laugh.
That’s it.

And when the timer’s up?
I either ship it ugly or let it go.
No mourning. Just Ctrl+C and breathe.

Rule 2: No trend-chasing

If you say “AI” or “crypto” to me right now, I’ll physically wince.

It’s not that I hate new tech. I’m just tired of pretending I care.
I’ve built things just because they were hot — and every time, I burned out faster than I built.

Drake say no with AI/Crypto prefer personal tools

So now I ask:
Would I still build this if I couldn’t tweet about it?
If no one clapped?
If I had to use it alone, forever?

If the answer’s no, I don’t touch it.

Rule 3: One problem, solved stupidly well

I built a CLI tool once to batch-rename all my screenshots.
Nothing fancy. No UI. Just Go and some flags.
It took an hour. I still use it. I love it.

Meanwhile, a “smart journaling app with mood detection” is sitting in dev purgatory with 900 lines of broken intentions.

It ain't much but it's honest work

Small wins stick. Big dreams rot.
That’s the pattern. I’m learning to choose small.

Rule 4: Finish ugly, or don’t finish at all

Here’s the thing — when I try to polish every corner, I never ship.
Because I always find one more corner. And then another.

The magic is in getting it out, even if it’s not cute.
Broken CSS? Ship it.
No mobile support? Ship it.
Hardcoded strings? Please. Ship it.

Ugly but it works

The joy isn’t in perfect.
It’s in done.

Rule 5: Boring stack, boring choices

I used to rebuild the same stack setup every time. New tool, new config, new bugs.
It felt fresh. It also sucked.

Choosing boring stacks

Now?
Go backend. SQLite if I need state. SvelteKit if I need UI.
No auth unless I absolutely must. No tests unless I want to test.

Repetition isn’t boring — it’s efficient.
I’d rather finish something familiar than abandon something “innovative”.

Rule 6: No one needs to see it

Some of my favorite things live in a private folder called junks/.
I know. Terrible name. But I love that folder.

There’s a little app that counts the word “actually” in my writing.
A button that explodes when clicked too many times.
A clone of Wordle that only accepts Vietnamese food.

No audience. No validation.
Just fun.

Built a tool no one will ever use, inner peace

Written from my desk in silence, 1:17AM

I don’t always follow my own rules.
Sometimes I chase shiny. Sometimes I overbuild. Sometimes I stall.

But I’ve learned this: the projects I actually finish are the ones I start small, build quiet, and walk away from with a grin — not a plan.

No pressure, no pitch deck, no “what if.”

Just shipped. That’s enough.