Monorepo with four custom Streamlit components.
| Plugin | Version | Description |
|---|---|---|
streamlit-dnd-sortable |
0.1.0 | Vertical drag-and-drop reorderable list built on @dnd-kit. |
streamlit-drawable-canvas |
0.9.3 | Free-drawing sketching canvas powered by Fabric.js. |
streamlit-nested-table |
0.1.0 | Expandable nested-row table on @tanstack/react-table + Tailwind CSS. |
streamlit-react-flow |
0.1.0 | Read-only node graphs on @xyflow/react (React Flow v12). |
plugins/
├── streamlit-dnd-sortable/
├── streamlit-drawable-canvas/
├── streamlit-nested-table/
└── streamlit-react-flow/
Each plugin is a standalone Python package with its own setup.py, README and streamlit_*/frontend React app.
- Python ≥ 3.10 (drawable-canvas: ≥ 3.6)
- Streamlit ≥ 1.39 (drawable-canvas: ≥ 0.63)
- Node.js + npm for building the frontend bundles
A root Makefile orchestrates all four plugins.
make all # npm install + npm run build + pip install -e for every plugin
make build # only the frontend bundles
make install # only pip install -e
make streamlit-react-flow # build + install a single plugin
make clean # drop node_modules, build/, *.egg-info, __pycache__
make help # list every targetcd plugins/<plugin-name>
pip install -e .
cd streamlit_<plugin_name>/frontend
npm install
npm run buildIn streamlit_<plugin_name>/__init__.py set _RELEASE = False, then run the dev server alongside Streamlit:
npm startDev ports per plugin:
| Plugin | Port |
|---|---|
streamlit-dnd-sortable |
3010 |
streamlit-nested-table |
3002 |
streamlit-react-flow |
see plugin README |
streamlit-drawable-canvas |
webpack default |
See each plugin's own README for the detailed API, usage examples and quirks.