GoLiveKit
Codebase

Project Structure

An overview of the project's structure and organization.

Quick orientation

The project is organized around a Next.js App Router layout, feature-based modules, and a central docs/content directory powered by Fumadocs.

Top-level layout

.
├── public/                    Static assets
├── src/
│   ├── app/                   App Router routes, layouts, providers
|   │   └── api/               Internal API routes
│   ├── content/               MDX docs content
│   ├── features/              Feature modules (auth, todo, etc.)
│   ├── lib/                   Shared libraries (auth, prisma, mdx, utils)
│   ├── prisma/                Prisma schema, migrations, generated client
│   └── shared/                Shared UI, emails, hooks, messages
├── prisma.config.ts           Prisma config
├── source.config.ts           Content source config
├── next.config.ts             Next.js config
└── package.json               Scripts and dependencies

Feature module example (src/features/web/todo)

Each feature module follows a consistent structure. The todo feature includes API, UI, schema, and service layers:

src/features/web/todo/
├── actions/                      (optional) Next.js server actions     
├── api/
│   └── todo.router.ts            oRPC routers
├── components/
│   ├── todo.container.tsx        Suffix .container for components with logic
│   └── todo.tsx                  Presentational component
├── config/                       Feature-specific config
├── hooks/                        React hooks
├── model/                        Data schemas and types (using Zod)
│   └── todo.schema.ts
└── service/                      Business logic and data access (e.g via Prisma)
	└── todo.service.ts

On this page