python project bootstrapper

Stop wiring up boilerplate.
Ship the scaffold instead.

setupci is a CLI that turns a few prompts into a production-ready FastAPI, Flask, Django, or fullstack project — database, auth, Docker, and all — in seconds.

View on GitHub
pip install setupci
setupci init .
6
frameworks supported
3
package managers
3
databases, auto-wired
0
config files to write
what you get

Every layer, pre-wired.

One CLI run replaces the hour you'd spend copying config files, writing DB connections, and hand-rolling a Dockerfile.

?

Interactive CLI

An elegant prompt flow powered by questionary and styled with rich — no flags to memorize.

pkg

Package manager choice

pip, uv, or Poetry — dependencies get configured automatically for whichever you pick.

fw

Framework templates

FastAPI, Flask, Django, Litestar, Sanic, and Masonite — out of the box, not bolted on.

/

Professional structure

Production-ready layouts that separate configuration, routing, schemas, and databases.

jwt

Auth, pre-configured

JWT or OAuth2 flows wired into FastAPI, Flask, and Django backends from the first commit.

db

Database auto-setup

SQLite, PostgreSQL, or MySQL — dependencies and env vars configured interactively.

</>

Frontend pairing

Bootstrap a Vite React, Vue 3, Svelte, or Next.js App Router frontend with a dark, premium landing page.

git

Multi-folder generation

Separate backend/ and frontend/ dirs, plus root docker-compose.yml, README, and .gitignore.

ai

AI-powered templates

Initialize custom structures from a conversational prompt, using Google Gemini under the hood.

how it works

Six questions. One project.

Run setupci init . and answer what the wizard asks — everything downstream is generated for you.

01
Which framework would you like to use?
FastAPIFlaskDjangoLitestarSanicMasonite
02
Which package manager?
pipuvPoetry
03
Which project type?
BackendSimple
04
Which database? (Backend only)
SQLitePostgreSQLMySQL
05
Add authentication?
NoneJWTOAuth2
06
Pair with a frontend?
NoneReactVueSvelteNext.js
pip install setupci
pip install --upgrade setupci
setupci init .
┌── project summary ─────────────────────┐ Framework: FastAPI Package Manager: uv Type: Backend Database: PostgreSQL Auth: JWT Frontend: Next.js └─────────────────────────────────────────┘Your FastAPI backend project is ready!
generated output

Clean layouts, by convention.

Every template follows the idioms of its own ecosystem — pick a framework below to see exactly what lands on disk.

app/ ├── main.py # App entrypoint with middleware, routing, & setup ├── core/ │ └── config.py # Settings management loading configs from .env using Pydantic ├── api/ │ ├── router.py # Global API router aggregating separate endpoints │ └── endpoints/ │ └── items.py # Complete mock CRUD endpoints (GET, POST, etc.) ├── models/ │ └── item.py # SQLAlchemy database model definitions ├── schemas/ │ └── item.py # Pydantic schemas validating API payloads └── db/ └── session.py # DB connection setup and SessionLocal generator requirements.txt # Main API dependencies Dockerfile # Multi-stage Docker build config .env.example # Template database and system environment variables
app/ ├── __init__.py # Application factory setup & extension loading ├── config.py # Configuration classes (Development, Production) ├── api/ │ └── items.py # Blueprint definition mapping API routes └── models/ └── item.py # Database model mapping using Flask-SQLAlchemy wsgi.py # Entry point script to run the server requirements.txt # Web server, Flask, and DB drivers Dockerfile # Gunicorn-based production Docker setup .env.example # Flask configuration template
config/ ├── settings.py # Core settings reading environment values from .env ├── urls.py # Main URL configurations ├── wsgi.py # WSGI entrypoint for web servers └── asgi.py # ASGI entrypoint for async channels or servers apps/ └── items/ # Pre-configured DRF API app ├── models.py # Sample DB model definitions ├── views.py # REST views implementing ModelViewSet ├── serializers.py # Serializers converting model data to JSON └── urls.py # App-level routing definitions manage.py # Django execution utility requirements.txt # Django + DRF and dependencies Dockerfile # Lightweight container setup for deployment .env.example # Configurable Django secret key and DB settings
src/ ├── __init__.py # Main package initializer └── main.py # Main execution script tests/ └── test_main.py # Standard pytest script pyproject.toml # Modern setup configuration for packaging/publishing README.md # Basic user guide for the created package
my-project/ ├── backend/ # FastAPI, Flask, Django, etc. │ ├── app/ # Source code │ ├── Dockerfile # Backend container config │ └── requirements.txt # Python dependencies ├── frontend/ # Next.js, React, Vue, or Svelte │ ├── app/ or src/ # Frontend UI pages & components │ ├── package.json # JS dependencies & scripts │ └── README.md # Setup guide docker-compose.yml # Orchestrates both services for local execution .gitignore # Root-level ignore entries README.md # Root setup instructions
roadmap

Where setupci is headed.

Most of the core scaffolding is already shipping — here's what's done and what's next.

Database scaffolding
Shipped — SQLite, PostgreSQL, MySQL
Authentication integration
Shipped — JWT / OAuth2 flows
AI-powered templates
Shipped — prompt-to-structure via Gemini
Fullstack support
Shipped — React, Vue, Svelte, Next.js pairing
Extended frameworks
Shipped — Litestar, Sanic, Masonite
Extended authentication
Next up — Auth0, Cognito, Firebase Auth
More databases
Next up — MongoDB and beyond