The source code for this blog is available on GitHub.

Blog.

No Clear Path

Cover Image for No Clear Path
Phuong Nguyen
Phuong Nguyen

Title: Building My Portfolio: A Journey of Pixels, Pain, and Progress

There’s a special kind of existential crisis that comes with building your own portfolio website. It’s somewhere between “What am I even doing with my life?” and “Why is this button floating halfway off the screen?” This is where I currently live. Not a physical place—obviously—but the mental pitstop of every self-taught developer who thought, “Yeah, let’s save $20 a month by doing it myself.”

The Decision to DIY

It started simple: I could either pay Squarespace to hold my hand and cradle me in their corporate embrace, or I could get my hands dirty with a DIY site. As someone trying to make a name in backend development, it felt almost sacrilegious to outsource my personal brand. If I can’t build my own site, what right do I have to tell anyone I can build theirs?

So I bought a domain: cmdq.blog. Short, cryptic, and (if you squint) clever. A nod to “Command Quit,” which, ironically, is what I wanted to do five minutes into deploying my template.

Welcome to the Abyss of Options

Next came the hosting question. Everyone has an opinion about where to host your site: GitHub Pages? Vercel? Netlify? The actual sun? It’s like asking which programming language is best—no one agrees, and the wrong choice might get you exiled from Twitter.

I settled on Vercel because it sounded fast, modern, and intimidating enough to fool people into thinking I know what I’m doing. I found a pre-built blog template, deployed it, and… well, nothing exploded. Progress! But then came the real challenge: customization.

Templates Are Lies

Here’s the thing no one tells you about templates: they’re not really made for you. They’re made for an idealized version of you—someone who has three portfolio-worthy projects, a perfectly written bio, and no existential dread about putting it all online. That’s not me. I’m staring at placeholder text that says, “Lorem ipsum dolor sit amet,” and thinking, “Same, bro.”

So now I’m neck-deep in CSS, adjusting margins by 1px at a time because the universe might collapse if my contact form isn’t perfectly centered. Every “small tweak” feels like I’m playing Jenga with my sanity. Change the font? Cool, now the navbar is gone. Add a button? Great, now it’s in Portuguese for no reason.

Learning by Fire

But here’s the thing: I’m learning. I’m learning how to connect my custom domain (spoiler: DNS propagation is the internet’s version of waiting for water to boil). I’m learning how to work with static templates and deploy changes from GitHub. I’m learning that there’s a difference between “saving money” and “valuing my time.”

And somewhere in the chaos, I’m actually building something I’m proud of. Sure, it’s a little rough around the edges, but so am I. This portfolio isn’t just a website; it’s a snapshot of me, right now, fumbling my way through backend development and finding clarity in the chaos.

What I’m Taking Away 1. Perfection is a Myth: No one’s portfolio is perfect. If it looks perfect, they either hired someone to do it or sold their soul to the devil (probably both). 2. The Real Skill is Problem-Solving: Whether it’s figuring out how to fix a rogue image or deciding if cmdq.blog is clever or confusing, every decision is a tiny problem to solve. That’s the whole job of a developer, right? 3. Embrace the Journey: Building this portfolio is as much about growth as it is about showing off. Every misstep is a lesson, and every fix is proof I’m getting better.

So yeah, it’s not perfect, but neither am I. And when someone visits blog.cmdq.dev, they’ll see more than a portfolio—they’ll see a person who didn’t quit, even when the navbar tried to ghost them.

Welcome to my work in progress. It’s messy, but it’s mine.

Lorem Ipsum

Tristique senectus et netus et malesuada fames ac turpis. Ridiculous mus mauris vitae ultricies leo integer malesuada nunc vel. In mollis nunc sed id semper. Egestas tellus rutrum tellus pellentesque. Phasellus vestibulum lorem sed risus ultricies tristique nulla. Quis blandit turpis cursus in hac habitasse platea dictumst quisque. Eros donec ac odio tempor orci dapibus ultrices. Aliquam sem et tortor consequat id porta nibh. Adipiscing elit duis tristique sollicitudin nibh sit amet commodo nulla. Diam vulputate ut pharetra sit amet. Ut tellus elementum sagittis vitae et leo. Arcu non odio euismod lacinia at quis risus sed vulputate.