Skip to content

Demo Mode

Eric Slutz edited this page Jul 30, 2026 · 1 revision

Demo Mode

Demo mode is for reviewers or testers without a Tandem account. The hosted demo returns deterministic synthetic insulin and carbohydrate data, never contacts Tandem, and identifies itself to the app as a demo service. This page is the end-to-end walkthrough; the backend repository's docs/synthetic-demo.md is the repo-local quickstart these steps stay in sync with.

Have a real Tandem account and want to self-host against it instead? See Self-Hosting.

Try the Hosted Demo (no server, no Tandem account)

  1. Install PumpSync and open Settings.

  2. In Connection, set the connection mode to Self-hosted.

  3. Enter the server URL exactly, including /api:

    https://demo.pumpsync.ericslutz.dev/api
    
  4. Tap Connect. The status should read that you are connected to a demo service.

  5. Open Settings → Tandem Account and enter the demo credentials, then tap Save Credentials:

    Username: demo@pumpsync.app
    Password: PumpSyncDemo123!
    Region: United States
    
  6. Open Settings → Apple Health and allow insulin and carbohydrate write access.

  7. Go to the Sync tab, optionally pick a history range (past 2 / 7 / 14 days), and tap Start Initial Sync.

The demo writes synthetic samples (three meals a day with matching boluses, attributed to device demo-tandem-pump) into the real Apple Health store of the device — use a test device, or delete the samples from Apple Health afterward.

Run the Demo Locally

git clone https://github.com/eslutz/PumpSync-Backend.git && cd PumpSync-Backend
cp .env.demo.example .env
sed -i.bak "s#^PumpSync__ServiceTokenSigningKey=.*#PumpSync__ServiceTokenSigningKey=$(openssl rand -base64 32)#" .env
rm .env.bak
docker compose up --build
curl http://localhost:8080/api/v1/capabilities

Expect "dataSourceMode":"syntheticDemo". Connect from the iOS Simulator with http://localhost:8080/api and the demo credentials above.

Troubleshooting

  • App says it's connected to a demo service and you expected real data: you're pointed at a backend running in demo mode — check the server URL, or if self-hosting, confirm you copied .env.demo.example (not .env.example) and that /api/v1/capabilities reports "dataSourceMode":"syntheticDemo".
  • Container exits immediately: the signing key is still the placeholder. Check docker logs.
  • Synthetic samples showing up in Apple Health you don't want: delete them directly in the Health app, or run the demo only on a test device.

Clone this wiki locally