Reactive execution: the spreadsheet model for code
In Jupyter, cells execute top-to-bottom in the order you run them. Run cell 5 before cell 2, and X is undefined. It works but you have hidden state. In Marimo, cells declare their dependencies. `x = 5` in cell 1, `y = x + 2` in cell 2. Change x to 10, and cell 2 re-runs automatically, updating y to 12. You never need to 'run all cells' because the notebook maintains consistency automatically. Migrating from Jupyter: save your .ipynb as .py, rename to .marimo.py, open in Marimo.
The UI: what Jupyter should look like in 2026
Marimo's UI is a modern web app: dark mode, cell folding, markdown preview, table of contents, variable inspector, and a sidebar file browser. The cell editor has autocomplete, type hints, and error squiggles. It renders DataFrames as interactive tables with sorting and filtering. Plots are rendered inline with Plotly and Matplotlib. The UI feels like VS Code for notebooks rather than a browser-based hack from 2015.
App mode: turn notebooks into interactive dashboards
Marimo can run notebooks as web apps. Add UI elements (sliders, dropdowns, date pickers, text inputs) with `mo.ui.slider()`, and the notebook becomes an interactive dashboard. I turned a data analysis notebook into a dashboard that lets non-technical users filter by date range, product category, and metric. The transformation from notebook to dashboard is zero-effort: the same file runs in both modes.
Git-friendly: .py files instead of .ipynb JSON blobs
Jupyter notebooks (.ipynb) are JSON with embedded outputs. A simple code change looks like a 100-line diff because the output metadata changes. Marimo stores notebooks as .py files with a special comment format. Diffs are clean Python, and you can run Marimo notebooks as regular Python scripts. This makes version control, code review, and CI integration actually work with notebooks.
Marimo vs Jupyter vs Google Colab vs Deepnote
Marimo: reactive execution, clean .py files, app mode. Best for reproducible analysis. Jupyter: largest ecosystem, most extensions. Best when you need a specific Jupyter extension. Google Colab: free GPU, easy sharing, Google Drive integration. Best for quick experiments with GPU. Deepnote: collaborative, cloud-hosted, database integrations. Best for team data analysis.