Discipline and Self-Mastery as Keys to Progress - Especially for Perfectionists
This is the story of how I finally released a project. Or, more accurately, how I let myself release a project - because here you are, looking at the result, even though it’s far from “finished.”
In the past, I had plenty of ideas for things I wanted to build, including my engineering thesis app (which, believe it or not, actually got half-built!). But none of those projects ever made it across the finish line. I used to think the problem was my lack of persistence or consistency. But this time, I’ve realized the issue was something else entirely. Technical expertise wasn’t the missing piece - I had that, maybe even more than I do now. What I really lacked was discipline, self-mastery, and knowledge about software engineering that extended beyond pure coding.
Over the years, I filled GitHub with promising repos. I probably have three or four repos dedicated just to personal websites and blogs. None of them ever saw the light of day. The reason? Scope creep1. Each time, I’d start with a huge list of requirements, and within weeks, I’d burn out. Dozens of ideas that I was excited about initially became overwhelming as they multiplied. By the time I reached line 10 of my “200-point” list, I’d already spent two weekends on the project and felt miles away from the end.
There was another issue: I wasn’t doing these projects for the learning experience; I was chasing a polished, finished result. (Something I touched on in my previous post).
What Changed This Time?
So, what was different? I began my portfolio website with a simple, stripped-down goal: to build a basic Next.js website that could present a few details about me. I defined this project with only a few lines of requirements. Within 2–3 hours, I had the first version live (thanks, LLM-enhanced IDE!). Ironically, I spent more time on writing the website’s copy than coding it.
Then, as I looked at my project, curiosity kicked in:
- What if I added dark mode?
- What if I offered translations?
- Could I split it into two career paths?
New technical questions came to mind:
- How could I make it faster?
- How could I make it SEO-friendly?
Some of these questions were easy to address; others consumed my afternoons or weekends. If I’d defined these as requirements from the beginning, I would’ve quickly felt overwhelmed by a constant mental reminder of how much was left.
Embracing the MVP Mindset
The blog you’re reading right now was an addition I made along the way - completely out of scope for the original website. I released it once it met my MVP (minimum viable product) requirements:
- I could write posts.
- I could modify posts.
- It was fast.
- It was SEO-friendly.
Currently, the blog reads .mdx
files from disk, parses the markdown, and displays it on the site. I even write and preview posts in Cursor, in markdown. About as basic as it gets!
Staying Motivated and Letting Go of “Extras”
Do I have improvement ideas? Absolutely! I’m working on moving data storage to Supabase and setting up a database for metadata like tags, descriptions, and author details. This is mostly for the learning experience, as the current setup works fine. I also cut initial ideas for things like search, date filters, share buttons, comments, and more. With a few readers and a handful of posts, these features wouldn’t add much value right now.
But maybe, dear reader, if you’re reading this sometime in the future, you’ll see all those features in place - who knows?
The reality is, I want to work on these additions (I honestly can’t wait!). But I already have a functional blog that I can post to, which makes me even more motivated to improve it. If this were just another unfinished repo on GitHub, my motivation would likely be much lower.
To my present self: good job! I’m proud of you, choomba2.
To my future self: remember to keep doing things this way. Everyone says to just build an MVP and keep things simple, but sticking to that requires discipline and focus on the real goal. (Realizing what that goal actually is? Still working on that part.)