Monorepo for the Zaur suite — Mail, Meet and Music.
The pixel-dinosaur app (
dino/dino-archive/music) was extracted to its own repo at../dino.
The suite lives across subdomains: Mail (register.zaur.app + webmail.zaur.app),
Meet (LiveKit Cloud, joined from webmail /meet/{group}) and Music (music.zaur.app).
The apex zaur.app is the marketing landing site (@zaur/web).
Apps
| App | Package | URL | Deploy |
|---|---|---|---|
| Web (landing) | @zaur/web |
zaur.app | CapRover |
| Webmail | @zaur/mail2 |
webmail.zaur.app (also mail2.zaur.app) | Dokploy |
| Music | @zaur/music |
music.zaur.app | Dokploy |
| Register | @zaur/register |
register.zaur.app | Dokploy |
| Native Mail (planned) | apps/mobile |
iOS + Android | App Store + Google Play |
Mail server (mail.zaur.app) is Stalwart — config and ops notes live in infra/mail/.
Video calls use LiveKit Cloud; webmail mints a token on /meet/{group} when
LIVEKIT_URL / LIVEKIT_API_KEY / LIVEKIT_API_SECRET are set. The old Galene
stack on Contabo (infra/meet/) can be stopped.
Packages
| Package | Purpose |
|---|---|
@zaur/ui |
The suite's design system: tokens, primitives and fonts for Mail, Register and Music (see DESIGN.md) |
Native mobile
ZAUR Mail will ship platform-native iOS and Android clients alongside the webmail. Kotlin Multiplatform shares the JMAP, OAuth, offline data, and synchronization core; SwiftUI provides the iOS interface and Jetpack Compose provides the Android interface. This is a sibling client initiative, not a rewrite or retirement of the SvelteKit webmail.
See ADR-0001 for the decision and the mobile integration roadmap for boundaries and milestones.
Setup
pnpm install
Development
pnpm dev:web # http://localhost:5173 (landing site)
pnpm dev:mail2 # http://localhost:5175 (webmail.zaur.app)
pnpm dev:music # http://localhost:5176 (Zaur Music, over Navidrome)
pnpm dev:register # http://localhost:3000
Build & check
pnpm build:mail2
pnpm check:mail2
pnpm test:mail2
Structure
apps/
web/ SvelteKit static landing site (zaur.app)
mail2/ SvelteKit JMAP client, serves webmail.zaur.app (see docs/decisions/0005-mail-2.0.md)
music/ Zaur Music PWA over Navidrome, with Add from YouTube
register/ Stalwart account registration portal
mobile/ Planned KMP core + native SwiftUI and Compose clients
packages/
ui/ Shared design system (tokens, CSS, cn utility)
mail-core/ Platform-agnostic JMAP client and mail domain logic (mail2, planned native clients)
server-auth/ Shared session, OAuth, and Stalwart auth server code
docs/
decisions/ Architecture decision records
mobile.md Native client integration contract and roadmap
infra/
auth/ Stalwart identity architecture and retired Logto notes
mail/ Stalwart ops notes
meet/ Self-hosted Galene ops notes
deploy/ Legacy auth/Logto provisioning scripts
Deploy
All apps deploy via Dokploy, which auto-builds their Dockerfiles on push to
main — no manual deploy step. Webmail CI gates changes with checks, unit
tests, a production build, and browser smoke tests.
License
Licensed under the GNU AGPL-3.0. You can self-host and modify freely; if you run a modified version as a service, you must share your changes.
