Shipping My First Professional Portfolio Website (And Knowing When to Stop)

Lessons from building, deploying, and resisting the urge to endlessly tweak a Flask project

Posted by Philip Aron Barlaan on February 06, 2026

πŸš€ I recently finished and deployed my first professional portfolio website.

It’s built with Python, Flask, and Bootstrap, and it now lives online as my main place to showcase selected projects.

This wasn’t my first Flask app—but it was the first one where I treated the project like something real people would actually visit (other than my blog).

And that changed everything.


From “Just Another Project” to a Real Product

At first, this was supposed to be a simple portfolio. A place to list projects, add a contact section, and move on.

But once I started thinking about recruiters, hiring managers, and mobile users, the mindset shifted. Small things suddenly mattered:

  • 🎯 Does this feel clean and intentional?
  • πŸ“± Does it work well on mobile?
  • 🧠 Does the design distract from the projects or support them?

That’s when it stopped feeling like a coding exercise and started feeling like a product.


The Unexpected Challenge: Mobile Scrolling

One of the hardest parts wasn’t Python or Flask—it was mobile scrolling. πŸ˜…

The hero section used a carousel and full-height elements, which looked great on desktop but caused scrolling issues on mobile, especially iOS. The page looked fine, but the scroll would lock or behave strangely.

Fixing it required:

  • πŸ” Understanding how JavaScript sets dynamic heights
  • 🎨 Overriding those behaviors safely with CSS
  • πŸ“² Making sure touch gestures prioritized scrolling, not swiping

It took time, testing, and restraint—but solving it taught me more about real-world frontend behavior than any tutorial ever did.


Shipping Is a Skill

After deployment, I had a moment I didn’t expect.

I kept thinking:

  • πŸ€” “Maybe I should refactor this.”
  • πŸ€” “Maybe I should tweak the spacing.”
  • πŸ€” “Maybe I should restructure the templates.”

But here’s the truth I had to accept:

βœ… The site already works.
βœ… It’s clean.
βœ… It’s readable.
βœ… It does what it’s supposed to do.

So I stopped.

Knowing when not to change things is just as important as knowing how to build them.


Post-Launch Refinement (Without Overengineering)

After launch, I only made changes that clearly improved quality:

  • 🧩 Unified the footer across all pages
  • πŸ“± Ensured mobile behavior was stable
  • πŸ“ Left future refactors as notes instead of rushing them

Things like extracting headers into base templates? That can wait. There are only two templates right now.

Not every improvement needs to happen immediately.


What This Project Represents

This portfolio isn’t about showing everything I’ve built. It’s about showing how I think, how I solve problems, and how I ship.

It reflects:

  • βš™οΈ Intentional project selection
  • 🧼 Clean structure over clever tricks
  • 🌍 Real deployment, not just local demos
  • ✨ Respect for the user experience

And most importantly—it’s done. 🟒


Final Thought

Building is important.
Refining is important.
But shipping—and being able to say “this is good enough”—might be the most underrated skill of all. 🧠

This portfolio marks a shift for me: from learning in isolation to building things meant to be used.

And that’s a line I don’t plan to cross back over. πŸ’»

Okay, shameless plug time 😎 — you can see the real deal live on my portfolio site HERE.