reflex
Web apps in pure Python.
What it is and what it does
Reflex is a full-stack web framework that lets you write both frontend and backend logic in pure Python, eliminating the need to learn JavaScript or manage separate frontend/backend codebases. It uses a reactive state model where UI components automatically update when state changes, similar to modern JavaScript frameworks but expressed entirely in Python. The framework compiles your Python code to a web application and serves it through Starlette and Granian, with real-time communication via WebSockets (python-socketio) for interactive features.
The package includes built-in component libraries (radix, recharts, plotly, markdown, and others) for common UI patterns, plus hosting and deployment tools. It targets developers who want to build interactive web applications without context-switching between languages, and supports modern Python versions (3.10 through 3.14). The framework is in active development with recent releases and a large community presence.
Use it for:
- Build data dashboards and analytics UIs with reactive state tied to charts and tables.
- Create internal tools and admin panels where Python backend logic and UI live in one codebase.
- Prototype full-stack web applications quickly without writing JavaScript or managing API contracts.
- Deploy Python-based AI/ML applications as interactive web interfaces using event handlers.
- Build real-time collaborative apps using WebSocket-based state synchronization.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reflex is a Python framework for building full-stack web applications with frontend and backend entirely in Python, then deploying them as interactive web services.
Yes, if you want to build web applications entirely in Python and are comfortable with a framework in Beta status. The low install friction, active maintenance, permissive license, and zero known vulnerabilities make it a reasonable choice for prototyping and internal tools. For production systems requiring long-term stability guarantees, verify that the framework's maturity and component ecosystem meet your needs.
Install
reflex on PyPI
pip
pip install reflexuv
uv add reflexpoetry
poetry add reflexInstalling reflex
Before you install
Installation is low-friction; the package is pure Python and pulls in 26 runtime dependencies including web servers (granian, starlette), async utilities (python-socketio, httpx), and component libraries. Maintenance is active with a recent release (10 days old) and steady repository activity.
License in practice
Licensed under Apache-2.0 (permissive), which allows commercial and private use with minimal restrictions—suitable for most production and proprietary projects.
Quickstart
# Install
pip install reflex
# Create and run a minimal app
import reflex as rx
class State(rx.State):
count: int = 0
def index():
return rx.vstack(rx.heading(State.count))
app = rx.App()
app.add_page(index)
# Then: reflex run
Requires Python 3.10 or later; virtual environment strongly recommended to ensure the reflex CLI is available in PATH.
Verify before relying
- Performance characteristics and scalability limits for production workloads.
- Maturity of the component library and how it compares to established web frameworks.
- Learning curve and documentation depth for developers new to reactive state management.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (<4.0,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 26 — click, granian, httpx, packaging, psutil, python-multipart, python-socketio, redis, reflex-base, reflex-components-code, reflex-components-core, reflex-components-dataeditor, reflex-components-gridjs, reflex-components-lucide, reflex-components-markdown, reflex-components-moment, reflex-components-plotly, reflex-components-radix, reflex-components-react-player, reflex-components-recharts, reflex-components-sonner, reflex-hosting-cli, rich, starlette, typing-extensions, wrapt |
| Maintenance | actively maintained — 10 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 417,527/month — #6,816 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: reflex-0.9.8-py3-none-any.whl
Keywords: framework, web
Tags
More Application Frameworks packages
FastAPI is a Python web framework for building…
permissive · top 100 on PyPI
annotated-docProvides a way to document function parameters,…
permissive · top 100 on PyPI
textualTextual is a Python framework for building…
permissive · top 100 on PyPI
typerTyper builds command-line applications from…
permissive · top 1,000 on PyPI
mcpBuild and connect to Model Context Protocol…
permissive · top 1,000 on PyPI
WerkzeugWerkzeug is a WSGI utility library providing…
permissive · top 1,000 on PyPI
reflex-components-coreProvides a collection of UI components for…
permissive · top 15,000 on PyPI
reflex-hosting-cliA command-line tool for managing Reflex…
permissive · top 15,000 on PyPI
flet-webFlet-web is the web client component of Flet,…
permissive · top 15,000 on PyPI
prefab-uiPrefab is a Python UI framework for building…
permissive · top 15,000 on PyPI
reflex-components-gridjsProvides Reflex components for integrating…
permissive · top 15,000 on PyPI
fletFlet is a Python framework for building…
permissive · top 15,000 on PyPI
reflex-components-codeProvides reusable code display components for…
permissive · top 15,000 on PyPI
reflex-components-lucideProvides Lucide icon components for Reflex web…
permissive · top 15,000 on PyPI
reflex-components-momentProvides Reflex UI components for moment-based…
permissive · top 15,000 on PyPI
reflex-components-rechartsProvides Recharts charting components for use…
permissive · top 15,000 on PyPI