Studio
Eelden Studio is the engine's first client: a Vue app that talks to eelden serve over HTTP (and WebSocket for CDC). It never opens page/WAL files itself.
Start
bash
# HMR — API on :8787, UI on :5173
cd clients/studio && npm run dev
# Or CLI serves a built dist and opens the browser
cargo run -p eelden-cli -- studio ./mydb-studio examples/demo_schema.eel --ui clients/studio/distThe URL includes a bearer token. API calls use Authorization: Bearer …, X-Eelden-Token, or ?token=.
What you get
- Collections sidebar + virtualized result grid
- CodeMirror editor with language intel (same
eelden-langwasm as the engine) |power key →|>+ stage menu- Hover at pipe boundaries → row shape; as-you-type diagnostics
- Write-mode gate for mutations + action log + atomic conflict banners
- Plan strip — index vs collection scan from
/query - Tenant switcher (
/#/t/:tenant), create / fork (write-mode gated) - Time-travel pin →
Eelden-Snapshotheader - Schema & migration panel (fingerprints,
pending_migration) - Live CDC grids — WebSocket
…/tailwith HTTP poll fallback - Health panel — corruption counts, WAL/checkpoint lag, fsync histogram
- Visual query builder — stage cards for filter / join / sort / take / skip / asof / group / distinct / insert / update / delete (
&&andatomicstay in Code) - Mobile-first shell — drawer nav, bottom-sheet action log, touch-sized controls
- Examples rail (
clients/studio/src/examples.ts)
Rules
- Read-oriented by default — toggle Write mode before inserts / updates / deletes / tenant ops.
/queryaccepts one pipeline or oneatomicblock — not schema decls or tenant ops (those go through/opsor schema files at serve start).- When a snapshot is pinned, CDC re-run is off (you're looking at the past).
Related
- Playground — wasm engine in-tab, no serve
- HTTP API — routes Studio uses