This repository provides a script that automates the setup of a modern FastAPI web application with the following stack:
- FastAPI – High-performance Python web framework
- Jinja2 – Templating engine for server-rendered HTML
- Tailwind CSS – Utility-first CSS framework
- Flowbite – Tailwind UI components
- HTMX – Modern HTML-over-the-wire interactivity
- Supabase – Authentication, database, and storage backend
- Alpine.js – Lightweight JavaScript framework
Perfect for building scalable, full-stack web apps quickly with a clean developer experience.
- Add "uv" instead of "pip" for dependency management
- Add Authentication from supabase
- Add User and Admin authorization with routes
- Rate Limiting auth routes
- SMTP Email Functionality
- 🔧 One-command setup for project scaffolding
- ⚡ FastAPI backend with Jinja2 templating out of the box
- 🎨 Tailwind + Flowbite integration for styling and UI components
- 🔄 HTMX for dynamic interactivity without heavy JavaScript
- 🛠 Supabase client configured for database + auth
- 🪶 Alpine.js for lightweight frontend state management
1. Install pipx
pip install pipxIf installing from PyPI, we recommend installing uv into an isolated environment, e.g., with pipx
2. Installing UV package manager
pipx install uvuvif you run into error [The term 'uv' is not recognized as a name of a cmdlet, function, script file, or executable program.] run pipx list to see where uv is installed and add the folder path to system evironment variables. Then, open a new terminal (or restart VS Code) and try again.
git clone https://github.com/your-username/fastapi-starter-setup.git
cd fastapi-starter-setuppython create_project.py <new_project_folderpath> <project_name>
# Example :
python .\create_project.py "C:\Users\User\Desktop\my-new-project" "AppNameExample"cd C:\Users\User\Desktop\my-new-projectC:\Users\User\Desktop\my-new-project\AppNameExample
# run fastapi command in one
uvicorn main:app --reload
# run tailwind in the other
npm run dev