v0.4.1 — public betaNow with hot reload support

Build React UIs
with pure Python.

BrickFlowUI compiles a Python function into a full React component tree at runtime. No JavaScript. No JSX. No build step. Deploy anywhere Python runs.

2.4k stars
MIT license
WSGI/ASGI compatible
dashboard.py
1from brickflowui import App, ui
2from brickflowui.components import (
3 DataTable, LineChart, StatCard, Sidebar
4)
5 
6def analytics_dashboard():
7 df = load_data()
8 
9 return ui.layout(
10 sidebar=Sidebar(items=["Overview", "Events", "Users"]),
11 main=ui.stack(
12 ui.row([
13 StatCard(label="MAU", value="41,382", delta="+12%"),
14 StatCard(label="Revenue", value="$128k", delta="+8%"),
15 StatCard(label="Churn", value="2.1%", delta="-0.3%"),
16 ]),
17 LineChart(data=df, x="date", y="revenue"),
18 DataTable(df=df, sortable=True, filterable=True),
19 )
20 )
21 
22App(root=analytics_dashboard).run()
2.4k
GitHub stars
48k
Monthly installs
340+
Discord members
< 30s
Time to first UI
Features

Everything you need.
Nothing you don't.

Built for Python developers who want production-grade UIs without the frontend overhead.

Zero JavaScript
No JSX, no Webpack, no Node. Write Python, get a full React application. The bridge is invisible by design.
Arbitrary component trees
Compose any React component hierarchy from Python. Not preset widgets — real, flexible trees you control completely.
Instant hot reload
Save your Python file, the UI updates instantly. Full hot-reload development loop with no page refresh required.
Data-first by design
Pass pandas DataFrames, SQLAlchemy results, or plain dicts directly into components. No serialization boilerplate.
Production-grade
Auth, routing, environment variables, WSGI/ASGI-ready. Ships to production the same way your API does.
Bring your own React
Already have a React component library? Wrap it once in Python and use it everywhere in your codebase.
Examples

See it in action.

Real component patterns from the library. Copy any snippet and run it as-is.

Analytics Dashboard
StatCards, charts, filterable table — the full analytics layout in ~20 lines.
dashboard.py
1from brickflowui import App, ui
2from brickflowui.components import DataTable, LineChart, StatCard, Sidebar
3 
4def analytics_dashboard():
5 df = load_data()
6 
7 return ui.layout(
8 sidebar=Sidebar(items=["Overview", "Events", "Users"]),
9 main=ui.stack(
10 ui.row([
11 StatCard(label="MAU", value="41,382", delta="+12%"),
12 StatCard(label="Revenue", value="$128k", delta="+8%"),
13 StatCard(label="Churn", value="2.1%", delta="-0.3%"),
14 ]),
15 LineChart(data=df, x="date", y="revenue"),
16 DataTable(df=df, sortable=True, filterable=True),
17 )
18 )
19 
20App(root=analytics_dashboard).run()
Compare

How we're different.

The only Python UI framework that gives you full React component flexibility without touching JavaScript.

CapabilityBrickFlowUIStreamlitGradioRetool
Arbitrary component trees
Python-only — no JS required
Hot reload
Custom React components
Production auth + routingPartial
Open source / self-hostedMITApacheApache
Python-first data passing
WSGI/ASGI deployment
How it works

Three steps to a production UI.

From install to deployed dashboard in under an afternoon.

01
Install
One pip install
pip install brickflowui
No Node, no npm, no build config. The React runtime is bundled and managed inside the package.
02
Compose
Write Python, get React
Define your component tree with Python functions and objects. Layouts, state, event handlers — all in Python.
03
Deploy
Deploy like any Python app
WSGI/ASGI-compatible. Ship to Railway, Fly, EC2, Databricks Apps, or Hugging Face Spaces with no frontend hosting needed.
Community

What developers say.

Finally, a way to build proper React UIs without touching JavaScript. We migrated three internal dashboards in a week.

u/dataengineer42
Hacker News · 847 points

The hot reload alone is worth it. Combined with pandas DataFrames passing directly into tables — it's exactly what internal tooling should look like.

Anna K.
Senior Data Engineer

We evaluated Streamlit and Retool. BrickFlowUI gives us the component flexibility of Retool with the Python-first story of Streamlit. Clear winner.

Marcus L.
Platform Lead

Start building today.

Install in 30 seconds. Ship your first dashboard in an afternoon. No credit card, no signup — just pip.

Read the docs Join Discord
Quick start
# install
$pip install brickflowui
# hello world
$brickflowui new my_app
# run with hot reload
$brickflowui dev my_app