Problem
Demo mode currently only masks real data (useDemo + maskValue). If a user has no Honcho instance, or wants to evaluate OpenConcho before connecting one, there's nothing to see.
Proposal
Two complementary tracks:
1. In-app demo mode = fixture data
Extend demo mode so when toggled on (or when no baseUrl is configured), the API layer (src/api/queries.ts) serves a curated in-memory fixture:
- 2–3 workspaces with believable names
- A handful of peers, sessions, messages, conclusions
- Realistic queue activity (some pending, some done)
- Stable IDs so screenshots are reproducible
Implementation sketch:
- Wrap
client.current so when demo === true it returns a fake fetcher that resolves against fixtures keyed by URL/method.
- Fixtures live under
src/lib/demo-fixtures/ as typed objects derived from components[\"schemas\"].
2. Seed script for a real Honcho instance
A pnpm seed script (or scripts/seed.ts) that POSTs the same fixtures to a configured Honcho instance via the public API. Useful for:
- Local development against a fresh Honcho.
- Reproducible Playwright e2e runs.
- Demo videos.
Why both
- Fixture-mode = zero-setup evaluation, screenshots, e2e tests.
- Seed script = exercises the real API path, catches schema drift.
Open questions
- Do we ship fixtures generated from a recorded session, or hand-author for narrative quality?
- Should demo mode be the default landing experience for first-time visitors (no config required)?
Problem
Demo mode currently only masks real data (
useDemo+maskValue). If a user has no Honcho instance, or wants to evaluate OpenConcho before connecting one, there's nothing to see.Proposal
Two complementary tracks:
1. In-app demo mode = fixture data
Extend demo mode so when toggled on (or when no
baseUrlis configured), the API layer (src/api/queries.ts) serves a curated in-memory fixture:Implementation sketch:
client.currentso whendemo === trueit returns a fake fetcher that resolves against fixtures keyed by URL/method.src/lib/demo-fixtures/as typed objects derived fromcomponents[\"schemas\"].2. Seed script for a real Honcho instance
A
pnpm seedscript (orscripts/seed.ts) that POSTs the same fixtures to a configured Honcho instance via the public API. Useful for:Why both
Open questions