Demo mode
Confabulous supports a demo identity — a read-only, shared-cookie user account that anyone can log in as without credentials. Useful for showcasing the product (this is what powers demo.confabulous.dev).
Enabling
Section titled “Enabling”Set a single environment variable:
DEMO_IDENTITY_EMAIL=demo@example.comWhen set, the demo user can sign in by visiting the login page — no password required. Their session is automatically impersonated, and write operations return a friendly “read-only” toast in the UI.
When unset, every demo-mode predicate short-circuits to today’s behavior — there’s zero overhead.
What demo users can and cannot do
Section titled “What demo users can and cannot do”| Action | Demo user |
|---|---|
| View their own sessions | ✅ |
| View shared sessions | ✅ |
| View public Trends | ✅ |
| Upload new sessions | ❌ |
| Share or unshare sessions | ❌ |
| Change account settings | ❌ |
Security notes
Section titled “Security notes”The demo cookie is HMAC-derived and shared across all visitors of the demo identity. The implementation enforces read-only at the middleware layer, not just the UI — see backend/internal/auth/demo.go for the canonical reference.
Reference deployment
Section titled “Reference deployment”ConfabulousDev/confab-demo-site is the live stack behind demo.confabulous.dev. The combination that makes the site anonymous-readable and sign-ups-closed, from stack/docker-compose.yml:
DEMO_IDENTITY_EMAIL: demo@confabulous.devMAX_USERS: "0"ALLOWED_EMAIL_DOMAINS: confabulous.devSHARE_ALL_SESSIONS_TO_AUTHENTICATED: "true"ENABLE_SHARE_CREATION: "false"AUTH_PASSWORD_ENABLED: "true" # operator signs in to upload; OAuth not configured