Open source

Yours to run. Yours to keep.

Crumb is AGPL-3.0 and self-hostable from one docker compose file. No black box, no lock-in. Your feedback lives in your own Postgres.

AGPL-3.0

Free and open. Self-hosting for your own company is fully permitted. If you offer Crumb as a service to others, the source of your fork stays open; that's the only catch.

One command to run it

The whole stack (dashboard, widget, and Postgres) comes up from a single docker compose file. No vendor services required to get going.

Your data, your Postgres

Everything is stored in a Postgres you control. Back it up, query it, move it. It's yours. Crumb Cloud runs the exact same schema, just managed.

No black box

Read the code, file an issue, send a PR. The same repo powers Community and Cloud. Self-hosted, you bring your own email provider and OAuth apps, and usage analytics is always on. Crumb Cloud adds managed email on every plan, one-click integrations and the AI suite on Team and up, and session replay on Growth.

Quickstart

Self-host in one command

Clone the repo, then bring the whole stack up with Docker.

# run the whole stack (dashboard + widget + Postgres)
docker compose up -d --build

# …or the full local dev stack
pnpm install
pnpm db:up         # Postgres in Docker on :5432
pnpm db:push       # apply schema
pnpm db:seed       # sample data (the Southbeam workspace)
pnpm widget:build  # build the embed widget
pnpm dev           # → http://localhost:3000

A fresh install has no users yet. Mint a one-time setup link with docker compose exec dashboard node packages/db/dist/cli.mjs setup-link, open it, and you land on /onboard to create the first workspace and its admin. Set CRUMB_APP_URL first, since the link is built from it.

Health checks are built in: GET /api/health for liveness and GET /api/health/ready for readiness (200 only when the database is reachable). For a production VPS walkthrough (including a zero-inbound-ports Cloudflare Tunnel setup), see the self-host guide.