app/: Main application code (detailed in the App Directory section below)docs/: Project documentationdrizzle/: Database migration files generated by Drizzle ORMe2e/: End-to-end tests using Playwrightpublic/: Static assets served directly by the web server
components/: Reusable UI componentsconfig/: Application configuration files. Can only be accessed from routesfeatures/: Feature-specific code organized by domain (detailed in the Features Directory section below)core/: Core business logic and infrastructure codeshared/: Domain models and business rules shared across client and serverclient/: Client-side API clientsserver/: Server-side infrastructure implementations
routes/: Application routing logicutils/: General utility functionsroot.tsx: Root component and application entry pointroutes.ts: Route definitions. Only specifies file-based routing configurationapp.css: Global styles
<feature>/: Feature-specific code<usecase>/: Usecase-specific code. Cannot be accessed from directories other than the correspondingroutes/directorycomponents/: Usecase-specific componentsmodels/: Usecase-specific types and functionsaction.ts: Route actioncomponent.tsx: Route componentloader.ts: Route loader
.env.example: Template for environment variables.dockerignore: Files to exclude from Docker builds.gitignore: Files to exclude from Git.node-version: Node.js version specificationbiome.json: Biome configuration for linting and formattingcommitlint.config.js: Commitlint configuration for enforcing commit message conventionscomponents.json: shadcn/ui components configurationcompose.yaml: Docker Compose configurationdrizzle.config.ts: Drizzle ORM configurationlefthook.yml: Lefthook configuration for managing Git hooksplaywright.config.ts: Playwright test configurationreact-router.config.ts: React Router configurationtsconfig.json: TypeScript configurationvite.config.ts: Vite bundler configurationDockerfile: Docker container configurationpackage.json: Project dependencies and scriptspnpm-lock.yaml: Dependency lock file