APPS
Dash: the open-source Python framework for data applications
The most popular Python framework for analytical web apps
24K+
GitHub stars
9.1M+
PyPI downloads per month
8+
years of active development
How it works
30 lines of Python. A fully interactive web app.
1. Define your layout
Use Python to declare your UI — dropdowns, graphs, sliders, tables, and 100+ other components. No HTML templates.
2. Write callbacks
Decorate plain Python functions with
@app.callback
When an input changes, Dash calls your function and updates the UI automatically.
3. Run it
python app.py
and open your browser. That's it. Your app is live at localhost and ready to deploy.
from dash import Dash, dcc, html, Input, Output
import plotly.express as px
import pandas as pd
df = pd.read_csv(
"https://raw.githubusercontent.com/" "plotly/datasets/master/gapminder_unfiltered.csv"
)
app = Dash()
Works with AI too
Easy for you. Easy for AI agents.
Describe what you want
Tell your AI coding agent — Claude, Cursor, Copilot, or any other — to build you a Dash app. "Show me a dashboard that lets me filter sales by region and date." That's the whole prompt.
Get a working app in minutes
The agent generates a complete Dash application — layout, callbacks, charts, and a runnable server. Not a skeleton. Not a TODO list. A working app you can open in a browser.
Iterate or ship — your call
Use it as-is for a quick internal tool, or keep building. Add authentication, new pages, custom styling. Because Dash is a real framework, your AI-generated prototype doesn't hit a wall — it grows into your production app.
Pure Python reactive
Wire UI to Python. No HTML, CSS, or JavaScript - just functions and decorators.
@callback
The decorator that turns a Python function into a piece of reactive UI. Inputs, outputs, and state— all declared in Python.
Pattern-matching callbacks
Generate dynamic layouts that wire up automatically. Add or remove components at runtime without rewriting your callbacks.
Clientside & background
Clientside callbacks run instantly in the browser. Background callbacks offload long jobs without freezing the UI.
Components for serious analytics
Spreadsheet-class grids. Production-ready charts.
Complete component libraries — accessible from Python, React under the hood.
Dash AG Grid
Filtering, grouping, pivoting, and editing at enterprise scale. The same grid powering data-heavy apps inside global banks.
Dash Mantine + Bootstrap
Complete UI kits - buttons, modals, tabs, layouts - wired up from Python with no front-end work required.
dcc.Graph
Embed any Plotly figure into a Dash app with crossfiltering, selection, and click events wired to Python callbacks.
Production ready
From prototype to production data application.
Dash apps run in regulated industries, on global infrastructure, behind firewalls.
Multi-page apps
Dash Pages handles file-based routing, layout composition, and navigation state — modern web framework patterns, written in Python.
Streaming & long-running tasks
WebSocket support, set_props for incremental updates, and background callbacks keep dashboards responsive under load.
Deploys anywhere
Easy, fast, one-click deployment to Plotly Cloud and Dash Enterprise. Can be deployed on other platforms.
Tech Specs
License
MIT (open source)Form factor
Python frameworkInstall
pip install dashLanguages
PythonBuild on
Flask (server) + React (client) + plotly.jsComponents
dcc, html, Bio, Cytoscape, AG Grid, DataTable, Mantine, plus community librariesState model
Server-side reactive callbacks; pattern-matching, clientside, background, longStreaming
WebSocket and SSE via dash-extensions; long-callbacks for jobsAuth
None built-in, bring your own (Flask-Login, Auth0, OIDC) or use authentication libraries included with Plotly Cloud and Dash Enterprise.Server
Any WSGI server: Gunicorn, uWSGI, mod_wsgi; ASGI via async wrappersHosts on
Plotly Cloud, Dash Enterprise, Kubernetes, Heroku, AWS, Azure, GCPDev loop
Hot reload, debug toolbar, callback graph inspectorTesting
dash[testing] with pytest + Selenium/Playwright driversVersioning
SemVer; 12-month deprecation policy on public APIsPython
3.9+Source
plotly/dashon GitHub, 43k+ stars