Serverless Marimo Dashboard

Building serverless interactive dashboards with Marimo.
Python Recipes
Data Science
Published

April 24, 2026

Modified

April 27, 2026

marimo is a fantastic tool for collecting and analyzing data, in many ways more powerful than Jupyter. One of the selling points for me is it’s reactive data flow model. No more worrying about running cells in the right order or dealing with stale data. With marimo, your data is always up to date and your analysis is always accurate. This design, combined with it’s app view (layouts) makes it an efficient vehicle for creating interactive dashboards.

If you’re new to marimo, you can get started with the tutorials shiped with the library. Just run in your shell of choice:

uv run marimo tutorial

Setting up a dashboard to convey an important analysis (like convincing your partner to buy new gaming PC) can be a 10x solution. But paying for hosting and maintaining a server for a this can eat up valuable cash resources for those RAM sticks. That’s where webasembly and pyodide come in. You can run fully fledged Python applications directly in the browser. The scope of packages supported is not as wide as a regular Python environment, but it’s still pretty good and growing. You can check out the pyodide documentation for more details on what’s available.

Here is how you can create a serverless Marimo dashboard:

  1. Create a simple dashboard using marimo. Set the layout to create an interactive experience. Beware, not all python libraries are supported, but you can still do a lot with the ones that are - pandas, matplotlib, plotly, polars and more.

  2. Use marimo to export your dashbooard to webassembly. Marimo has built-in support for exporting to webassembly, so you can easily create a standalone dashboard that can be hosted anywhere.

uv run marimo export html-wasm assets/python/serverless_marimo_dashboard_example.py --output assets/marimo-dashboard --mode run
  1. To check if your dashboard works, you can use a simple HTTP server to serve the files locally. For example, you can use Python’s built-in HTTP server module:
python -m http.server --directory assets/marimo-dashboard
  1. Host your dashboard on a static site hosting service like GitHub Pages, Netlify, or Vercel. Since the dashboard is just a static file, you don’t need to worry about server maintenance or costs.

  2. When you open the dashboard in your browser, it will load the webassembly module and run your Python code to display the data. You can interact with the dashboard just like you would with any other web application. The compute is done locally in the browser using pyodide, the user is paying for it with their CPU cycles.

You can try the dashboard out here.

Note

Download the whole code here.

Back to top