Project Structure
Monorepo layout, workspace packages, and application architecture.
VibeKit is organized as a Turborepo monorepo. Shared packages live in packages/, applications live in apps/, and shared configurations live in tooling/.
vibekit/
├── apps/
│ └── web/ # Main Next.js web application (port 3000)
├── packages/
│ ├── ai/ # Pluggable LLM adapters (mock, OpenAI, Anthropic, Google)
│ ├── api/ # tRPC API router and procedures
│ ├── auth/ # Better Auth configuration and sessions
│ ├── config/ # Shared configuration and provider contracts
│ ├── database/ # Prisma schema, client, and Zod schemas
│ ├── i18n/ # Localization helpers and translations
│ ├── logs/ # Structured logging using Consola
│ ├── mail/ # React Email templates and mail providers
│ ├── notifications/ # In-app notification types and helpers
│ ├── payments/ # Payment gateway abstractions and providers
│ ├── storage/ # S3 / mock storage adapters
│ └── utils/ # Shared helper functions and URL resolvers
├── tooling/
│ ├── tailwind/ # Shared Tailwind CSS preset configuration
│ └── typescript/ # Base tsconfig files for workspaces
├── config.ts # Global application configuration
├── docker-compose.yml # Local PostgreSQL and MinIO services
└── turbo.json # Turborepo task pipeline configurationApplications (apps/)
apps/web: The core Next.js application containing marketing pages, authentication, dashboard views, admin controls, and Fumadocs documentation.- Email previews run from
packages/mailwithbun run mail:previewon port 3005.
Packages (packages/)
api: Contains the rootapiRouterbuilt on tRPC 11, procedure handlers (auth,admin,billing,team, and other domains), and request context.auth: Better Auth setup, database adapter, session helpers, Argon2 password hashing, and OTP verification.database: The Prisma schema (prisma/schema.prisma), generated client, and runtime Zod validation types.i18n: Translation catalogs (JSON) and locale-switching utilities.logs: Centralized logger powered by Consola.mail: Transactional email templates built with React Email and providers for Resend, Postmark, Cloudflare, Plunk, and Nodemailer.payments: Payment abstractions for Stripe, Lemon Squeezy, Polar, and Dodo Payments.storage: S3-compatible adapter for signing upload and download URLs.utils: Core utilities such asgetBaseUrl()for reliable URL generation across environments.
Web application layout (apps/web/)
Inside apps/web/app, routes are grouped cleanly (no [locale] URL segment):
(marketing): Public landing pages, pricing, blog, and changelog.(saas): Authenticated dashboard, account settings, and admin panel.(docs): Fumadocs documentation engine running under/docs.api/: Route handlers for tRPC, webhooks, and auth callbacks.
Explore our Architecture Overview to understand how data flows through these layers.