Yuva is open-source customer messaging for teams that run several products. Support e-mail, live chat, in-app messages and feedback from every product land in one shared inbox, next to the newsletters, help center, status pages and analytics you send and publish from the same place.
You host it yourself: one Docker image and Postgres.
Warning
Pre-alpha. The API and database schema can change without migration paths, and the code has not had an independent security audit. Try it with test data, not real customer conversations.
| Conversations | One inbox per product with its own branding, language, hours and team. E-mail, live chat, in-app messages and app feedback in one thread, with notes, labels, mentions and bot drafts a member reviews. |
| Reach | Mailing lists with consent records and imports, e-mail designs from templates, broadcasts with approval and reports, and a deliverability check. |
| Publish | Help center, documentation pages, status pages on your own domain, a roadmap board and What's new. |
| Insights | Cookieless analytics for websites and apps, and a support report that ranks pages by the conversations they cause. |
| Move in | Migrations of history and live mail from Gmail, Microsoft 365, Yandex, iCloud, Zoho, any IMAP server, Zendesk and Help Scout. The old mailbox is only read. |
| Build on it | A REST API with scoped keys, signed webhooks, identity tokens, headless mode, and an MCP server with OAuth for Claude, Cursor, VS Code and other assistants. |
Built with Go, Postgres and a React panel, shipped as one Docker image.
|
|
|
|
-
Write
compose.yamland.envfrom the install guide. -
Start it:
docker compose up -d
-
Create the first owner:
docker compose exec yuva /yuva bootstrap --email you@example.com --workspace "Example"
-
Put it behind HTTPS and sign in with the code that arrives by e-mail.
On Kubernetes, install the Helm chart oci://ghcr.io/productdevbook/charts/yuva; see
Kubernetes with Helm.
| For | Install | Guide |
|---|---|---|
Web: <yuva-chat>, headless client |
npm install useyuva |
Web widget, Headless |
| React and shadcn/ui | npx shadcn@latest add https://useyuva.com/r/yuva-discussions.json |
shadcn registry |
| iOS and macOS | Swift package https://github.com/productdevbook/yuva.git, product YuvaKit |
Mobile SDKs |
| Android | implementation("com.github.productdevbook:yuva:v0.0.32") |
Mobile SDKs |
| Go | go get github.com/productdevbook/yuva/sdk/go |
Go SDK |
| AI assistants | /mcp on your server, or yuva.mcpb from a release |
MCP |
Working projects are in examples.
- You host it: conversations, contacts and files stay on your servers.
- Analytics set no cookies and keep no cross-site identifiers; see analytics privacy.
- Every subscription records who consented, when and where, and lists export with that record.
- For assistants, customer text is marked as untrusted data, and their replies are drafts unless you allow sending.
- Report vulnerabilities privately as described in SECURITY.md.
Guides, the API reference and examples are at useyuva.com/docs, and in docs/ (also in Turkish and German). How it is built: architecture. What is next: roadmap. What changed: changelog.
Read CONTRIBUTING.md first; contributions are made under the CLA.
For a local server with Postgres and Mailpit, which catches every mail it sends, run
docker compose -f deploy/compose.yaml up -d.
Ask questions and report bugs in issues, and follow
@useyuva for news.
The server and panel are AGPL-3.0. The SDKs (sdk/) and the API contract (openapi/)
are MIT, so you can ship them in closed-source apps. Details in
LICENSING.md; name and logo in TRADEMARK.md.