This is my first blog post ever. I’ve wanted to do this for years, but perfectionism kept getting in the way. Let me tell you about the time I spent 100 hours building a blog I never launched.
How It Started (Badly)
June 25, 2023. I decided to build a blog from scratch using React and TypeScript. But I also wanted to learn something new, so I picked Deno and Fresh. Sounds reasonable, right?
Then I made a list of features: GitHub authentication, clean UI, perfect SEO, massive test coverage, post listings, tag search, comments, related posts, responsive design, animations, a changelog page, dark/light mode, multi-language support, custom markdown processing, and a bunch of other stuff I can’t even remember now.
I wanted it to be perfect. Code quality, performance, everything.
For the first couple of weeks, I was excited as hell. I spent around 100 hours researching, writing code, rewriting code, researching more. The results looked good, but I was frustrated. Every time I finished a feature, I’d already thought of a better way to do it. I’d get stuck on something for days, and the end result still wasn’t as good as I wanted.
After some time, I started procrastinating. Then I stopped working on it entirely.
The Startup Mindset Problem
At that point, I’d been working as a software developer for four years, all of it in startups. If you’ve worked in a startup, you know the drill: get things done fast while requirements change constantly. Ship, iterate, repeat.
I think that’s what fucked me up. I wanted to build a side project with startup-level features but also achieve some impossible level of perfection. After a year with the project on hold, I realized I was doing it wrong.
There’s no such thing as a perfect project. There will always be something you could do better. And something simple that works is infinitely better than something complex that doesn’t.
Starting Over (The Right Way)
So I scrapped everything and started fresh. New Deno project, new approach.
This time, I wrote down the minimum features I needed for version 1. Just the essentials. I spent a few hours last night and today building it, and honestly? I’m happy with it. It’s not perfect, but it’s live. It works. People can read it.
Now I can actually write posts while planning the next features. I can build in public, get feedback, iterate. The blog is up and running, not sitting in a folder labeled “TODO” on my desktop.
The Lesson
Don’t overcomplicate things. Start simple and get it done. You can always improve later.
That’s what I’m doing with this blog. Building it piece by piece, writing as I go, adding features when they make sense. Not when they’re “perfect.”
If you’re sitting on a side project because it’s not ready yet, ask yourself: is it really not ready, or are you just scared it won’t be perfect? Because perfect doesn’t exist. Shipping does.
Hope this helps someone out there who’s procrastinating on their own project. Just start. You can fix it later.
See you in the next post.
