Marimo
A reactive, git-friendly Python notebook that stores as plain
.py, updates dependent cells automatically, and runs as an app in the browser. My new
default for interactive, reproducible, shareable work.
marimo is an open-source Python notebook that fixes the two things that always bothered me about Jupyter: hidden state and version control. It is reactive, so when you change a cell every other cell that depends on it re-runs automatically, and it stores the whole notebook as a plain Python file instead of JSON, so it diffs cleanly in git and runs as a normal script or module.
What it is
A notebook is really a dependency graph of cells. marimo tracks that graph for you: no more running cells top-to-bottom in the right order, no more stale variables from a cell you deleted ten minutes ago. Delete a cell and its variables leave with it. The result is deterministic execution with no hidden state, which is exactly what you want when a notebook has to reproduce a result later.
- Stored as
.py: clean git diffs, importable as a module, runnable as a script. - Reactive: change a value or cell and every dependent cell updates on its own.
- Interactive UI: sliders, dropdowns, tables and selectable plots wired straight to Python variables, no callback boilerplate.
- SQL cells: query Pandas, Polars, DuckDB, Postgres and more inline.
- Runs anywhere: as a server app via the CLI, or exported to WebAssembly so it runs entirely in the browser with no backend.
Why I care
The browser/WASM angle is the interesting one for a portfolio site: a marimo notebook can ship as a self-contained interactive page, closer to a Distill article than a static export. That is the bar I want for explaining ML work, a live thing you can poke rather than a screenshot. molab (marimo's hosted playground) makes that sharing one link.
Examples worth clicking
These run live in the browser via molab, no install:
References
- marimo.io, homepage and docs
- marimo in 100 seconds (video)
- Distill, the interactive-explanation bar I am chasing
Coming soon: I will embed my own marimo notebook here, an interactive MRI walkthrough
(mri_tes), running live in the browser.