Playground
Runs the full wasm engine in the tab — no eelden serve. Durable OPFS when available; otherwise session memory.
Hosted: play.eelden.dev (same bundle; VITE_PLAYGROUND=1 so the ?local=1 flag is optional).
Local
bash
cd clients/studio && npm install && npm run build:wasm && npm run dev:playground
# open http://127.0.0.1:5173/?local=1Mobile-first shell
Phone layout is an app chrome, not a long card stack:
- Tabs: Examples · Build · Code · Results (cold open stays on Examples)
- Sticky Run + write toggle in the footer; height tracks
visualViewportso the CTA stays above the soft keyboard when possible - Schema, snapshots, reset, and the action log live in bottom sheets (⋮ / Log)
What it demos
- Schema: Users, Listings, Orders (
listing: ref Listings) - Auto-seed on empty open: sample rows, snapshot
seed, plus a post-snapshot “Flash sale” listing soasofhas something to show - Visual builder stage cards: filter, select, sort/take/skip, join, group, distinct, asof, plus insert/update/delete
- CodeMirror + lang intel (Shape button; long-press on touch)
- Write-mode gate; snapshot create for time-travel
- Results as cards on narrow viewports (table toggle; cards capped at 50)
Build vs Code
| Opens in Build | Stays in Code |
|---|---|
| filter / select / sort / take / skip | compound filters (&& / ||) |
| join / asof / group / distinct | atomic { … } blocks |
| insert / update / delete (when parseable) | anything tryParseBuilder rejects |
Examples live in clients/studio/src/playgroundDemo.ts (separate from serve-mode examples.ts).
Reset
Reset & reseed (⋮ → More, or Schema sheet when dirty) wipes OPFS (or reopens mem) and reloads the demo catalog. Schema edits require Reset to apply.