Back to Projects
FrontendBackendSEO

This Portfolio Website

Engineering-first portfolio built with Next.js and system thinking

100/100
Lighthouse Score
<1.2s
Load Time
TBD
Conversion Rate

Problem & Context

The Challenge

Existing portfolio positioned me as a creative developer rather than a systems engineer. Needed to signal production ownership, architecture thinking, and engineering depth within 5 seconds.

Context

Transitioning from Application Support Engineer role to full-stack/systems engineering positions. Portfolio is the first credibility filter for recruiters and senior engineers.

System Overview

Built from scratch with Next.js 16 App Router, server-side rendering for SEO, animated system diagrams with Three.js, case study architecture with reusable components, and deployed on Vercel edge network.

Architecture

Server-rendered Next.js application with static generation for performance, client-side hydration for interactivity, and component-based architecture for maintainability.

App Router (RSC)
Server-side rendering, routing, SEO optimization
Component Library
Reusable UI elements (SystemDiagram, MetricCard, etc.)
Data Layer
Curated project data, case study content structure
Email API
Contact form backend with Nodemailer
Edge CDN
Global distribution via Vercel Edge Network

Visual Evidence

Next.js Portfolio Architecture: Edge CDN, App Router with RSC, component layer, data/API layer, serving multiple device clients

Next.js Portfolio Architecture: Edge CDN, App Router with RSC, component layer, data/API layer, serving multiple device clients

Tech Stack

Next.js 16TypeScriptThree.jsFramer MotionVercel

Key Engineering Decisions

Framework: Next.js vs Astro vs SvelteKit

Challenge:

Need SSR for SEO, but also rich client-side animations

Solution:

Chose Next.js 16 with App Router for RSC, streaming SSR, and mature ecosystem (Three.js, Framer Motion)

Tradeoffs:

Heavier bundle than Astro but better DX and hiring signal

Content Strategy: CMS vs Hardcoded

Challenge:

Case studies are long-form, structured content

Solution:

Started with TypeScript data structures for iteration speed. Plan to migrate to MDX for rich formatting.

Tradeoffs:

Less content flexibility now, but zero CMS complexity

Results & Impact

Lighthouse Performance

Perfect score
Before:N/A
After:100

Time to Interactive

Sub-second
Before:N/A
After:1.2s

Bundle Size

Optimized
Before:N/A
After:120KB gzipped

Failures & Learnings

1

Hero section messaging is THE critical element - iterate here first

2

System diagrams communicate architecture thinking faster than words

3

GitHub stars do not equal credibility - depth beats breadth

4

Responsive design is table stakes - mobile traffic is 60%+

5

SEO fundamentals (meta tags, semantic HTML, performance) are non-negotiable