This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
pnpm dev- Start development server with Turbopack for fast refreshpnpm build- Build the application for productionpnpm start- Start the production serverpnpm lint- Run ESLint to check code quality
This is a Next.js 15 application built with TypeScript and Firebase, implementing a request management system with user authentication and admin functionality.
- Client-side: Firebase v9 SDK (
src/lib/firebase.ts) for Firestore database and client authentication - Server-side: Firebase Admin SDK (
src/lib/admin.ts) for server-side authentication and user management - Authentication: Session-based auth using Firebase session cookies with server-side verification
Server Actions: All form submissions use Next.js server actions:
src/app/requests/new/actions.ts- Creates new requestssrc/app/promote/actions.ts- Promotes users to admin role
Authentication Flow:
src/utils/server.tscontainsidentify()function for server-side user verificationhold()function creates secure session cookies from Firebase tokens- Admin access controlled via Firebase custom claims
Data Flow:
- Requests are stored in Firestore with user association via
uid - User identification happens server-side before database operations
- Form data processing uses
shape()utility fromsrc/utils/client.ts
/- Home page/login&/signup- Authentication pages/requests- User's request listing (protected)/requests/new- Create new request form (protected)/requests/[id]- Individual request details (protected)/review- Admin review interface (admin-only)/promote- User promotion to admin (admin-only)
- Requires
GOOGLE_APPLICATION_CREDENTIALSenvironment variable pointing to Firebase service account JSON - Firebase client config is hardcoded in
src/lib/firebase.ts
- Uses Tailwind CSS v4 with PostCSS
- Base styles in
src/styles/base.css - Inter font loaded via Next.js font optimization