Skip to main content

Project structure

src/                    # Application source (path alias @/* maps here)
  app/                  # App Router routes and layouts
    (auth)/             # Auth pages (login, register, verify)
    (main)/             # Main app pages (dashboard)
    (site)/             # Marketing pages
    api/                # Route handlers
  components/           # UI and reusable components
  config/               # Runtime configuration
  database/             # Drizzle schema and database connection
  lib/                  # Auth, payments, messaging, storage, utils
  hooks/                # React hooks
scripts/                # Runtime scripts (migrations) — at repo root
migrations/             # Drizzle migrations — at repo root
drizzle.config.ts       # Drizzle Kit config — at repo root

Route groups

  • (auth) contains login, register, reset password, and verify flows
  • (main) contains authenticated app pages like the dashboard
  • (site) contains marketing pages and premium purchase pages

Server and client components

ShipFree is server-component-first. Client components are explicitly marked with use client when interactivity is needed.