vizro is a free, open source business intelligence & reporting project written in Python and released under Apache-2.0. It has 3,818 GitHub stars, 305 forks and 37 open issues, and was last pushed 2 hours ago. On this registry it ranks #32 of 79 tracked projects in Business Intelligence & Reporting, with 5 head-to-head comparisons available. It gained 20 stars over the last 30 tracked days.

What is vizro?

Vizro is an open-source, Apache-2.0 licensed Python toolkit that lets analysts, data scientists, and BI developers build high-quality, multi-page data visualization apps from a few lines of low-code configuration instead of thousands of lines of hand-written dashboard code.

What it is

Vizro is a Python-based, low-code toolkit for constructing data visualization applications. It lives in the Python data and analytics ecosystem and builds on three established dependencies: Plotly for charting, Dash for the application server and web layer, and Pydantic for configuration and validation. Every Vizro app is described by a configuration rather than by imperative code, and that configuration can be written as Pydantic models, JSON, YAML, or Python dictionaries, so the same app definition can be produced from a notebook, a file, or an existing Python codebase.

The concrete problem it solves is the cost of assembling a multi-page BI-style application by hand. Building an equivalent app directly on Plotly and Dash normally means writing and maintaining thousands of lines of application code: layout scaffolding, page routing, filter wiring, cross-component callbacks, and export logic. Vizro replaces that hand-written application code with declarative configuration grouped into five high-level categories — Components, Controls, Actions, Layouts, and Navigation — and applies in-built visual design best practices so that the result is presentation-ready without a separate visual design effort.

Key capabilities

  • Components cover charts, tables, cards, KPI indicators, and forms as first-class configuration objects.
  • Controls provide filters and parameters through selectors such as drop-down menus and sliders.
  • Actions express interactions between components, drill-throughs, and export functionality.
  • Layouts offer grid layouts and flexible containers with a range of pre-set styles.
  • Navigation supports a range of app layout and navigation settings, including nested page hierarchies.
  • Configuration can be written in Pydantic models, JSON, YAML, or Python dictionaries for flexibility of implementation.
  • Optional high-code extensions in Python, JavaScript, HTML, and CSS enable bespoke visual formatting and custom components, combining low-code and high-code in a modular way.

Who uses it and how

  • Analysts and data scientists who need a multi-page dashboard but lack advanced engineering or visual design expertise can assemble a production-ready prototype from configuration alone.
  • Teams already standardized on Plotly and Dash can adopt Vizro to cut application code while retaining the underlying libraries and their production capabilities.
  • Advanced users extend apps with Python, JavaScript, HTML, and CSS for bespoke visual formatting and custom components when configuration is not enough.
  • Projects that need to move quickly from rapid prototype to production deployment use the built-in production-grade capabilities of Plotly, Dash, and Pydantic.

Getting started

Vizro is distributed on PyPI as the vizro package, so installation is a pip install vizro in a Python environment that meets the version pinned in vizro-core/pyproject.toml. Documentation, including the first-dashboard tutorial, lives at https://vizro.readthedocs.io/en/stable/.

How it compares

No list of paid products that Vizro replaces is provided, so the honest comparison is with the tools it is built on. Vizro sits above Plotly and Dash: it does not replace them, it generates and configures them, which means an app inherits their rendering and serving behaviour while the application code shrinks to configuration. Against writing raw Plotly and Dash code, the difference is the declarative layer and Pydantic-based validation; against a hosted BI product, the difference is that the user operates the resulting app. Among similar tools named in these facts, Plotly, Dash, and Pydantic are dependencies rather than competitors, and no directly comparable toolkit is named in this registry.

When to use it — and when not to

Vizro fits teams that want declarative, version-controlled dashboard definitions and are comfortable operating a Python web application, since the toolkit produces an app that the user must host, serve, and scale rather than a managed service. It is a poor fit for anyone who wants a fully hosted platform with no deployment responsibilities, and for users who need no Python at all, because configuration is expressed through Pydantic models, JSON, YAML, or Python dictionaries inside a Python project. The README excerpt supplied here is truncated mid-sentence in its "When to use Vizro?" section, so the documented guidance on use cases is incomplete; the licence is unambiguous at Apache-2.0 and the repository shows activity through September 2026, with 37 open issues at the time of writing.

project readme (upstream, from github) — read inline



Vizro logo
Vizro is a low-code toolkit for building high-quality data visualization apps

Python version PyPI version License Documentation OpenSSF Best Practices

Documentation | Get Started

Gif to demonstrate Vizro features

What is Vizro?

Vizro is an open-source Python-based toolkit.

Use it to build beautiful and powerful data visualization apps quickly and easily, without needing advanced engineering or visual design expertise.

Then customize and deploy your app to production at scale.

In just a few lines of simple low-code configuration, with in-built visual design best practices, you can quickly assemble high-quality, multi-page prototypes, that are production-ready.

Every Vizro app is defined by a simple configuration, using these high-level categories:

  • Components: charts, tables, cards, KPI indicators, forms and more.
  • Controls: filters and parameters, using a range of selectors such as drop-down menus and sliders.
  • Actions: interactions between components, drill-throughs, export functionality and more.
  • Layouts: grid layouts or flexible containers, with a range of pre-set styles.
  • Navigation: a range of app layout and navigation settings, including nested page hierarchies.

Configuration can be written in multiple formats including Pydantic models, JSON, YAML or Python dictionaries for added flexibility of implementation.

Optional high-code extensions enable almost infinite customization in a modular way, combining the best of low-code and high-code - including bespoke visual formatting and custom components.

Visit the "How-to guides" for a more detailed explanation of Vizro features.

Why use Vizro?

The benefits of the Vizro toolkit include:


Vizro helps you to build data visualization apps that are:

Quick and easy

Build apps in minutes. Use a few lines of simple configuration (via Pydantic models, JSON, YAML, or Python dictionaries) in place of thousands of lines of code.

Beautiful and powerful

Build high-quality multi-page apps without needing advanced engineering or visual design expertise. Use powerful features of production-grade BI tools, with in-built visual design best practices.

Flexible

Benefit from the capabilities and flexibility of open-source packages. Use the trusted dependencies of Plotly, Dash, and Pydantic.

Customizable

Almost infinite control for advanced users. Use Python, JavaScript, HTML and CSS code extensions.

Scalable

Rapidly prototype and deploy to production. Use the in-built production-grade capabilities of Plotly, Dash and Pydantic.

Visit "Why should I use Vizro?" for a more detailed explanation of Vizro use cases.

When to use Vizro?

Use Vizro when you need to combine the speed and ease of low-code Python tools, with production capabilities of JavaScript and BI tools, and the freedom of open source:

  • Have an app that looks beautiful and professional by default.
  • Enjoy the simplicity of low-code, plus the option to customize with code almost infinitely.
  • Rapidly create prototypes which are production-ready and easy to deploy at scale.

How to use Vizro?

Explore a few live demos to see different Vizro dashboards in action:

Basic Dashboard
Basic Dashboard
Try it live
Visual Vocabulary
Visual Vocabulary
Try it live
BI Dashboard
BI Dashboard
Try it live
Call Center Dashboard
Call Center Dashboard
Try it live
KPI Dashboard
KPI Dashboard
Try it live
Features Dashboard
Features Dashboard
Try it live

Browse the full Vizro Gallery for more examples.

Vizro framework

Low-code framework for building dashboards.

The Vizro framework underpins the entire Vizro toolkit. It is a Python package (called vizro).

Visit the documentation for more details.

Vizro visual vocabulary

Chart examples.

The visual vocabulary helps you to decide which chart type to use for your requirements, and offers sample code to create these charts with Plotly or embed them into a Vizro dashboard.

Visit the visual vocabulary to search for charts or get inspiration.

Vizro-MCP

A Model Context Protocol (MCP) server for Vizro.

Vizro-MCP works alongside an LLM to help you create Vizro dashboards and charts. It provides tools and templates to create a functioning Vizro chart or dashboard step-by-step.

Compatible with MCP-enabled LLM clients such as Cursor or Claude Desktop.

Vizro MCP Demo

Vizro-AI

Use LLMs to generate charts and dashboards.

Vizro-AI dashboard generation is no longer actively developed and is superseded by Vizro-MCP. Vizro-AI supports only chart generation from version 0.4.0.

Vizro-AI is a separate package (called vizro_ai) that extends Vizro to incorporate LLMs. Use it to build interactive Vizro charts and dashboards, by simply describing what you need in plain English or other languages.

Visit the Vizro-AI documentation for more details.

Gif to demonstrate Vizro-AI

Installation and first steps

pip install vizro

See the installation guide for more information.

The get started documentation explains how to create your first dashboard.

For AI agents and LLMs

If you are an AI agent or LLM building Vizro apps, start with the Vizro for LLMs cheatsheet and use llms.txt as the machine-readable documentation index. Detailed documentation is available in these forms:

  1. Per-page Markdown: Remove the trailing / from any canonical documentation URL and append .md; use /index.md for the documentation root. No custom request header is needed.
  2. Content negotiation: Send Accept: text/markdown, text/html;q=0.9. Include the HTML fallback because upstream conversion returns HTTP 406 for pages over 2 MB.
  3. Bulk documentation: Fetch llms-full.txt for the narrative documentation and user guides in one request, excluding the API reference.
  4. Targeted model reference: Fetch per-model files such as graph.md instead of loading the combined Models API page. All per-model files are listed in llms.txt.

Packages

This repository is a monorepo containing the following packages:

Community and development

We encourage you to ask and discuss any technical questions via the GitHub Issues. This is also the place where you can submit bug reports or request new features.

Want to contribute to Vizro?

The contributing guide explains how you can contribute to Vizro.

You can also view current and former contributors here.

Want to report a security vulnerability?

See our security policy.

License

vizro is distributed under the terms of the Apache License 2.0.

Frequently asked questions

Is vizro free to use?

vizro is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does vizro do?

Vizro is a low-code toolkit for building high-quality data visualization apps.

What is vizro written in?

vizro is primarily written in Python. Its source is publicly available at https://github.com/mckinsey/vizro, and it has 3,818 GitHub stars.