ABHISHEK UPADHYAY 
Projects

February 1, 2026

Config-Driven Portfolio & Firebase CMS

Client-Only CMS · Zero-Config Seed Fallbacks · Hybrid MDX Engine | Personal Project

Overview

This site's /admin dashboard is a client-only, Firebase Auth-gated CMS layered on top of an otherwise git-versioned Next.js portfolio. It lets the site owner edit hero copy, experience, skills, and project curation live, without touching code or redeploying, while case-study content stays MDX in the repo.

Key Features

  • Client-Only Auth-Gated CMS: Engineered a client-only, Firebase Auth-gated CMS (/admin) layered on top of a static, git-versioned Next.js App Router portfolio.
  • Zero-Config Seed System: Architected a fallback system allowing every Firestore read to degrade gracefully to a bundled static fallback file (site.config.seed.ts) when Firebase environment variables are unconfigured — the site always renders with zero required env vars.
  • Hybrid MDX + Firestore Content Engine: Designed a hybrid content engine pairing git-versioned MDX case studies with real-time Firestore overrides (projects/_overrides) for dynamic ordering, visibility, and featured flags.
  • Live Site Config & Sections: Built live site config and section management (siteConfig/main, sections collection) validated against strict Zod schemas and rendered via a flexible component registry.
  • Double-Gated Admin Security: Enforced client-side Auth Guards (AdminGuard) paired with server-side Firestore Security Rules matching an explicit email allowlist.
  • Standardized Design System: Standardized styling and design tokens using Once UI layout primitives (<Column>, <Row>, <Grid>) alongside Biome formatting and Husky/lint-staged git hooks.

Technologies Used

  • Next.js + React + TypeScript: For a type-safe, server-rendered application shell.
  • Firebase Auth: Email/password authentication with an allowlist gate for the single-owner CMS.
  • Firestore: Document store for site config, home-page sections, and project overrides, read via real-time listeners.
  • Tailwind CSS: Utility-first styling for the admin UI and CMS-adjacent components.
  • Once UI: Layout primitives and design tokens for the rest of the site.
  • Zod: Schema validation for every Firestore-backed document, so a malformed doc can never break the page.
  • MDX: Git-versioned long-form case-study content, rendered through a custom component set.
  • Resend API: Transactional email delivery for the contact form.
  • Biome: Formatting and linting, enforced via Husky/lint-staged git hooks.
  • Git: Version control across the codebase and MDX case studies.

Outcome

The result is a portfolio that reads as a fully static, fast Next.js site to visitors, while giving its owner a live, database-backed CMS for everything except long-form case studies — with no server to run and no required configuration for the site to still work.