VendeeDocs
Arquitetura

Monorepo

Turborepo, Bun e pipeline de build

O Vendee usa Turborepo como build system e Bun 1.3.2 como runtime e gerenciador de pacotes.

Estrutura

vendee-turborepo/
├── apps/
│   ├── app/          # Dashboard SPA (Vite + React)
│   └── docs/         # Documentacao (Fumadocs / Next.js 16)
├── packages/
│   ├── supabase/     # @repo/supabase — client + types
│   ├── eslint-config/# @repo/eslint-config — flat configs
│   └── typescript-config/ # @repo/typescript-config
├── turbo.json
└── package.json

Pipeline Turbo

turbo.json
{
  "tasks": {
    "build": {
      "dependsOn": ["^build"],
      "outputs": [".next/**", "!.next/cache/**", "dist/**"]
    },
    "lint": { "dependsOn": ["^lint"] },
    "check-types": { "dependsOn": ["^check-types"] },
    "dev": { "cache": false, "persistent": true }
  }
}
  • build e check-types dependem de ^build/^check-types (builds das dependencias primeiro)
  • dev e persistente e sem cache
  • lint cascateia pelas dependencias

Comandos

bun run dev              # Dev de todos os apps
bun run dev:app          # Apenas apps/app (:5173)
bun run dev:docs         # Apenas apps/docs (:3001)
bun run build            # Build de todos
bun run lint             # Lint (zero warnings)
bun run check-types      # Type-check
bun run format           # Prettier

Variaveis de ambiente globais

Definidas em turbo.json > globalEnv:

  • VITE_SUPABASE_URL / VITE_SUPABASE_PUBLISHABLE_KEY (legado VITE_SUPABASE_PUBLISHABLE_DEFAULT_KEY) (Vite)
  • NEXT_PUBLIC_SUPABASE_URL / NEXT_PUBLIC_SUPABASE_PUBLISHABLE_KEY (legado NEXT_PUBLIC_SUPABASE_ANON_KEY) (Next.js)

On this page