# Live Demo

> Try StoryShelf at storyshelf.fly.dev — viewer-open, seeded with fixtures.

Source: https://storyshelf.js.org/guides/demo/

The public demo at **`https://storyshelf.fly.dev`** is a full StoryShelf server (Fly `iad`, SQLite + local storage + Playwright) seeded with the `fixtures/storybook-9` project. It is intended for **viewer** triage — anyone can review diffs, only admins can mutate.

[Open the live demo](https://storyshelf.fly.dev)

## See it

![The projects overview: a card per project with its latest build and review backlog](https://storyshelf.js.org/_astro/projects-list-light.BLu6iGeZ_Z2wrNf6.webp)

![A build's overview: snapshot stats, bulk actions, and a card per snapshot](https://storyshelf.js.org/_astro/build-review-light.Du3be9zK_1cYGLG.webp)

![The story library: every story from a branch's latest build, with Review and Preview links](https://storyshelf.js.org/_astro/library-light.aktOmIo7_TH6Rn.webp)

## Access

The demo runs env-driven local-account auth (`@storyshelf/auth`):

- **Viewer:** invite-only local accounts (see [Auth](https://storyshelf.js.org/guides/auth/)) — browse projects, diffs, and published Storybooks; upload, approve, and settings require admin.
- **Admin:** `AUTH_PASSWORD` (private) provisions the site `admin` on boot. Keep this with maintainers only.

Open `https://storyshelf.fly.dev` → enter `demo` at the login → browse. If auth is disabled on a local fork (`AUTH_PASSWORD` unset), the UI is open without login (trusted-network mode — see [Auth](https://storyshelf.js.org/guides/auth/)).

## What’s seeded

- Project `Demo Design System` (slug `demo-design-system`, `acme/design-system`) from `fixtures/storybook-9` — viewports `desktop`/`mobile`.
- A `reviewing` build (`feature/new-button`) with `changed` snapshots for the diff overlay demo — real Playwright renders (both viewports).
- The `viewer` account can open the build review (`/projects/demo-design-system/builds/:buildId`) and the published Storybook (`/projects/demo-design-system/storybook`), but **Approve/Reject** and **Settings** require admin.

## Related

- [Auth (local accounts)](https://storyshelf.js.org/guides/auth/) — invite-only login setup
- [Roles & tokens](https://storyshelf.js.org/concepts/roles/) — member vs admin site roles
- [Projects](https://storyshelf.js.org/concepts/projects/) — one Storybook per project
- Package: [@storyshelf/auth](https://storyshelf.js.org/packages/auth/)
