Skip to content

feat(web): demo mode with sample data - #17

Merged
joshchen-dev merged 1 commit into
mainfrom
claude/great-shannon-b4y5vi
Oct 24, 2026
Merged

joshchen-dev merged 1 commit into
mainfrom
claude/great-shannon-b4y5vi

Conversation

@joshchen-dev

@joshchen-dev joshchen-dev commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Summary

A demo build of the real web app that runs entirely in the browser, so anyone can try Raidy without signing in or a server. This is the first step towards the product page with a live demo.

  • npm run build:demo builds the app for /demo/. In demo mode, api() hands every call to an in-memory backend (web/src/demo/backend.ts) that follows the server's rules:

    • omitted future dates become unavailable
    • a confirmed date becomes Needs attention when someone can't make it
    • confirming checks whether everyone is available
    • a new raid time moves the open dates and keeps their votes
    • roster changes update open periods
    • publishing is refused while the next period is already out

    State resets on reload. The normal build excludes the demo code entirely; I checked that the production bundle has none of it.

  • Sample static "The Echo" (web/src/demo/data.ts) has this week's and next week's voting open. Dates follow today, so the demo never looks stale.

  • A banner marks the demo. Team URLs now respect the build's base path (teamURL in web/src/lib/paths.ts).

  • A favicon, which the app was missing; the browser's automatic request for one returned a 404.

Release v0.0.16.

Tests

A new Playwright demo project runs on the demo build with every real /api/** request blocked, and a fixed clock. It covers:

  • opening signed in with no network calls
  • a vote updating the counts and flagging the confirmed date
  • the leader cancelling a date
  • a new raid time moving the week's dates
  • a reload resetting the sample data

npm run check, format:check, build, build:demo, and the full Playwright suite (28 passed) all pass locally.

A demo build of the real web app that runs entirely in the browser, so
anyone can try Raidy without signing in or a server.

- `npm run build:demo` builds the app for /demo/ with an in-memory
  backend. It follows the server's rules (omitted dates become
  unavailable, confirmed dates need everyone, a new raid time moves open
  dates) and resets on reload. The normal build excludes it entirely.
- Sample static "The Echo" with this week's and next week's voting open;
  dates follow today, so the demo never looks stale.
- A banner marks the demo; team URLs now respect the build's base path.
- Adds a favicon, which the app was missing.

Release v0.0.16.
@joshchen-dev
joshchen-dev merged commit 264c211 into main Oct 24, 2026
1 check passed
@joshchen-dev
joshchen-dev deleted the claude/great-shannon-b4y5vi branch October 24, 2026 02:51
@joshchen-dev
joshchen-dev restored the claude/great-shannon-b4y5vi branch October 24, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant