Personal Portfolio Website
A premium personal portfolio built with Next.js featuring an interactive resume, AI assistant, developer terminal, PWA support, and enterprise-grade SEO.

Overview
What this
is
A detailed look at the project, its purpose, and key details.
Role: Solo developer — architecture, design system, and full implementation
A production-grade personal portfolio and CMS built on Next.js 15's App Router, designed to hold up to enterprise engineering standards rather than a typical single-page portfolio template. It includes a fully custom design system (Aurora Tech), a Prisma/PostgreSQL-backed CMS for every content type, and several product-grade interactive features built as isolated, reusable components.
Role
Solo developer — architecture, design system, and full implementation
The Problem
What needed
solving
The challenge that this project was built to address.
Challenge
Defined
Read below
A generic portfolio template doesn't differentiate a developer looking for full-stack/AI freelance work — most portfolio sites are static, content is hardcoded, and there's no way to demonstrate real engineering practice (a working CMS, real API integrations, real content-integrity discipline) within the site itself.
The Solution
How it was
approached
The approach and strategy used to solve the problem.
Solution
Defined
Read below
Resolved the dependency conflicts by pinning to specific patched major versions instead of latest-at-the-time, extracted every offending inline handler into isolated 'use client' components, whitelisted the required image host, and added a reusable SectionErrorBoundary so a single section's runtime failure (e.g. an external API being unreachable) can't take down an entire page again.
Key Features
What it
does
The core functionality and capabilities of this project.
7 features
Core functionality
User-focused
Interactive resume pulling live experience/education/skills from the database
01AI chat assistant grounded strictly in real CMS content (Groq-powered, refuses to speculate)
02Developer terminal with real commands (skills, projects, experience) and command history
03Full PWA: offline page, install prompt, update notifications, service worker caching
04Enterprise SEO: dynamic JSON-LD (Person/Website/Breadcrumb/Article/FAQ), sitemap, OG images
05Admin-editable CMS covering projects, blog, skills, experience, testimonials, and site settings
06Dark/light theme with a fully tokenized design system
07Technical Architecture
How it's
put together
The technical stack and architectural decisions behind this project.
6 layers
10 technologies
Full stack
Next.js App Router with server components as the default and client components used only where interactivity requires it (forms, the terminal, the chat widget). Prisma/PostgreSQL for all content, NextAuth v5 restricted to specific admin emails, and every external integration (GitHub API, Groq API) isolated behind its own API route with graceful fallbacks if unconfigured.
Folder Structure
Project
layout
The organization and structure of the codebase.
Click to view
Hidden
Click to expand
Tech Stack
Built
with
The technologies and tools used to build this project.
6 categories
10 technologies
Full stack
Frontend
01Tools
02Languages
03Database
04Backend
05AI
06TECH · 6 CATEGORIES · 10 TOOLS
Screenshots
A closer
look
Visual walkthrough of the project's interface and key features.
0 screenshots
Click to enlarge
Keyboard accessible
Screenshots will be added soon.
Challenges
What was hard
Key insight
Available
Read below
Hit a real dependency conflict early: Next.js 15.0.0 shipped expecting a React 19 release-candidate, not stable React 19 — required pinning to patched versions of both. Two libraries (next-themes, @react-three/fiber) still only supported React 18 in their published majors and needed bumping to their React-19-compatible releases. Separately, hit two Server/Client Component boundary bugs — an inline event handler placed directly in a Server Component (the footer newsletter form, and later a print button) — both had to be extracted into small dedicated Client Components, since React does not allow passing functions as props across that boundary at all. Also had a runtime crash from next/image loading a GitHub avatar from a host that wasn't whitelisted in next.config.mjs.
Lessons Learned
What this taught me
Key insight
Available
Read below
Confirmed real versions before pinning dependencies rather than trusting memory of 'latest' — ecosystems move fast enough that yesterday's stable pin is today's broken peer dependency. Also reinforced that any place a Server Component might pass a function prop needs a second look — the fix is always the same (extract a Client Component) but the bug is easy to reintroduce.
Performance
Measured,
not assumed
Verified performance metrics and quality scores from real audits.
Lighthouse
Coming soon
Verified
No verified Lighthouse audit exists for this project yet — scores will appear here once one has actually been run, never estimated.
GitHub
Live from
GitHub
Real-time repository stats, activity, and health metrics.
Loading...
Live data
Real-time
Repository not linked yet — this fills in once published.
Tech Insights
Why these choices
Key insight
Available
Read below
Next.js was chosen for server components and file-based routing, which fit a content-heavy, SEO-driven site well. Prisma over a raw query builder for type-safe schema evolution as new features (case studies, map locations, learning items) were added incrementally. Groq over other providers for the chat assistant specifically for inference speed in a chat-widget context, after starting with a different provider during initial build.
Future Roadmap
What's next for this project
Key insight
Available
Read below
Projects detail template, Services and Blog pages, Contact form wiring, admin dashboard CRUD forms, generating the remaining PWA icon sizes, wiring up real Lighthouse CI for the Performance Dashboard, and a first production deployment.
Related
More
like this
Explore similar projects in the same category.
2 related
Same categories
Similar work
RELATED · 2 PROJECTS · SAME CATEGORY
NAVIGATE · PREVIOUS · —

