Portfolio Site
2026Personal portfolio and blog built with Next.js 16, Tailwind CSS v4, and shadcn/ui with Base UI.

Overview
A ground-up rebuild of my personal portfolio, migrating from an ageing Create React App setup on Firebase to a self-hosted Next.js 16 App Router app. The goal was a clean, fast, and maintainable site that showcases my work and serves as a platform for writing.
Tech Stack & Architecture
A TypeScript Next.js application built with shadcn/ui components and Tailwind CSS, hosted as a Docker image on a Hetzner VPS.
Key Features
- Landing page, project and blog pages, contact page, and CV
- Typed route navigation helper for compile-time safe links
- shadcn/ui with Base UI for fully controllable components
- Dark mode with system preference detection
- Self-hosted VPS deployment
Challenges & Learnings
My old portfolio was outdated, had a basic design, and didn't accurately represent me as a developer. The biggest challenge with this rebuild was communicating my experience and skill set without overwhelming prospective clients. I wanted to provide enough material to judge my ability to deliver without burying them in details.
This was also my first custom blog infrastructure using markdown. Previously I've always used a GUI-based platform, but for this site I wanted experience with markdown-based tooling - it's the format I'm most comfortable with and I find it provides a better writing experience once you're in a flow state.
Have a similar project in mind?
I'd love to hear about it. Let's talk about what we could build together.
Let's Talk