Welcome to Orkestra
Orkestra is the SaaS plumbing every product rebuilds — users, auth, RBAC, multi-tenancy, navigation, logging — already done.
Eight core modules (user, auth, authz, tenant, notification, navigation, logging, compliance) supply the baseline on day one. Per ADR-0006 Orkestra is a core-only base — it ships no addons. A fork builds its own verticals (invoicing, payments, subscriptions, RAG, AI agents, documents, identity, …) on top, against the in-tree SDK contract, using the same Module seam the core is built on and toggling them at /admin/modules.
Where to next
- Getting Started — boot Orkestra locally in under five minutes.
- Architecture — the two-tier tenancy model and module lifecycle.
- Operating Orkestra — deployment, module configuration, SMTP/OAuth.
- Module Catalog — the eight core modules, what each does and depends on, plus the seam for a fork's optional modules.
- SDK Reference — the
Moduleinterface,ServiceRegistry, building an addon. - ADRs — architectural decisions that shape the platform.
Who this is for
These docs are for operators self-hosting Orkestra and developers building on the SDK or contributing addons. End-customer documentation (Tier-2 client onboarding) lives elsewhere.
Tech stack at a glance
| Layer | Technology |
|---|---|
| Backend | Go 1.25.13, Huma v2 (OpenAPI-first), 8 core modules (core-only base) |
| Frontend | React 19, TypeScript 5.9, Vite 8 (admin) / Vite 7 (client) |
| Mobile | Flutter 3.44 |
| Database | MongoDB 8.0, Redis 8.2 |
| Auth | Email/password (argon2id) + OAuth 2.1, MFA + passkeys, RS256 JWT, service accounts |
| RBAC | 6 platform roles + 5 tenant roles, Cedar policy engine, permissions resolved per request |
Exact toolchain versions are pinned in .mise.toml, which CI reads too — so mise install gives you what CI uses.
:::info Editing these docs
Every page here is written in the monorepo, under docs/site/, and mirrored into the Docusaurus site at build time. So the "Edit this page" link at the bottom lands on the real source file, and a docs change goes through the same PR queue and the same reviewers as code.
The orkestra-docs repository is the renderer — theming, sync scripts, and CI. Send content PRs to orkestra-cc/orkestra instead. :::