Demo mode — the whole app with no backend
Set NEXT_PUBLIC_DEMO=1 and every page renders believable sample data (fixtures at the typed-client seam, lib/demo/fixtures.ts) with no Genesis API and no login: dashboard brief, CRM leads/contacts/pipeline, orders + balances, events, field ops, learning, messages, ledger, workflows, and the member portal. Writes are refused with DEMO_READ_ONLY so forms exercise their real error paths. Fixtures honor the API contract — L-MONEY strings, opaque ids, live status vocabulary — and a test suite (lib/demo/fixtures.test.ts) enforces it.
If you are building a front end
Your front end calls this over the same-origin `/api/v1` proxy — no backend code to write, no schema to design. Endpoints: none — fixtures replace the network at lib/api/base.ts.
Bring any front end — hand-written, or generated with Lovable, v0, Bolt, Claude, or Cursor. You get auth, a multi-tenant database, payments through your own Stripe, and email/SMS without writing or hosting a backend.
- How to turn it on
- NEXT_PUBLIC_DEMO=1 in .env.local (build-time; restart dev or rebuild).
- Who can use it
- demo only relaxes the COSMETIC middleware login gate; against a real API the server-side wall (L-21/L-8) is untouched.
- The API behind it
none — fixtures replace the network at lib/api/base.ts- Where it lives
- every app + portal page
Machine-readable
This page is generated from our published capability catalog. Point your AI assistant at /features.json (or /llms.txt) and it can read every feature, how to enable it, and the endpoints behind it — then build against them.