What separates the super successful, 10k GitHub stars, front-page of Hacker News side project from the abandoned project that languishes on your GitHub, a starter template with a couple commits from June of 2021? I’d say it’s whether or not you revisit the project.
In a perfect world we’d all start projects that we work on every day, make fantastic progress, and ship within a couple weeks to thousands of users and adoring comments on Hacker News and Reddit. Unfortunately that doesn’t really happen. You pick up a project, perhaps you buy a domain name, maybe build a little bit, and then…you get a little busy, maybe you get hooked on a book, maybe you find a different thing to build, maybe you just get a little lazy. The result is an abandoned project.
And for some people, this is the end state. They abandon the project and continue this cycle in a few weeks with a new project. This is pretty understandable. Starting new projects feels so fresh and exciting! You have a new idea, and this time the idea will really work, and you’ll have that aformentioned perfect rocketship project. And that old project is so icky and boring. It’s a reminder of your laziness, your supposed failure. Besides, you started it with like, React 16 with create-react-app, shouldn’t you be using Svelte with Vite? And it’s so fun to write those first lines, get your schema set up, see those first bits of UI on the page. Much more fun than having to read old code.
I get all of this. That’s why my GitHub is full of old, abandoned projects. But the projects that I am arguably most proud of, that I bring up in interviews and keep on my resume, those projects are almost always ones that I have revisited. I have dug those projects out of the ground, brushed off the cobwebs, and kept them going.
Brushing off the cobwebs is actually a good piece of first advice. I find that this is the best way to get acclimated to a project again. Run your linter, update the libraries (within reason), fix any odd issues. I often feel a little daunted when I approach a project again, but any glance at the codebase dispells me of this feeling. There’s always some housekeeping, something productive to be done that will be satisfying once it’s finished. Memories will start to come back like “ohh yeah I need to refactor the login flow” or “ah yeah this bug was a problem”. You’ll get back into the groove in no time.
The second bit of advice is to be a little stubborn around the idea. It’s so easy to nitpick your idea and decide that no, it’s not the right plan. This is especially true if you want this project to actually gain users. It’s too easy to get in your head about whether users will like the idea. In reality, you can’t ever know if something will get users without A. talking to users, and B. shipping something and seeing if they like it. You can certainly do A., but B. is the ultimate test. If you’re getting cold feet in the middle of a project, push forward and resist the temptation to switch. That process of nitpicking is just a natural part of being too close to an idea. Much as the grass is always greener on the other side, the idea not chosen is always better.
In general you should prioritize forward movement to any doubt. Don’t worry if the tech stack is a little old. Don’t worry if the code is messy. Just keep going and you might find yourself falling in love with the project again.
Really this is about a mindset change. Instead of seeing a project as dead, abandoned, forgotten, etc., you should see it as momentarily on pause. You should see these stops as part of a project’s lifecycle. It’s okay if something doesn’t take off immediately. It’s okay if you lose interest for a bit. Much as overnight success takes a few years, rocketship acceleration might take a few starts and stops.
The best example I have of revisiting projects is actually this blog. Almost everybody has a blog that they’ve thrown together. Some people build the blog, abandon it, and never publish anything. Or they write a draft or two, but it never gets anywhere. I know that I have dozens upon dozens of drafts laying around. The difference is that I constantly revisit half-written, abandoned posts, polish them up, and ship them. Heck, this post was originally written a few weeks ago, I just scanned through my drafts for a post to ship and decided to finally give it an ending. I suspect many successful blogs work on this rediscovery model.
So go find a project that is languishing in your computer, abandoned and forgotten. Brush it up; keep building; and ship it!