https://github.com/reflex-dev/reflex
πΈοΈ Web apps in pure Python π
https://github.com/reflex-dev/reflex
dashboard data-analysis data-science data-visualization developer-tools framework fullstack gui open-source python webapp
Last synced: 13 days ago
JSON representation
πΈοΈ Web apps in pure Python π
- Host: GitHub
- URL: https://github.com/reflex-dev/reflex
- Owner: reflex-dev
- License: apache-2.0
- Created: 2022-10-25T03:08:48.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2026-05-18T22:51:24.000Z (15 days ago)
- Last Synced: 2026-05-18T23:00:31.634Z (15 days ago)
- Topics: dashboard, data-analysis, data-science, data-visualization, developer-tools, framework, fullstack, gui, open-source, python, webapp
- Language: Python
- Homepage: https://reflex.dev
- Size: 34.7 MB
- Stars: 28,435
- Watchers: 183
- Forks: 1,724
- Open Issues: 283
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Agents: AGENTS.md
Awesome Lists containing this project
- StarryDivineSky - reflex-dev/reflex
- fucking-awesome-python - reflex - stack web applications entirely with python . (Web Frameworks)
- awesomeLibrary - reflex - πΈοΈ Web apps in pure Python π (θ―θ¨θ΅ζΊεΊ / python)
- awesome-python-web-frameworks - Reflex - Reflex is a library to build full-stack web apps in pure Python. (Front-end frameworks / More)
- my-awesome-github-stars - reflex-dev/reflex - πΈοΈ Web apps in pure Python π (Python)
- jimsghstars - reflex-dev/reflex - πΈοΈ Web apps in pure Python π (Python)
- AiTreasureBox - reflex-dev/reflex - 11-03_27356_0](https://img.shields.io/github/stars/reflex-dev/reflex.svg)|πΈοΈ Web apps in pure Python π| (Repos)
- awesome-data-analysis - Reflex - Full-stack Python framework for building web apps. (π Dashboards & BI / Tools)
- awesome-github-repos - reflex-dev/reflex - πΈοΈ Web apps in pure Python π (Python)
- awesome-projects - reflex
- awesome-python - reflex - stack web applications entirely with python . (Web Frameworks)
- awesome-github-projects - reflex - πΈοΈ Web apps in pure Python π β28,460 `Python` π₯ (π Data & Analytics)
README

### **β¨ Performant, customizable web apps in pure Python. Deploy in seconds. β¨**
[](https://badge.fury.io/py/reflex)

[](https://reflex.dev/docs/getting-started/introduction)
[](https://pepy.tech/projects/reflex)
[](https://discord.gg/T5WSbC2YtQ)
[](https://x.com/getreflex)
---
> [!NOTE]
> Build faster with Reflex:
>
> - **[AI Builder](https://build.reflex.dev/)** - Generate full-stack Reflex apps in seconds.
> - **[Agent Toolkit](https://reflex.dev/docs/ai/integrations/ai-onboarding/)** - Connect MCP and Skills to your coding assistant.
> - **[App Management](https://reflex.dev/hosting)** - Deploy and manage your Reflex apps.
---
# Introduction
Reflex is a library to build full-stack web apps in pure Python.
Key features:
- **Pure Python** - Write your app's frontend and backend all in Python, no need to learn Javascript.
- **Full Flexibility** - Reflex is easy to get started with, but can also scale to complex apps.
See our [architecture page](https://reflex.dev/blog/2024-03-21-reflex-architecture/#the-reflex-architecture) to learn how Reflex works under the hood.
## βοΈ Installation
**Important:** We strongly recommend using a virtual environment to ensure the `reflex` command is available in your PATH.
## π₯³ Create your first app
Create a project, add Reflex, and start the development server with [uv](https://docs.astral.sh/uv/):
```shell
mkdir my_app_name
cd my_app_name
uv init
uv add reflex
uv run reflex init
uv run reflex run
```
You should see your app running at http://localhost:3000.
Now you can modify the source code in `my_app_name/my_app_name.py`. Reflex has fast refreshes so you can see your changes instantly when you save your code.
## π«§ Example App
Build an image generation app in Python with Reflex: define the UI, manage state in a class, and call an image model from an event handler.
```python
import reflex as rx
import openai
client = openai.AsyncOpenAI()
class State(rx.State):
prompt: str = ""
image_url: str = ""
processing: bool = False
@rx.event
def set_prompt(self, value: str):
self.prompt = value
@rx.event
async def generate(self):
self.processing = True
yield
response = await client.images.generate(
model="gpt-image-1.5",
prompt=self.prompt,
)
self.image_url = f"data:image/png;base64,{response.data[0].b64_json}"
self.processing = False
def index():
return rx.vstack(
rx.heading("Image Generator"),
rx.input(placeholder="Enter a prompt...", on_change=State.set_prompt),
rx.button("Generate", on_click=State.generate, loading=State.processing),
rx.image(src=State.image_url),
)
app = rx.App()
app.add_page(index, title="Reflex:Image Generation")
```
## All Thanks To Our Contributors: