Interactive Data Science with Marimo

Exploring Marimo’s reactive notebook capabilities integrated with Quarto
python
interactive
data-science
marimo
Author

Nipun Batra

Published

June 30, 2025

Introduction

This post demonstrates the power of Marimo, a reactive Python notebook that integrates beautifully with Quarto. Unlike traditional notebooks, Marimo automatically updates cells when their dependencies change, creating a truly interactive experience.

What Makes Marimo Special?

Marimo brings several advantages over traditional notebooks:

  • Reactive execution: Cells automatically re-run when their inputs change
  • No hidden state: Clean execution model prevents common notebook pitfalls
  • Interactive UI elements: Built-in widgets for creating interactive experiences
  • Reproducible: Deterministic execution order ensures reproducibility
  • Pythonic: Notebooks are valid Python scripts

Interactive Demo

Try these live interactive examples! Adjust the sliders and dropdowns to see the content update in real-time:

Example 1: Simple Interactive Slider

NaN Batman!

Example 2: Interactive Text and Dropdown

Generated Message:
Hello world there friend everyone folks!
Settings: - Greeting: Hello - Word count: 5 - Words used: world, there, friend, everyone, folks

Key Features Demonstrated

1. Reactive Updates

Try adjusting the sliders in the examples above - notice how all dependent content updates automatically without manually re-running cells.

2. Interactive Widgets

Marimo provides a rich set of UI elements: - Sliders for numeric inputs - Dropdowns for categorical selections
- Text inputs, checkboxes, and more

3. Real-time Content Generation

The examples show how you can create interactive content that responds to user input, generating text and messages dynamically.

Try More Complex Examples

The examples above demonstrate basic interactivity. For more complex scenarios, you can:

  1. Download the full notebook: Save this file locally
  2. Run with marimo: pip install marimo && marimo edit 2025-06-30-marimo-demo.py
  3. Explore additional features like multiple linked widgets, complex layouts, data visualization, and advanced reactive patterns

Getting Started with Marimo

To use Marimo in your own projects:

  1. Install marimo: pip install marimo
  2. Create a new notebook: marimo edit my_notebook.py
  3. For Quarto integration: quarto add marimo-team/quarto-marimo
  4. Include your notebook in Quarto documents using the {marimo} code block

Conclusion

Marimo represents an exciting evolution in computational notebooks, bringing reactive programming concepts to data science workflows. Its integration with Quarto makes it perfect for creating interactive blog posts and documentation.

The combination of Marimo’s interactivity with Quarto’s publishing capabilities opens up new possibilities for sharing reproducible, engaging data science content.

Try experimenting with the interactive elements above to get a feel for Marimo’s reactive nature!