Like many a data scientist, I’ve spent tons of time in Jupyter notebooks. For many years (2015-2022), I mostly just used vanilla Jupyter - or sometimes Google Colab. In 2023, we started using Hex at work, which was super slick and fun: LLM-powered cells! Dark mode! Cells that remember each other’s state!
I’ve been, indeed, very happy with Hex for these last couple years. But, in my homelab journey, I realized having a notebook environment to explore my data - my transaction history from Mint, my purchase history from Amazon, my job hunt data - would be really cool. This became even cooler as I stood up services with database backends - my audiobooks! my ebooks! - the possibilities for data analytics on my own data were endless!
At first, I just set up the basic data science Jupyter notebook via Docker Hub. I used it for a few days but it felt very, well, 2015. I was like, come on, there must be something slicker out there!
Enter marimo!#
I did a bit of research (Kagi-ing, LLMing), and landed on marimo. It was tons of good things: open-source, self-hostable, with flexible AI integration - including using a self-hosted LLM backend. Also: dark mode! Turning things into apps! Notebooks getting automatically turned into version-controllable Python .py files! Per-notebook environment management with uv!
That’s it! Glorious.