Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Architecture

FRAME is founded on a unidirectional monorepo model managed by pnpm Workspaces and Turborepo. This structure enables a clear separation of concerns and a predictable dependency flow.

FRAME is divided into applications, shared packages, configs, and a scaffolding CLI.

AppRole
apps/nextMain web product. Next.js App Router + Tailwind CSS v4 + shadcn/ui.
apps/nestBackend API and services with NestJS.
apps/astroStarlight portal with Tailwind CSS v4 (product documentation / static content).
docs/Monorepo documentation site (Starlight + Tailwind CSS v4). Do not confuse with apps/astro.
PackageTechnical Responsibility
modelsDrizzle schemas and Zod DTOs on PostgreSQL.
coreAgnostic utilities, Zod config, and shared pure logic.
eventsIntegration event contracts typed with Zod.
authAuthentication SDK with Better Auth.
mailTemplates and SMTP transport with React Email.
cliCLI (frame setup, process-scoped secret injection, and environment loading).
PathRole
configs/*Shared presets (oxlint, tsconfig).
create/create-frame generator for derived monorepos.
graph TD
    subgraph Packages
        M[models]
        C[core]
        E[events]
        Ma[mail]
        A[auth]
    end

    subgraph Apps
        NEXT[next]
        NEST[nest]
        ASTRO[astro]
        DOCS[docs site]
    end

    NEXT --> M
    NEXT --> C
    NEXT --> A
    NEST --> M
    NEST --> C
    NEST --> E
    NEST --> Ma
    NEST --> A
    ASTRO --> C
    DOCS --> C

[!IMPORTANT] Ban on any: All code must be strictly typed. If a structure is unknown, it must be defined in the appropriate place.

  • Styling by surface:
    • (apps/next): Tailwind CSS v4 + shadcn/ui. CSS Modules only for complex layout.
    • apps/astro: Tailwind CSS v4.
    • docs/: CSS/SCSS (this docs site only).
  • Validation: inputs and outputs validated with Zod on frontend and backend.
  • Internal scaffolding: Turbo Gen (pnpm gen), not Plop CLI.
  • Next.js: App Router, proxy.ts as the sole middleware, routes under app/[locale]/**, runtime under src/.
  • NestJS: modules, controllers, services, pipes, and Zod validation.
  • Astro / docs: Starlight pages and components; React islands when interactivity is needed.