✨ Announcing our seed funding led by Lux Capital! Read more about it on our blog

Search documentation...




[ Learn ]

[ Concepts ]

[ Reference ]

Project Structure

Directory Structure

Let's create a new app called hello.
$ mkdir hello
$ cd hello
$ reflex init
This will create a directory structure like this:
├── .web
├── assets
├── hello
│   ├── __init__.py
│   └── hello.py
└── rxconfig.py
Let's go over what reflex init creates.


This is where the compiled Javascript files will be stored. You will never need to touch this directory, but it can be useful for debugging.
Each Reflex page will compile to a corresponding .js file in the .web/pages directory.


The assets directory is where you can store any static assets you want to be publicly available. This includes images, fonts, and other files.
For example, if you save an image to assets/image.png you can display it from your app like this:

Main Project

Initializing your project creates a directory with the same name as your app. This is where you will write your app's logic.
Reflex generates a default app within the hello/hello.py file. You can modify this file to customize your app.


The rxconfig.py file can be used to configure your app. By default it looks something like this:
import reflex as rx

config = rx.Config(
We will discuss configuration in more detail in the next section.
← InstallationConfiguration →

Copyright © 2023 Pynecone, Inc.