1
Clone and install
2
Configure the environment
SUPABASE_URL, SUPABASE_SERVICE_API_KEY, SUPABASE_JWT_SECRET, and PORTAL_SESSION_SECRET in api/.env. Every variable the code reads is documented in the example file. A Supabase free-tier project is the shortest path (the API expects PostgREST + Storage); any Postgres works with equivalent roles.3
Apply migrations and seed
org_dev — the same workspace the public demo uses.4
Run it
/dev-login with the token printed by python scripts/mint_dev_token.py, or /demo for the public demo flow.Open the demo as anyone
The seeded workspace has three audiences, and each one has a public door — no account, no email code:
The landing page offers the same three doors as buttons. Links are minted with the real magic-link machinery (scoped to the demo org, 8-hour expiry, revocable), so what a visitor sees is what an invited reviewer or speaker sees. A deployment whose demo workspace was never seeded answers
404 rather than handing out a link into an empty portal.
Optional layers
Each activates with configuration alone and stays dormant otherwise:
The complete environment reference — every variable, grouped by feature, with swap guidance per layer — lives in configuration and tech stack & swap points.

