A single-screen, recruiter-ready overview for Gaurav Patil. Built with Next.js (App Router), TypeScript, Tailwind CSS, and Firebase to deliver instant resume downloads, VibeCoding beta highlights, and an admin cockpit for content management.
- Next.js 15 (App Router, TypeScript)
- Tailwind CSS 3
- Firebase Web SDK (Auth, Firestore, Storage)
- React Hook Form + Zod for form handling
- Node.js 20+
- npm 10+
- Firebase project with Firestore, Authentication, and Storage enabled
- Install dependencies
npm install
- Configure environment variables
- Duplicate
.env.localand fill in the real admin email forNEXT_PUBLIC_ADMIN_EMAIL. - The Firebase public config is already included and safe to expose.
- Duplicate
- Update Firebase security rules
- Replace
admin@example.cominfirebase.rules.firestoreandfirebase.rules.storagewith the authorized admin email. - Deploy rules:
firebase deploy --only firestore:rules,storage:rules
- Replace
- Provision Firebase Auth
- Add the admin email to Firebase Authentication (Email/Password provider).
- Run locally
Visit http://localhost:3000.
npm run dev
- Navigate to
/adminand sign in with the configured admin account. - Dashboard tabs:
- Messages: review, triage, and reply to inbound messages; status updates automatically persist.
- Projects: manage published cards (including the VibeCoding beta) and upload optimized preview images.
- Settings: manage the resume download URL, upload a fresh resume PDF (auto-updates Storage + Firestore), and set social links.
- Visit
/admin→ Settings. - Upload a PDF via Upload PDF or paste a direct download URL.
- Save settings. The homepage instantly prefetches the new link for an immediate download experience.
- Set the same environment variables in Vercel (
NEXT_PUBLIC_*). - Push the project to a Git repository and connect it to Vercel.
- Optional: commit the Firebase rules to your CI/CD process and deploy before shipping.
- Trigger a production deploy:
(Vercel will run these automatically.)
npm run build npm run start
npm run dev– start the Next.js dev servernpm run lint– run ESLintnpm run build– create a production buildnpm run start– start the production server locallynpm run format– format the codebase with Prettier