Skip to content

Demo mode

Demo mode runs the web interface against in-memory sample data. It is useful for evaluation, UI development, screenshots, and automated tests without connecting real services.

Behavior

  • PostgreSQL, authentication providers, IMAP, SMTP, and the worker are not required.
  • Login and setup requirements are bypassed.
  • Sample mail, threads, contacts, settings, filters, AI responses, shares, and operations are served from the web process.
  • Changes are temporary and reset when the web process restarts.
  • External services are not contacted by mail and AI demo paths.
  • The external REST API, MCP integration, OpenPGP operations, and composed mailboxes are unavailable or limited where they require persistent or external state.

Do not use demo mode as a production deployment or expect it to preserve user data.

Configuration

ItemSetting nameEnvironment variableRequirement
Enable demo modeNoneDEMO_MODESet to 1, true, yes, or on (case-insensitive). Default is false.
DatabaseNoneDATABASE_URLNot required in demo mode.
AuthenticationNoneORIGIN and BETTER_AUTH_SECRETNot required for demo data.
Mail servicesNoneIMAP_HOST, IMAP_USER, IMAP_PASSWORD, SMTP_HOST, SMTP_USER, and SMTP_PASSWORDNot required and not contacted.
WorkerNoneNoneDo not run it for demo data; in-memory state belongs to the web process.

Start a local demo with DEMO_MODE=true pnpm dev.