# ProvSQL Playground – ProvSQL Studio in the browser **ProvSQL Playground** is a second distribution target for Studio: the same UI running **fully client-side** over an in-page PGlite (PostgreSQL + ProvSQL in WebAssembly), with no Flask server and no database connection. The PyPI `provsql-studio` package remains the canonical server product; this build shares its frontend assets and rebrands the wordmark to “ProvSQL Playground”. It is published as static files (e.g. at `provsql.org/playground/`). ## Architecture: reuse the real Python via Pyodide (no parallel port) Goal: the **full Studio**, client-side, with **no separate JS/TS reimplementation to maintain** – Studio feature changes must flow through untouched. Efficiency is irrelevant (it's a demo; real users install locally). So we run the **unmodified `provsql_studio` Python** in **[Pyodide](https://pyodide.org)** (CPython→WASM) beside PGlite, and reach it from the frontend's `fetch('/api/*')`. The backend (PGlite + Pyodide) is expensive to instantiate, and the unmodified Studio frontend reloads the page to switch mode or database. To keep a reload from re-initialising everything, the page is split in two same-origin documents: ``` app.html (SHELL, never reloads) shell-boot.js PGlite cluster + active DB · Pyodide + Flask test_client · WASM Graphviz JSPI lives here (top frame) · postMessage server ·