// the find
plotly/dash
Data Apps & Dashboards for Python. No JavaScript Required.
Dash lets you build interactive web dashboards entirely in Python, wrapping React and Flask so you never write JavaScript. It's aimed at data scientists and analysts who need to ship something interactive without learning frontend tooling. Works well for internal tools and exploratory data apps.
The callback model — decorating a Python function to wire a dropdown to a chart — genuinely works and is easy to reason about for small apps. ~50 Plotly chart types are included out of the box, so most data viz needs are covered without additional dependencies. Active maintenance with recent commits and a large community means most problems have Stack Overflow answers. The component ecosystem (dash-core-components, dash-ag-grid, etc.) covers 90% of dashboard UI needs without writing any React.
The callback model hits a wall at medium complexity: circular dependencies, clientside callbacks, and multi-page apps all require learning escape hatches that undercut the 'just Python' premise. Concurrency is a real problem — the default Flask dev server is single-threaded, and production deployments need Gunicorn with multiple workers, but stateful callbacks that store data in diffs break across workers unless you push state to Redis or dcc.Store. The OSS version has no built-in auth; adding login requires a third-party package (dash-auth) or rolling your own middleware, which surprises people expecting a production-ready framework. Custom components require writing React and webpack config, which completely breaks the no-JavaScript pitch the moment you need anything outside the built-in library.