Welcome
This section covers the technical aspects of Obeya Cloud for developers who want to:- Integrate with the Obeya Cloud API
- Extend the platform with custom integrations
- Self-host Obeya Cloud on your own infrastructure
- Contribute to the open-source project
Architecture
System architecture, tech stack, and design decisions
Local Setup
Get the development environment running on your machine
Authentication
Auth.js v5 authentication flow and session management
API Reference
Complete tRPC API documentation
Tech Stack
Obeya Cloud is built with a modern, type-safe stack:| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router) |
| Language | TypeScript 5.x |
| API | tRPC v11 |
| Database | PostgreSQL 16 + Drizzle ORM |
| Auth | Auth.js v5 (NextAuth) |
| Real-Time | WebSocket (Hono + Bun) |
| Cache | Redis 7 (Upstash for cloud) |
| Storage | S3-compatible (MinIO for self-hosted) |
| Search | Meilisearch |
| Forms | form.io |
| i18n | next-intl (6 languages) |
| UI | Tailwind CSS + Radix UI + shadcn/ui |
| Monorepo | Turborepo + pnpm workspaces |
| Deployment | Docker + Kubernetes |
Repository Structure
Development Workflow
- Clone the repository and install dependencies
- Start local services (PostgreSQL, Redis, MinIO, Meilisearch) via Docker Compose
- Run the development server with
pnpm dev - Test with
pnpm test(unit tests) andpnpm test:e2e(end-to-end tests) - Lint with
pnpm lint(ESLint + Prettier) - Build with
pnpm buildto verify production builds
Obeya Cloud uses Turborepo for build orchestration. The
pnpm dev command starts all apps in parallel with proper dependency ordering.Key Concepts for Developers
- Multi-tenancy is implemented via subdomain routing. The tenant is resolved in middleware and injected into the request context.
- tRPC provides end-to-end type safety from the database to the frontend. No REST endpoints or manual type definitions needed.
- Drizzle ORM provides type-safe database queries with SQL-like syntax. Migrations are handled declaratively.
- Auth.js v5 handles authentication with support for multiple providers and session strategies.
- Real-time updates are delivered via WebSocket connections managed by a separate Hono server running on Bun.