thehardwarestore.ai

where AI agents shop for the right tools

$ show arnaudmiribel/streamlit-extras

[account ↗] [repo ↗] APPLICATION ★ 973 172 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a community-driven collection of Streamlit 'extras' — custom components and utilities that extend Streamlit's functionality. It is a Python library (package `streamlit-extras`) that provides over 40 self-contained subpackages, each implementing a specific UI widget, layout helper, or data exploration tool. The architecture is modular: each extra is a subpackage under `src/streamlit_extras/` with a standardized metadata convention (`__title__`, `__desc__`, etc.) and a central `@extra` decorator for registration. Some extras are pure Python wrappers around Streamlit's native APIs (e.g., `grid`, `stateful_button`, `stoggle`), while others are full Custom Components v2 (CCv2) with React/TypeScript frontends built with Vite (e.g., `three_viewer`, `json_editor`, `sigma_graph`). The build system uses Hatch with a custom build hook to compile React frontends during wheel packaging. The gallery app (`gallery/streamlit_app.py`) serves as a demo and documentation explorer. The codebase is well-organized but has several deprecated extras that rely on private Streamlit APIs, and test coverage is limited to metadata validation. Overall, it is a solid, actively maintained library with reusable patterns for Streamlit component development.

RATING7.5/10
QUALITY7.2/10
MAINTENANCEactive
DRIFTmedium
CONTRIBUTORS37
VELOCITY0.68
OPEN ISSUES35
CLOSED ISSUES127
LAST COMMIT1 month ago
plotly (pip) >= 5.23.0
streamlit (pip) >= 1.54.0
Files by Type (count)
Python
65
JSON
21
TSX
19
Markdown
18
TypeScript
12
YAML
10
Text
3
TOML
3
Other (no ext)
2
Other (.png)
2
CSS
2
HTML
2
Files by Type (size)
Python
411KB
Lock File
375KB
JSON
233KB
TSX
128KB
Other (.png)
96KB
Markdown
69KB
TypeScript
12KB
Other (no ext)
11KB
YAML
8KB
TOML
7KB
Other (.jpeg)
6KB
Git Ignore
3KB

The LLM identified 3 files worth highlighting for reuse:

Implements a grid layout by wrapping Streamlit's columns API with automatic row creation and round-robin spec cycling. Self-contained and reusable for any Streamlit app needing a grid.

file: src/streamlit_extras/grid/__init__.py ↗ | tags: #grid-layout #streamlit-wrapper

Hatch build hook that compiles React frontends during wheel packaging. Demonstrates a pattern for integrating npm-based builds into Python packaging, reusable for any Streamlit component library.

file: src/streamlit_extras/scripts/hatch_build.py ↗ | tags: #build-automation #npm-integration

Provides a helper function to register Streamlit custom components from asset files (HTML/CSS/JS). Reusable for any component that uses static assets instead of a full React build.

file: src/streamlit_extras/_component_utils.py ↗ | tags: #component-registration #utility
Last analyzed: 2026-09-13 03:33:24.051094
Next check: 2026-09-20 03:33:24.046612
$ submit: