To get updates like this one delivered to your inbox, subscribe to our newsletter.
This is your monthly reminder that at marimo, we’re on a mission to make the
world’s best programming environment for working with data, and it’s all free
and open source. Just pip install marimo
or uv add marimo
to get started!
You’re reading the ninth marimo newsletter.
Since the last newsletter was mailed a month ago, we’ve had 15 new releases. Our latest release, marimo 0.10.0, includes a big new feature that many of you have asked for: it’s now possible to export your marimo notebooks as self-contained, WebAssembly-powered HTML files. This lets you host interactive notebooks on GitHub Pages or other HTTP servers, no backend required!
We’ll get into this and other new features, as well as highlight some awesome content from the marimo community. But first --- we need your feedback!
📝 Take our two-minute survey
marimo is built for humans like you, and we need your feedback to make it better. We’d really appreciate it if you could take just a couple minutes to fill out a brief survey: https://marimo.io/feedback.
Help shape our roadmap
On the road to marimo 1.0, we’re focusing on six primary goals for marimo:
- Rapid data manipulation with Python and SQL
- Excellent developer experience in the marimo editor
- Excellent developer experience working with notebook files
- Seamless embedding of notebooks in web pages and sharing notebooks as applications
- Working with data and compute at any scale
- Enterprise-readiness
We’ve posted a rough sketch of how we plan to make progress on these goals over the next year on GitHub --- please let us know if we’ve missed anything, what you’re most excited for, and please share any other feedback you may have!
️ New features
Publish interactive notebooks on GitHub Pages
Starting with marimo 1.0, it is now possible to export marimo notebooks as self-contained “executable” HTML files, powered by WebAssembly. These exported notebooks can be hosted on GitHub Pages or other HTTP servers, letting you share interactive notebooks on the web without paying for servers or infrastructure. Thanks to Pyodide and WebAssembly, the web browser itself executes the notebook file’s contained code.
To get started, first export your notebook at the command-line. You can choose whether to make the notebook editable or readonly (with code hidden).
To view your HTML file, you’ll need to host it on GitHub Pages or another HTTP server, like this example of a readonly notebook, hosted on GitHub Pages. This example was published using a GitHub Actions Workflow; read our docs to learn more.
If you do publish a WebAssembly notebook, please share it with us over email (just hit reply) or on Discord. (Interactive blog posts? Papers and code, implemented as marimo notebooks? Executable tools? Tutorials?)
We know you all have asked for this ability ever since we announced marimo’s support for WebAssembly back in April; thank you for your patience. We’re excited to see what you’ll build and share!
Finally, note that WebAssembly notebooks do have some limitations, such as on the packages that can be used; learn more at Pyodide’s docs.
Other highlights
We’ve released many other new features and improvements. Here are just a few:
- Export marimo notebooks to
ipynb
files with outputs included, from the command-line (marimo export ipynb --sort top-down --include-outputs
), and snapshot notebooks to ipynb via notebook settings. This lets you view outputs on GitHub and use existing the large ecosystem of tools already built foripynb
files. - Improved rendering of hidden markdown code, with no visual clutter
- Improved performance of interactive dataframes, letting you page through and filter millions of rows
- Experimental chat sidebars and multi-column layouts; enable in the notebook settings.
Check out our release notes for a full list.
🍃 Community
We have over 70 contributors pushing code to marimo, up from 59 last month, and over 1k marimonauts (mossballers?) hanging out with us on Discord — come chat! Also, a small celebratory note: we’ve crossed 8k stars on GitHub!
Community Roundup
Here’s a roundup of inspiring things the marimo community has been up to in the past few weeks:
- Wigglystuff: Vincent Warmerdam’s collection of creative and expressive widgets comes to life in marimo notebooks thanks to reactivity. Check out his examples on interactive PCA or explorable explanations.
- mowidget: Even more widgets! This collection by Eugene includes an array viewer, a color picker, a pomodoro timer, and more. ️
- 🎶 djalgo: Djalgo by Essi Parent is a Python toolkit for music composition, with an interactive user guide implemented in marimo.
- 🔬 Model risk with CVXPY: In this online book by Thomas Schmelzer, learn how to model and compile risk using convex optimization. Check out the repo too, which demonstrates how to integrate marimo with the JupyterBook publishing framework.
- 📝 Beautiful markdown: Thanks to contributor Shahmir Varqha, hidden markdown code now renders inline, without a border! See our markdown tutorial for an example.
- Domain-specific environments: In this YouTube video, Vincent Warmerdam explains how marimo lets you turn notebooks into domain-specific environments --- tools that make your own tools, getting us a step closer to the holy grail of end-user programming.
For more awesome projects from our community, check out our awesome-marimo repo. Feel free to submit your own project via a PR!
By the marimo team
- 🌱 Our seed fundraise: We announced marimo’s seed fundraise; our list of investors includes the founder of Kaggle Anthony Goldbloom, the head of Google AI Jeff Dean, the CEO of HuggingFace Clem Delangue, and more.
- 🦆 Visualizing text embeddings with MotherDuck: In this blog by Myles, see how to use marimo plus duckdb and motherduck to compute and visualize text embeddings in just a few lines of code.
- 🐍 Real Python podcast: Listen to Akshay nerd out about Python and marimo on the Real Python podcast.
- 🛜 Deploying marimo notebooks from GitHub: Learn how to serve your collection of Python notebooks as data apps directly from a GitHub repository using marimo.
- 🤗 Sharing notebooks on HuggingFace: We’ve made it easy to deploy notebooks on HuggingFace Spaces; check out this video for an overview.
P.S. Find us on 🦋: https://bsky.app/profile/marimo.io
-Akshay & Myles