The graveyard of half-built projects is something every developer knows well. I've contributed generously to mine.

The Novelty Trap

Most side projects die in the same place: right after the fun part. You've set up the stack, built the interesting core feature, proved the concept to yourself — and then there's the boring 80% left. The CRUD pages. The auth. The error states. The deploy.

This isn't a motivation problem. It's a project selection problem. If the only reason you started was to build the interesting bit, you were never going to finish it.

Ship Something Embarrassingly Small

The only projects I've shipped were scoped down much further than I originally planned. Not "a full-featured X" but "the single most useful thing about X, and nothing else."

The version you're embarrassed to show people is usually the one you'll actually finish. Polish is infinite; done is finite.

Constraints Are Your Friend

A deadline, even a fake one, changes the calculus entirely. So does a concrete audience — even one person who's asked for the thing. "I'm building this for general use someday" is a project that never ships. "I'm showing this to Sarah on Friday" is one that might.

The Maintenance Tax

Before you start: can you imagine yourself maintaining this in a year? If not, build something simpler. The maintenance tax on complexity is paid in motivation, and motivation is the resource you're already short on.

Done Is a Superpower

A finished project, however small, compounds. You have something to show, something to iterate on, something to point at when you say you can build things. Nothing in the graveyard does any of that.