Skip to content

LukeTheoJohnson/dashboard-studio

Repository files navigation

DashboardStudio

CI Licence: PolyForm Noncommercial

A pandas df in -> interactive dashboard out. Dynamically rendered to a standalone HTML file, a Streamlit app, or a Plotly Dash app from one authoring API.

Live gallery → — every dashboard there is a real exported file, served as-is.

Customer churn, HTML lane

What this is. A design idea: keep a dashboard's definition separate from the backend that renders it.

Why?

Dashboards are normally tied to a runtime or server, a notebook needs a kernel etc. Where as here every chart is a declarative query. A planner turns each one into an aggregation plan and runs it against a binding pandas over an embedded frame, or SQL pushed down to a db.

Lane Call Output
HTML .save("dash.html") one self-contained file, data embedded, zero install
Streamlit .to_streamlit("dir") a runnable Streamlit project
Dash .to_dash("dir") a runnable Plotly Dash project
Streamlit Dash
Streamlit Dash

Quickstart

import pandas as pd
from dashboard_studio import Dashboard

df = pd.read_csv("diamonds.csv")
(Dashboard("Diamond Pricing", df, theme="daylight")
    .kpi("Avg price", "price", agg="mean", fmt="currency")
    .bar("Mean price by cut", x="cut", y="price", agg="mean")
    .scatter("Carat vs price", x="carat", y="price", color="cut")
    .filter_by("cut")
    .save("diamonds.html"))          # or .to_streamlit(dir) / .to_dash(dir)

Dashboard.auto("Sales", df).save("out.html") infers the whole thing from the data.

Install & run

pip install -e ".[streamlit,dash,sql]"   # core is pandas-only; extras add lanes
python examples/build_examples.py         # HTML for three real datasets
python -m pytest tests/ -q

How it works

studio.py resolves one backend-neutral spec; planner.py turns each chart into an aggregation plan and runs it against a binding (pandas or SQL); exporters/ renders a lane. figures.py, planner.py, and components.py are copied verbatim into each generated app, so an exported project runs with only its framework installed — no DashboardStudio needed.

Licence

PolyForm Noncommercial 1.0.0 — © 2026 Luke J. Free for any noncommercial use.

About

Dynamic Dashboards across multiple frontends

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages