Marimo is joining CoreWeave!

Read our announcement

Why Taxwire standardized on marimo for data exploration and internal tools

Why Taxwire standardized on marimo for data exploration and internal tools

In this case study, Taxwire Co-founder and CTO Steven Schmatz explains how marimo enables engineers and tax experts alike to work with data across his company.

Taxwire helps companies automate global sales tax compliance across their finance and commerce stack, saving operators and finance teams countless hours and dollars at hundreds of companies like Pulley, Italic, and Omni. Hundreds of moving parts go into getting and staying compliant: exposure analysis, filings, workflows, government mail. Taxwire handles them all.

Behind the scenes, making compliance effortless means working with vast, complex datasets and turning raw analysis into production-grade tools. For this, Taxwire needed a single environment that empowered everybody - engineers and tax experts alike - to write code quickly and ship with confidence.

That tool turned out to be marimo.

Seeking a Notebook Fit for a Modern Software-First Team

Taxwire’s DNA is engineering-driven, to properly solve the highly complex problem of global tax compliance. My name is Steven Schmatz, and I’m the co-founder and CTO of Taxwire. I lead a team of backend engineers and tax experts who all write Python, ship code, and own production systems. We needed a tool that was:

  • A better scratchpad than an IDE. The team wanted a faster way to experiment with data, debug services, and query databases - without the friction of Pandas boilerplate, ad hoc SQL scripts, or visualizing complex datasets via a CLI.
  • Seamlessly integrated into their codebase. Work needed to run against live databases, services, and libraries in their monorepo, locally and safely.
  • Production-ready when needed. Prototypes shouldn’t dead-end in a notebook; they needed a path to become interactive, tested, reviewed, and deployed internal tools.

We tried using Jupyter notebooks. While they were helping in exploring data, they didn’t easily fit into our software workflows. It didn’t work with Git, CI/CD, or pytest. And while it made static reports, it couldn’t grow into real software artifacts powering internal applications.

The Switch: marimo as Both Scratchpad and App Platform

I discovered marimo after a shout-out from Pydantic creator Samuel Colvin. The appeal was immediate:

  • A step function change in prototyping and exploration. marimo’s polished user interface, reactive model, dataframe viewer, built-in AI assistance and SQL editor made it faster than any IDE’s “write-run loop.” Engineers stopped fighting with Pandas/Polars boilerplate and got straight to insight.
  • Seamless integration. Because marimo notebooks are just Python (not JSON), they can directly call into databases, services, and libraries from the monorepo. Prototyping feels native, not bolted on.
  • A clear upgrade path. When work is ready to deploy, engineers add marimo’s built-in UI elements, spinners, loading bars, and interactivity to turn a scratchpad into a full-fledged internal app. The code is:
    • Testable with pytest for confidence.
    • Readable in Git for peer review.
    • Deployable inside Next.js apps for secure, authenticated internal tools.

We even built a custom system on top of marimo to make notebooks maximally performant and fully integrated with internal auth and infrastructure. Engineers like Ahmet Novalić contributed improvements back to the marimo codebase along the way, thanks to the open source nature of the project.

One Tool for Everyone: Engineers and Tax Experts

Perhaps most transformative: marimo isn’t just for engineers. Taxwire’s tax experts — the domain experts closest to the work — now write and maintain marimo notebooks.

  • For routine transformations or workflows, tax experts use Python, SQL, and AI assistants to build marimo notebooks.
  • Engineers review and productionize these notebooks, turning them into stable, tested, and deployed tools.
  • The old tax → PM → engineering handoff loop is gone. Coordination costs shrink. Tax experts automate their own workflows directly.

This is incredible leverage: experts build tools exactly as they need them, and engineers ensure they scale and integrate cleanly.

How Taxwire Uses marimo Today

marimo has become the default way that most Taxwire engineers write greenfield code for many new explorations or features. It has fully replaced Jupyter notebooks: all .ipynb files have been phased out. Many of these marimo notebooks become full-fledged production features, and many stay as production marimo apps.

alt text

Example marimo apps that the Taxwire team use daily:

  • A calculation workflow app for automated CSV processing.
  • A database query/search tool for interactive record exploration.
  • A workflow manager for long-running jobs.
  • Reusable one-off scripts. Even ad hoc customer data requests become reproducible marimo notebooks, leaving behind a library of mini-tools instead of one-off throwaway scripts.

All are deployed inside a Next.js app, with authenticated marimo notebooks handling sensitive tax data securely.

This has enabled weekly prototyping and exploration across the eng and tax teams. Engineers rely heavily on DuckDB + SQL cells for slicing data, rapid prototyping, and building new utilities/libraries. The team particularly likes the code-first simplicity vs. low-code sprawl. Unlike other “hybrid” tools, marimo is pure Python. No confusing mix of “drag-and-drop + custom code.” That means simpler maintenance, fewer errors, and more stability.

The Results

  • A single tool for the entire org. Engineers, tax experts, and SMEs all start in the same environment - whether for exploration, feature development, or internal tool building.
  • Scratchpad-to-production flow. marimo makes the path from idea → prototype → deployed app rapid and seamless.
  • Higher leverage for experts. Tax experts themselves now contribute code, reducing coordination loops and accelerating delivery.
  • Modern engineering culture. By standardizing on open-source, Python-native, testable, reviewable notebooks, Taxwire reinforces its culture of rigor, speed, and tech-forward problem solving.

marimo isn’t just a notebook for us - it’s our scratchpad, our prototyping environment, and our app platform. It lets engineers and tax experts work side by side in code, and it turns ideas into production tools with almost no friction. That’s transformational.

Why It Matters

Taxwire’s mission is to make global tax compliance effortless. That requires software that moves as fast as the problem space. marimo gives us one environment that works for everyone - engineers and tax experts alike - while reinforcing a culture of modern, testable, production-grade engineering.

Just like Taxwire modernizes sales tax, marimo modernized our data work.