The graveyard behind my GitHub
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.
Rule 1: Timebox or trash it
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.
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.
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.
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.
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.
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.