SQLite Studio
A database GUI in one self-contained index.html. It runs demand-paged SQLite with its pages in IndexedDB, and it has a schema tree, a SQL editor, CSV export, and CRUD. It runs from file://.
I build reactive substrates that run on any machine. The work includes polyglot spreadsheets, self-contained operating systems, and offline-first tools.
Own the software. Keep the data local. Do not trust the center.
plastron is a polyglot reactive substrate. Cels hold values, formulas, or compiled lambdas. When you write to a cel, plastron calculates each dependent cel again, in topological order.
The goal is a polyglot spreadsheet. You write functions in each language that has an installed compiler (for example JS, WAT, Python, Scheme). Then you call the functions from formulas in other cels. The same kernel operates a desktop shell, a spreadsheet UI, a CLI, or a web app.
plastron.ca is live today, and a server keeps its data. Thus plastron is not zero-server now, but zero-server stays the goal. Work on the offline single-file builds continues. At this time, these builds do not have OPFS persistence. More work will follow.
The final goal is one index.html that you can open, edit, share, and archive. All of its data goes to JSON and comes back from JSON.
A database GUI in one self-contained index.html. It runs demand-paged SQLite with its pages in IndexedDB, and it has a schema tree, a SQL editor, CSV export, and CRUD. It runs from file://.
An offline-first credit-union core in one encrypted HTML file. cr-sqlite merges the work of the operators, and waumpaums settle between institutions.
A Protected-B HRIS that runs offline in one HTML file. CRDT SQLite merges the HR records of the operators.
A single-page web app. Its model is the 19th-century reform newspaper of William Lyon Mackenzie.
A chart of civilian firearm ownership (Small Arms Survey 2017) and intentional homicide rates (UNODC) for each country.
A JavaScript implementation of Lion Kimbra's genenote that runs on plastron.
sql.js loads the full database file into memory, but ordinary SQLite reads one page at a time. This demo keeps that demand-paged model in the browser, with pages in IndexedDB, FTS5 and CRDT in one build, from a file:// page.
localRbac enforces role-based access control with cryptography only, in a local-first CRDT database that a group edits offline and merges. Shamir secret sharing splits the master key k-of-n, and thus no single keyholder is a target for coercion.
A web application is easy to build, but IT approval for a server, a login, and a database is difficult. One offline HTML file with SQLite and Web Crypto is a free intermediate step, and its QR code removes transcription.
RheoServ Waumpaum is a credit-union core banking system in one encrypted HTML file. A CRDT merges the offline changes of the operators, and institutions settle with waumpaums.
A plastron sheetapp hides a plastron.ca share link in a PNG that you can post to X. The upstream ChaosEdgeSteg Python code runs without changes in Pyodide.
A proof of concept puts CRDT SQLite in one HTML file to merge HR data offline. The demo shows a fictional Juárez police office, and the plan is to use the same patterns in plastron.
The tortoise story of Zhuangzi in traditional Chinese. Click a character to see its decomposition tree with English glosses.