// the find
widgetti/solara
A Pure Python, React-style Framework for Scaling Your Jupyter and Web Apps
Solara is a React-style component framework written in pure Python, built on top of ipywidgets so the same app runs unmodified in Jupyter/Voila and as a standalone web app via FastAPI/Starlette/Flask. It's aimed at people who've outgrown Streamlit/Panel-style scripts and want real component composition and state management without dropping into JS.
The dual-runtime story is real and not just marketing: the same component code executes in a notebook kernel and behind Starlette in production, which solves an actual fragmentation problem in the Python dataviz space. solara-enterprise ships genuinely production-oriented pieces (Redis-backed state persistence with a documented failover example, multi-level disk/Redis caching, Starlette/Flask auth middleware) rather than stopping at a toy demo. The repo also has unusually candid internal docs on memory leak detection and measurement methodology, which is rare to see published at all.
Under the hood it's still ipywidgets/traitlets doing the serialization and comm work, so the 'scaling' pitch runs into that layer's per-widget overhead regardless of the React-like API on top. Multiple dedicated memory-leak postmortem docs in the repo (docs/memory-leak-found-report-previous-reactive-watch.md, etc.) are a signal that long-running server processes have bitten real users before, not just a hypothetical concern. Chat, menus, tabs and theming all live under solara.lab, meaning the components most people would reach for in an actual app are explicitly marked unstable. Redis persistence and auth middleware are gated in solara-enterprise, so it's worth checking the licensing boundary before assuming multi-instance deployment is covered by the OSS package.