> For the complete documentation index, see [llms.txt](https://docs.kinwall.family/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.kinwall.family/self-hosting-reference/demo-build.md).

# Demo build

A static build of the web app that runs **entirely in the browser** on sample data. There's no server and no database, nothing is saved, and every visitor gets a fresh copy. A slim strip at the top says "Demo — nothing is saved. Reload for a fresh copy." Sign-in is skipped.

## Build it

```bash
cd web
npm ci
npm run build:demo        # VITE_MOCK=1 vite build --outDir dist-demo
```

Serve `web/dist-demo` from any static host. It includes a sample family (Alex, Sam, Maya and Leo) with about two weeks of events around today, chores and lists.

For local development, `VITE_MOCK=1 npm run dev` gives the same in-memory data with hot reload.

## Publishing on release

`.github/workflows/demo.yml` builds the demo and deploys it to a **Cloudflare Pages** project on `v*` tags (or when run manually). It needs:

* repository secrets `CLOUDFLARE_API_TOKEN` and `CLOUDFLARE_ACCOUNT_ID` (the same ones as the Workers deploy),
* repository variable `DEMO_PAGES_PROJECT`, the Pages project name. Set its custom domain in the Cloudflare dashboard.

The workflow skips itself when `DEMO_PAGES_PROJECT` is empty.

## Seeding a real instance instead

To try a *real* server with sample data, `scripts/seed-demo.mjs` fills a fresh instance (one with no members yet) with a fictional family (Alex, Sam, Maya, Leo), a month of events, categories, chores with history, and lists:

```bash
KINWALL_URL=http://localhost:8080 KINWALL_KEY=<admin key> node scripts/seed-demo.mjs
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.kinwall.family/self-hosting-reference/demo-build.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
