I do programming as a side project — Marimo has been a huge unlock for me. Part of it has been just watching the videos that are both updates about the software and also little examples of how to think about data science. Marimo also helps curate useful python stuff to try.
Starting to use AI in Marimo, I was able to both ‘learn polars’ for speed, or create a custom AnyWidget so I could make a UI I could imagine that wouldn’t work with standard UI features.
Giving a LLM more context will be fab for me. Now if I could just teach Claude that this really is the ‘graph’ and it can’t ever re-assign a variable. It’s a gotcha of Marimo vs python. Worth it as a hassle for the interactivity. But makes me feel a bit like I’m writing C and the compiler is telling I need a semicolon at the end of the line. I’ve made that error so many times…..
I started using marimo for the reactive execution, after being spoiled by Observable and Pluto.jl Being able to plug directly into Altair charts and tables was a huge boon. Then I discovered anywidget, which has been a game changer.
Now I use Claude to generate anywidgets for controls I need, and just focus on the heavy lifting with python, it's great. Being able to just have this all run in one flow with pair should make this 10x smoother.
As an example I get spreadsheets sent by clients that all have different file types, formatting, names, and business rules. I had Claude build me a widget to define a set of data-cleaning steps (merge x+y fields, split with regex, etc.). Now this task that used to take a lot of manual work and iteration is just upload a spreadsheet, preview and select my cleaning steps, run my algorithm and wait for it to come out the other side (with labelled progress bars). When it's done I get a table element and some interactive Altair charts to click on to filter and fine-tune, then I can just export the table and send it.
This task used to be done manually by a team, then I turned it into 1-2 hours with Jupyter. Marimo let me turn it into 5-15 minutes. Visually inspecting the results by a human is a requirement, so it's not completely automatable, but 15 mins turnaround every few weeks feels good enough.
Anyways, marimo rocks. The _only_ thing missing is the easy deploy for internal-users story as I cannot use molab (yet?).
Hey, thanks and glad to hear the marimo + anywidget combo has been an unlock (I'm also the creator of anywidget). Clearly I'm biased, but custom widgets are a powerful primitive (marrying web & data ecosystems), and it's exciting to see coding tools making it even more accessible to build them out for specific or one-off tasks.
Re: deployment, we hear you & stay tuned. You can provide input here [1].
Side note: if you're curious, I have an RFC out for widget composition (widgets within widgets) [2]. Should be shipping soon.
[1] https://github.com/marimo-team/marimo/issues/5963
[2] https://github.com/manzt/anywidget/pull/942
The visual cleaning idea is really interesting. Would you mind sharing more details?
Really glad to hear that! The graph can get complex for big notebooks and maintaining a full picture of variable dependencies across cells is a lot to ask a model to do correctly and hold in context. (It took us a little bit to get the parsing right in marimo!) With pair, it doesn't have to.
The model just "lives" in the environment, and when marimo says "you can't reuse that variable," it renames it and moves on. Hope you give pair a spin!