
Emmanuel Adoum — Developer Portfolio
01. Overview
A cinematic, full-stack personal portfolio website built with Next.js 15 and TypeScript. Features a blog with Firebase-backed comments and replies, Google OAuth authentication, an admin dashboard, dark/light mode, and premium glassmorphism UI with Framer Motion animations.
The Objective
To build a stunning, production-grade personal portfolio that showcases projects and writing while functioning as a full blog platform with authentication, comments, and admin management.
The Outcome
A deployed portfolio and blog platform at emmanueladoum.com featuring cinematic animations, full authentication, a blog with nested comments, a project archive, and an admin dashboard.
02. Stack Architecture
03. Key Features
Cinematic glassmorphism UI with Framer Motion animations throughout
Full blog platform with categories, tags, search, and table of contents
Nested comment and reply system with user authentication
Google OAuth and email/password login via NextAuth.js
Admin dashboard for post and user management
Dark/light mode with system preference detection
Fully responsive across all screen sizes
04. Engineering Pipeline
Built out core portfolio sections: Hero, About, Skills, Projects, Journey, Testimonials, Contact
Developed a full blog system with MDX support, categories, tags, search, and related posts
Implemented authentication (email + Google OAuth) with protected routes and an admin dashboard
Added a nested comment and reply system backed by Firebase Firestore
Deployed to Vercel with custom domain at emmanueladoum.com
05. Challenges & Execution
The Constraint
Building a secure nested comment system with reply threading and real-time updates on a static-first Next.js architecture
The Execution
Designed a Firebase-backed comment and reply data model with per-post collections and user-linked documents.
The Constraint
Implementing Google OAuth with NextAuth.js on a custom domain with correct redirect URI configuration
The Execution
Configured NextAuth.js with NEXTAUTH_URL pointing to the production domain and added the callback URI in Google Cloud Console.
The Constraint
Achieving a cinematic, Apple-tier design with glassmorphism and smooth Framer Motion physics while maintaining excellent performance
The Execution
Used Framer Motion layout animations, spring physics, and staggered reveal transitions to achieve silky-smooth interactions without layout thrash.