Vaibhaw Mishra

AppSite, API and dashboard

Portfolio platform

Three separately deployed apps: a Next.js site, a typed Express and Zod API with 350+ test assertions, and a dashboard with instant publishing behind Google OAuth, TOTP and audit logs.

Role
Designed and built
When
Since 2024
Status
Released
Stack
  • Next.js
  • React
  • Tailwind CSS
  • Express
  • TypeScript
  • Zod
  • MongoDB
  • Vercel
Portfolio platform, the cover screen

In short

  1. Next.js 16 site, Express 5 and TypeScript API, Next.js dashboard, each deployed on its own

  2. Google OAuth (PKCE), TOTP 2FA with recovery codes, an audit log with before and after snapshots

  3. Guest passes, tagged links and first-party analytics behind a daily rotating identifier

  4. Edits publish instantly: the API drops the cached page on every write

Context

A portfolio is usually a static page. This one is a small product: the content you are reading comes from an API, is edited in a dashboard, and publishes the moment it is saved.

What I built

The site is a server-rendered Next.js 16 app, so a crawler gets real HTML. The API is Express 5 in TypeScript with every shape validated by Zod, 350+ test assertions, rate limiting, an origin CSRF guard and a 64 kB body cap. The dashboard signs in with Google (PKCE), requires a second factor, keeps recovery codes and logs every change with a before and after snapshot.

Two features exist to show rather than describe. Guest passes let a reviewer walk the dashboard read-only on their own device. Tagged links put a short code on the resume's portfolio link, so a recruiter's visit can be told apart from the rest without a cookie: visitors are counted behind an identifier that rotates every day and is never stored in the clear.

Outcome

A content change is live within a second of saving. The whole thing lints, type checks and builds in CI before it can merge, and a merge into main is the deploy.