Emmanuel Adoum — Developer Portfolio
2026-01-01Full Stack

Emmanuel Adoum — Developer Portfolio

Next.js 15TypeScriptTailwind CSSFramer MotionFirebase+4

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

Next.js 15
TypeScript
Tailwind CSS
Framer Motion
Firebase
NextAuth.js
Prisma
Vercel
ShadCN UI

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

01

Built out core portfolio sections: Hero, About, Skills, Projects, Journey, Testimonials, Contact

02

Developed a full blog system with MDX support, categories, tags, search, and related posts

03

Implemented authentication (email + Google OAuth) with protected routes and an admin dashboard

04

Added a nested comment and reply system backed by Firebase Firestore

05

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.

Return to the Archive.

Emmanuel Adoum | Portfolio