A Databricks-first Python UI framework for building secure dashboards, portals, and web apps with pure Python.
Project description
BrickflowUI
Databricks-first Python UI framework for building dashboards, portals, chatbot workspaces, landing pages, and internal web apps with pure Python.
Canonical package name: brickflowui
Install:
pip install brickflowui
Import:
import brickflowui as db
Documentation:
What BrickflowUI is for
Use BrickflowUI when you want to stay in Python and still ship a serious interactive app.
Good fits:
- executive dashboards
- data engineering pipeline portals
- Databricks App experiences
- internal ops tools
- chatbot and copilot UIs
- product-style landing pages
Why teams use it
- Python-first authoring model
- session-scoped reactive state
- multi-page routing and app shell support
- built-in tables, forms, overlays, charts, pipeline graphs, workflow boards, and chat patterns
- packaged frontend assets that work in stricter CSP environments
- branding and theme tokens for enterprise rollout
Quick start
Scaffold a new app:
brickflowui new my_app
cd my_app
brickflowui dev
Or write one manually:
import brickflowui as db
app = db.App(title="Hello BrickflowUI")
@app.page("/", title="Home")
def home():
count, set_count = db.use_state(0)
return db.Column(
[
db.Text("Hello BrickflowUI", variant="h1"),
db.Text(f"Count: {count}"),
db.Button("Increment", on_click=lambda: set_count(count + 1)),
],
gap=4,
padding=6,
)
if __name__ == "__main__":
app.run()
Core concepts
BrickflowUI works as:
- Python page functions produce a
VNodetree. - The server serializes that tree and sends it over WebSocket.
- The frontend renders it and returns interaction events.
- Python handlers update state and trigger rerenders.
This gives you a React-style interaction model without requiring users to write frontend code.
Current component surface
Layout and app structure
ColumnRowGridCardDividerSpacerHeroSectionHeaderStatusStrip
Inputs and overlays
ButtonInputSelectCheckboxToggleSliderDateRangePickerMultiSelectFormModalDrawerPopup
Data and workflow
TableTimelineSparklineStatStepperKanbanBoardChatMessageChatInputPipelineGraph
Charts
PlotAreaChartBarChartLineChartDonutChartScatterChartComposedChartGaugeChartRadarChartHeatmapFunnelChartTreeMap
Databricks Apps
Use this minimum setup:
requirements.txt
brickflowui>=0.1.6
Install from GitHub instead:
brickflowui @ git+https://github.com/AjayAJ2000/brickflowUI.git@main
app.yaml
command:
- python
- app.py
Important packaging rule:
The installed package must contain:
brickflowui/frontend/dist/index.html
brickflowui/frontend/dist/assets/*
If those files are missing, Databricks Apps often stop at the loading shell.
Local development
Framework tests:
python -m pytest -q
Frontend build:
cd frontend
npm run build
Docs build:
python -m mkdocs build
Package build:
python -m build
Repo map
brickflowui/
app.py
components.py
server.py
state.py
vdom.py
frontend/dist/
cli/
databricks/
frontend/
src/
vite.config.ts
docs/
learning/
components/
ARCHITECTURE.md
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file brickflowui-0.1.8.tar.gz.
File metadata
- Download URL: brickflowui-0.1.8.tar.gz
- Upload date:
- Size: 2.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f913852a309f6333189ecbb3666792e7c885ce070492ee1c6fb433b0a8d6c35a
|
|
| MD5 |
944797d2d8cbcae49549ecde139100d3
|
|
| BLAKE2b-256 |
0b4a0fc29a8f039dd288fcc3b1b1ecd40314c50b9396fc9b1287c187d9e32220
|
Provenance
The following attestation bundles were made for brickflowui-0.1.8.tar.gz:
Publisher:
publish.yml on AjayAJ2000/brickflowUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brickflowui-0.1.8.tar.gz -
Subject digest:
f913852a309f6333189ecbb3666792e7c885ce070492ee1c6fb433b0a8d6c35a - Sigstore transparency entry: 1519921472
- Sigstore integration time:
-
Permalink:
AjayAJ2000/brickflowUI@7baf64cdcb639a7c88fab00bd6b14c451bb2f381 -
Branch / Tag:
refs/tags/v1.0.8 - Owner: https://github.com/AjayAJ2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7baf64cdcb639a7c88fab00bd6b14c451bb2f381 -
Trigger Event:
release
-
Statement type:
File details
Details for the file brickflowui-0.1.8-py3-none-any.whl.
File metadata
- Download URL: brickflowui-0.1.8-py3-none-any.whl
- Upload date:
- Size: 818.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
99693d3ef284aa3c9ad9f4b772024a5024054eca8f6c1683fcc863ab33e0ee47
|
|
| MD5 |
f64c4aa3a56e7c6fdc9a95a27dd0f6a1
|
|
| BLAKE2b-256 |
71a989808993dd2783bb4457adfdd7bec49da0ce9943d6301f69c48fcdccf0a8
|
Provenance
The following attestation bundles were made for brickflowui-0.1.8-py3-none-any.whl:
Publisher:
publish.yml on AjayAJ2000/brickflowUI
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
brickflowui-0.1.8-py3-none-any.whl -
Subject digest:
99693d3ef284aa3c9ad9f4b772024a5024054eca8f6c1683fcc863ab33e0ee47 - Sigstore transparency entry: 1519921474
- Sigstore integration time:
-
Permalink:
AjayAJ2000/brickflowUI@7baf64cdcb639a7c88fab00bd6b14c451bb2f381 -
Branch / Tag:
refs/tags/v1.0.8 - Owner: https://github.com/AjayAJ2000
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@7baf64cdcb639a7c88fab00bd6b14c451bb2f381 -
Trigger Event:
release
-
Statement type: