--- name: project-architecture description: Overview of the project's tech stack, directory structure, and architectural patterns. --- # Project Architecture & Tech Stack ## Tech Stack - **Framework**: Next.js 15 (App Router) - **Language**: TypeScript - **Styling**: Tailwind CSS v4, CSS Modules (for specific components) - **Docs/Content**: Docusaurus (in `textbook/` directory) - **Auth**: Better Auth (`better-auth`) - **Database**: PostgreSQL (NeonDB) - **ORM**: Drizzle ORM - **UI Components**: Lucide React icons, Custom components ## Directory Structure - `/app`: Next.js App Router pages and layouts. - `/components`: Reusable UI components. - `/auth`: Authentication related components (forms, etc.). - `/lib`: Utility functions and shared logic. - `auth-client.ts`: Better Auth client configuration. - `auth.ts`: Better Auth server configuration. - `/db`: Database schema and connection logic. - `/drizzle`: Migrations. - `/textbook`: Docusaurus instance for documentation/content. - `/src`: Docusaurus source files. ## Key Patterns - **Hybrid App**: Combines a Next.js web app (marketing, auth, dashboard) with a Docusaurus documentation site. - **Auth Integration**: Shared authentication state between Next.js and Docusaurus via cookies/sessions (handled by `AuthBar`). - **Styling**: Global Tailwind styles in `app/globals.css`. Docusaurus has its own theme in `textbook/src/css/custom.css`. ## Development - Run root app: `npm run dev:root` - Run docs app: `npm run dev:docs` - Run both: `npm run dev`