Why I Rebuilt My Portfolio with Next.js App Router and Modern Web Standards

Every developer reaches a point where their existing portfolio no longer represents who they are as an engineer. A portfolio shouldn't just be an interactive resume—it should be direct proof of your technical standards, design sensibilities, and understanding of modern web architecture.
When I decided to rebuild my personal site, my goal was clear: zero unnecessary complexity, optimal performance, clean architecture, and total ownership of my infrastructure.
Here is the story behind the build, the architecture choices I made, and the engineering lessons learned along the way.
The Vision: Moving Beyond Generic Templates
In today’s ecosystem, it is easy to drop a generic template onto a host and call it a day. But building from the ground up forces you to confront real-world engineering questions:
- **How do we achieve near-instant initial paint times while keeping rich animations?**
- How should theme state (light vs. dark) behave to prevent that jarring flash of unstyled content (FOUC)?
- How can custom domain DNS be structured cleanly across multiple providers without messy redirects?
Instead of relying on heavy UI libraries, I went with a modern, modular stack: Next.js (App Router), React, TypeScript, and Tailwind CSS.
1. Zero-FOUC Theming: Getting Light and Dark Mode Right
One subtle detail that separates solid web applications from amateur ones is theme toggling. If you rely purely on standard client-side state inside React hooks, visitors often see a fraction-of-a-second flash of the wrong theme when reloading.
To solve this, I decoupled theme initialization from the React lifecycle:
- Inline Pre-Paint Script: A tiny, blocking vanilla JavaScript script runs inside
<head>before the DOM renders. It readslocalStorageand instantly attaches the rightdata-themeattribute to the<html>element. - Semantic Design Tokens: Using CSS variables combined with Tailwind utilities ensures that colors transition smoothly without layout recalculations.
- Light by Default, Dark by Choice: Setting a crisp, modern light theme by default while preserving full control for users who prefer dark mode.
2. Hybrid Infrastructure: Separating Concerns Like a Pro
A portfolio should be treated like a miniature production system. Instead of dumping everything into one monolithic hosting account, I opted for a decoupled architecture:
- Frontend & Edge Performance: Deployed on Vercel with global CDN caching, automatic image optimization, and serverless edge functions.
- Custom Domain & DNS Orchestration: Root and subdomain DNS routing managed via low-TTL records, ensuring updates propagate smoothly.
- Enterprise-Grade Email Delivery: Direct business email setup authenticated through custom SPF, DKIM, and DMARC DNS records, guaranteeing 100% inbox placement and brand authority.
This separation of concerns means the frontend remains blazingly fast and serverless, while communication channels stay secure and isolated.
3. Polish, Micro-Interactions, and Clean UX
Performance doesn't mean sacrificing personality. The site incorporates subtle cursor ambient effects, clean typography powered by Plus Jakarta Sans, and smooth scroll dynamics. The key was keeping animations CSS-driven and GPU-accelerated so that performance metrics stay in the green.
What’s Next?
This blog is where I’ll be documenting deep-dives into React architecture, Next.js performance patterns, UI/UX breakdowns, and full-stack side projects.
Thank you for visiting! Feel free to explore the projects section or drop me a line directly through the contact page.
1 reaction
Comments (0)
Log in to join the conversation.
Log in or sign upNo comments yet. Start the conversation!
Want to talk to me?
Send me a private message. My reply appears in your Inbox.