SkywardOpsDocs

Demo vs local mode

The same app and the same story, with two different data sources.

The app reads and writes through one data source interface. Demo mode plugs in an in-memory generator; local mode plugs in Supabase. The screens and business rules are the same.

Demo modeLocal database mode
Startpnpm demopnpm db:start, pnpm db:reset, pnpm db:seed, pnpm local
DEMO_MODEtruefalse
DataGenerated in memoryPostgres in local Supabase
PersistenceResets on restart or Reset demoKept until pnpm db:reset
Sign-inNone; switch persona with View asEmail and skyward-local
Access rulesChecked in the app with the same rulesEnforced by Postgres row-level security and triggers
External callsNoneNone
Needs DockerNoYes

Use demo mode to look around and present. Use local mode to test access rules for real: a failing write in local mode is refused by the database itself.

See Run it locally.