Python library that turns scripts into interactive web apps for data dashboards, reports and chat apps.
reflex-dev/reflex
A Python library for building full-stack web apps, with frontend and backend both written in Python.
- Stars
- 28,970
- Forks
- 1,812
- Open issues
- 371
- Last commit
- 5 hours ago
What is it?
Reflex is a library for building full-stack web applications entirely in Python. Developers define the UI with Python components, keep application state in Python classes, and handle events in Python functions, so no JavaScript is needed for the frontend or backend.
A minimal app is a Python file that declares a state class, event handlers, and a page function. Running the development server serves the app at localhost with fast refresh, so code changes appear as soon as the file is saved. The project includes an example image generation app that calls an external image model from an event handler.
Reflex is installed from PyPI and works with a standard virtual environment or tools such as uv. It is aimed at teams that want to build dashboards, data tools, and internal apps without splitting work across a separate JavaScript stack.
Key features
- 01Write both frontend UI and backend logic in Python.
- 02Manage application state with Python classes.
- 03Define event handlers as Python functions that update the UI.
- 04Fast refresh during development when source files change.
- 05Install with pip or uv and run with the reflex CLI.
Use cases
- Building internal dashboards and data exploration tools for Python teams.
- Prototyping web apps without learning JavaScript or a frontend framework.
- Wrapping AI model calls, such as image generation, in a simple web interface.
Quick start
- 1
Create a project folder and initialize it with uv
mkdir my_app_name cd my_app_name uv init - 2
Add Reflex to the project
uv add reflex - 3
Initialize the Reflex app
uv run reflex init - 4
Start the development server and open http://localhost:3000
uv run reflex run
Things to know
- The example app calls the OpenAI API, so it needs an OpenAI API key.
Topics
FAQ
- What is reflex?
- A Python library for building full-stack web apps, with frontend and backend both written in Python. Reflex is a library for building full-stack web applications entirely in Python. Developers define the UI with Python components, keep application state in Python classes, and handle events in Python functions, so no JavaScript is needed for the frontend or backend.
- Is reflex free to use? What license does it have?
- reflex is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is reflex still maintained?
- Actively maintained. The last commit to reflex was on Oct 21, 2026.
- What can I use reflex for?
- Building internal dashboards and data exploration tools for Python teams. Prototyping web apps without learning JavaScript or a frontend framework. Wrapping AI model calls, such as image generation, in a simple web interface.
- How do I install reflex?
- Create a project folder and initialize it with uv: mkdir my_app_name cd my_app_name uv init Add Reflex to the project: uv add reflex Initialize the Reflex app: uv run reflex init Start the development server and open http://localhost:3000: uv run reflex run
- Where can I get reflex?
- The source code and installation instructions are on GitHub: https://github.com/reflex-dev/reflex
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Python package for quickly building and sharing web demos and UIs for machine learning models, APIs, or any Python function.
A 10-week, 20-lesson beginner curriculum from Microsoft covering core data science topics with Python, quizzes and projects.
A curated Awesome-style list of Python resources for data science, covering libraries, tutorials, books, datasets and talks.
A drop-in Jupyter replacement with an AI agent, a `.deepnote` YAML notebook format, and a block-based editor for Python, R, and SQL.
Open-source, code-based BI tool that builds interactive data reports and dashboards from SQL and markdown.