- Stack: Vite + React + TypeScript
- Styling: Tailwind CSS
- UI components: shadcn/ui
- Server state: TanStack Query
- Routing: React Router
- Development API mocking: MSW with centralized
src/lib/api/config.ts - Lint/format: Biome
- Package manager: pnpm
- Landing UI approach: token-driven design system (CSS variables + Tailwind extension)
- Shared primitives for marketing pages:
Button,Badge,Surface,Container,SectionHeading - Auth/API approach: OpenAPI-first contract for login, signup, email verification, and current-user profile
- Deployment approach: Vercel for development/preview hosting with SPA rewrite via
vercel.json
- GitHub collaboration workflow: issue forms for bug report and feature request, with blank issues disabled
- Pull request workflow: PR template plus GitHub Actions CI running
pnpm typecheck,pnpm lint, andpnpm buildon every pull request - Generated MSW service worker file
public/mockServiceWorker.jsis excluded from Biome checks to avoid third-party warning noise
- Repository automation skill: local
.agents/skills/github-workflowdocuments the standard issue → branch → validation → commit → push → PR flow for repeatable GitHub handoff work
- Local PDF inspection skill:
.agents/skills/pdf-readingdocuments a fallback workflow for reading PDFs in restricted environments, preferring text extraction first and Ghostscript rendering to temporary images with mandatory cleanup when visual inspection is required