Skip to main content
1

Clone and install

2

Configure the environment

Set 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

The seed creates a complete demo conference in org_dev — the same workspace the public demo uses.
4

Run it

Open /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.