Skip to main content

Scaffold FastAPI projects in seconds

Project description

🌱 fastapi-seed

Scaffold a production-ready FastAPI project in seconds.

Like create-vite but for Python — answer 5 questions, get a fully structured FastAPI project ready to run.

uvx fastapi-seed init my-project   # scaffold into new folder
uvx fastapi-seed init .            # scaffold into current folder

Install

# recommended — no install needed
uvx fastapi-seed init my-project

# or install globally
pip install fastapi-seed
uv add fastapi-seed

What you get

Answer 5 questions:

1. Project name?
2. Setup type?          Minimal / Advanced
3. Set up Docker?       Yes / No
4. Which database?      PostgreSQL / SQLite / None   (only if Docker = Yes)
5. Load testing?        Yes / No

A fully structured project is generated and dependencies are installed automatically via uv sync.

Always included

my-project/
├── app/
│   ├── main.py              ← clean, minimal (~15 lines)
│   ├── routers/health.py    ← health check endpoint
│   ├── schemas/
│   ├── services/
│   └── core/
├── tests/test_main.py
├── .env + .env.example
├── Makefile
├── pyproject.toml           ← ruff + pytest configured
└── README.md

Advanced setup adds

app/core/config.py           ← pydantic-settings config
app/core/logger.py           ← structured logging
.github/workflows/ci.yml     ← ruff + pytest on every PR
.pre-commit-config.yaml      ← ruff runs before every commit

Docker + database adds

Dockerfile                   ← single stage (minimal) / multi-stage (advanced)
docker-compose.yml           ← app + db service pre-wired
app/core/db.py               ← SQLModel session + engine

Load testing adds

tests/load/locustfile.py     ← Locust hitting health endpoint

Why fastapi-seed?

fastapi-seed others
Package manager uv pip
main.py 15 lines, clean 100+ lines of tutorial code
Load testing ✓ Locust included
Complexity levels Minimal / Advanced one size fits all
Docker + DB pre-wired, just works manual setup
CI/CD GitHub Actions included
Interactive UX arrow-key prompts (like Vite) basic input()

Generated project commands

make dev          # uv run uvicorn app.main:app --reload
make test         # uv run pytest
make lint         # uv run ruff check .
make format       # uv run ruff format .
make docker-up    # docker compose up --build
make load-test    # uv run locust

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastapi_seed-0.1.2.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fastapi_seed-0.1.2-py3-none-any.whl (15.3 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_seed-0.1.2.tar.gz.

File metadata

  • Download URL: fastapi_seed-0.1.2.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for fastapi_seed-0.1.2.tar.gz
Algorithm Hash digest
SHA256 01c4ff352206192bd4f9ccc0f88288e7982b316a8adef6ed4dc558ef1f4c4054
MD5 d50123e09ac882fa7beb4530bacaf323
BLAKE2b-256 454d96c4b6181280f305cfbf44aac48f647535bf26fa367c8a9b0585ca446168

See more details on using hashes here.

File details

Details for the file fastapi_seed-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: fastapi_seed-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 15.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for fastapi_seed-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 30b341b0ac87f1317f098f830deb03027c4ef1a38d69536790fa05cde7b50d6b
MD5 153bc4bb91e53fd31a5b7b0c78a9bdba
BLAKE2b-256 10da768652cc44c618abbf26c7f4de4b126d27725bc7318e0159cc56dbdd995c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page