Monorepo for the AI Interview Agent platform. The repository is structured so backend and frontend can evolve independently while sharing architecture docs, deployment conventions, and integration contracts.
apps/
api/ # FastAPI backend, LangGraph orchestration, web research integration
web/ # Frontend app boundary for the Vercel UI
docs/ # Shared architecture and onboarding docs
- Backend team works in
apps/api - Frontend team works in
apps/web - Shared contracts are documented in
docs/architecture.md
- Keep each deployable app self-contained with its own config, env example, and deployment settings.
- Keep cross-app documentation at the repo root or in
docs/. - Treat the backend as the owner of workflow orchestration and persistence.
- Treat the frontend as the owner of user experience and presentation.
- Avoid duplicating business logic across the UI and API.
Backend code now lives in apps/api.
Important files:
Frontend should be checked in under apps/web.
Recommended stack:
- Next.js App Router
- TypeScript
- Tailwind CSS
- Vercel deployment
Recommended frontend guidance:
Backend:
cd apps/api
cp .env.example .env
pip install -e .[dev]
alembic upgrade head
uvicorn app.main:app --app-dir src --reloadHelpful shortcuts from the repo root:
make api-install
make api-migrate
make api-devUse separate Vercel projects for cleaner operational boundaries.
- Backend Vercel project root:
apps/api - Frontend Vercel project root:
apps/web
Frontend should call the backend using:
API_BASE_URLat runtime throughapps/web/app/api/config/route.ts
- Root reference: .env.example
- Backend env template: apps/api/.env.example
- Frontend env template: apps/web/.env.example