Stop setting up boilerplate from scratch. Launch your next production-ready Python project in seconds with zero configuration.
- π» Interactive CLI Interface β Elegant, user-friendly interactive prompt powered by
questionaryand styled withrich. - π¦ Package Manager Selection β Choose between
pip,uv, orPoetryto manage project dependencies automatically. - β‘ Framework Support β FastAPI, Flask, Django, Litestar, Sanic, and Masonite templates out-of-the-box.
- ποΈ Professional Backend Structure β Generate comprehensive production-ready layouts that separate configuration, routing, schemas, and databases.
- π Authentication Integration β Pre-configured JWT or OAuth2 flows for FastAPI, Flask, and Django backends.
- ποΈ Interactive Database Auto-Setup β Choose SQLite, PostgreSQL, or MySQL; dependencies and environment variables get configured automatically.
- βοΈ Frontend Pairing β Bootstrap a Vite React/Vue 3/Svelte or Next.js App Router frontend alongside your backend automatically with a gorgeous, dark-themed premium landing page.
- π Multi-folder Generation β Generates separate
backend/andfrontend/directories at the workspace root when pairing backend and frontend, and sets up root orchestration files (docker-compose.yml,README.md,.gitignore). - π€ AI-Powered Templates β Initialize custom structures based on conversational prompts using Google Gemini.
- π³ Docker Ready β Fully-featured multi-stage
Dockerfileconfigurations included automatically. - βοΈ Zero Boilerplate β Get linting, testing, and dependency configurations setup automatically.
To get started, install setupci from PyPI using pip:
pip install setupciUpgrade to the latest version to get the newest features and templates:
pip install --upgrade setupciNavigate to your workspace and initialize a new project in the current directory (or specify a subfolder):
setupci init .Once the CLI starts, it walks you through your project choices:
- Framework Selection β Choose between
FastAPI,Flask,Django,Litestar,Sanic,Masonite, orGeneral Python. - Package Manager Selection β Choose between
pip(withrequirements.txt),uv, orPoetry. - Project Type Selection β
- Backend: Generates a professional structure with Docker configurations, databases, linting, and CRUD examples.
- Simple: A streamlined single-file entrypoint ideal for quick scripts or lightweight services.
- Database Selection (Only for Backend types) β Choose between
SQLite,PostgreSQL, orMySQL. - Authentication Selection (Only for FastAPI, Flask, and Django Backend types) β Select
None,JWT, orOAuth2flows. - Frontend Selection (Only for Backend types) β Choose
None,React,Vue,Svelte, orNext.js.
π Note: If a frontend is selected,
setupciwill generate separatebackend/andfrontend/directories in your workspace, plus root-leveldocker-compose.yml,.gitignore, andREADME.mdfiles to run both services together easily.
Below is an example of what running setupci init looks like in your terminal:
$ setupci init .
ββββββββββββββββββββββββββββ ββββββββββ ββββββββββ
ββββββββββββββββββββββββββββ ββββββββββββββββββββββ
ββββββββββββββ βββ βββ ββββββββββββββ βββ
ββββββββββββββ βββ βββ ββββββββββ βββ βββ
ββββββββββββββββ βββ ββββββββββββ βββββββββββ
ββββββββββββββββ βββ βββββββ βββ ββββββββββ
Python Project Bootstrapper β’ v0.2.0
βββββββββββββββββββββββββββββββ π Getting Started βββββββββββββββββββββββββββββββ
β Answer a few questions and your project structure will be ready in seconds. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
? Which framework would you like to use? FastAPI
? Which package manager would you like to use? uv
? Which project type would you like? Backend
? Which database would you like to configure? PostgreSQL
? Would you like to add Authentication? JWT
? Would you like to pair this backend with a frontend? Next.js
βββββββββββββββββββββββββββββββββ π Project Summary ββββββββββββββββββββββββββββββββ
β Framework: FastAPI β
β Package Manager: uv β
β Type: Backend β
β Database: PostgreSQL β
β Auth: JWT β
β Frontend: Next.js β
β Location: E:\my-new-project β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Generating project files...
β Your FastAPI backend project is ready!
setupci designs clean layouts adhering to industry standards. Here is what gets generated:
A clean modular design using Pydantic, SQLAlchemy, and dependency injection.
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 # Implements 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
A structure implementing the flask factory pattern, Blueprints, and Flask-SQLAlchemy.
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 configurations template
A modernized Django layout splitting apps, tracking settings with django-environ, and API-ready with DRF.
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 environment settings
A standard workspace ready for library publication or tool development.
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
When pairing a backend with a frontend (e.g. Next.js, React, Vue, Svelte), a clean separated structure is generated.
my-project/
βββ backend/ # Backend API project (FastAPI, Flask, Django, etc.)
β βββ app/ # Source code
β βββ Dockerfile # Backend container config
β βββ requirements.txt # Python dependencies
βββ frontend/ # Frontend web application (Next.js, React, Vue, Svelte)
β βββ app/ or src/ # Frontend UI pages & components
β βββ package.json # JS dependencies & scripts
β βββ README.md # Setup guide
βββ docker-compose.yml # Orchestrates both services for easy local execution
βββ .gitignore # Root-level ignore entries
βββ README.md # Root setup instructions
Developers spend too much time repeating the same boilerplate setups. setupci bridges this gap:
- π Saves Time: Avoid copying config files, writing database connections, or creating dockerfiles. Get to coding in 5 seconds.
- π‘οΈ Production-Ready: Implements industry best-practices such as configuration-code separation, factory patterns, environment variables, and Docker containerization.
- π° Beginner & Pro Friendly: Gives beginners a clear architecture to build on, and professionals a consistent, zero-fluff starter template.
We are constantly improving setupci. Check out our planned roadmap:
- Database Scaffolding β Auto-configure SQLite, PostgreSQL, or MySQL (MongoDB/others planned).
- Authentication Integration β Bootstrap JWT/OAuth2 flows out-of-the-box.
- AI-Powered Templates β Prompt-to-structure project initialization.
- Full-stack Support β Pair backend frameworks with React, Vue, or Svelte frontends.
- Extended Frameworks β Support for Litestar, Sanic, and Masonite.
- Extended Authentication β Support for Auth0, Cognito, and Firebase Auth.
Contributions make the open-source community an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Please see our CONTRIBUTING.md to understand details on submitting PRs, setting up local tests, and reporting bugs.
Distributed under the MIT License. See LICENSE for more information.
- π GitHub Repository: github.com/syed-mujtaba-stack/setupci
- π¦ PyPI Package: pypi.org/project/setupci
- π Issues & Requests: github.com/syed-mujtaba-stack/setupci/issues
