Sangriadocs

Developer Docs

Architecture, data model, and conventions for building Sangria.

This section is for people working on Sangria. It explains how the app is put together, the shared building blocks you're expected to reuse, and the workflow for shipping a change safely.

Stack at a glance

  • Frontend — Next.js 16 (App Router) + React 19, jotai for local state and nuqs for URL state, Tailwind CSS.
  • BackendConvex (self-hosted locally): schema, queries, mutations, actions, HTTP routes, scheduled functions, and components (rate-limiter, workpool).
  • Realtime mediaLiveKit powers huddles.
  • Shells — Electron (desktop) and Capacitor (iOS/Android), plus a PWA.
  • Package managerbun.

Start here

Definition of Done

Every backend function needs auth, resource-level authorization, the right public/internal boundary, rate limiting where it writes durable state, and a test. See Conventions and Testing before opening a PR.

On this page