Modular FastAPI project management with a Django-inspired workflow.
Project description
Django's structure. FastAPI's speed.
What is FastAPI-Jet?
FastAPI-Jet helps you build and manage modular, multi-app FastAPI projects with a familiar, Django-inspired workflow.
It is not a full-stack generator. It is a structure and CLI tool for teams who want clear app boundaries and commands that stay useful after day one.
Who is it for?
- Teams outgrowing a single
main.py - Developers coming from Django who want
startproject/startapp - Tech leads defining a consistent FastAPI layout
Quick start
pip install fastapi-jet
# Create a project
fastjet startproject myapi
cd myapi
# Install and run (generated project is self-contained)
pip install -e ".[dev]"
fastjet runserver
Visit http://127.0.0.1:8000/docs — you'll see a /health endpoint and a sample core app at /core/.
CLI commands
| Command | Description |
|---|---|
fastjet startproject <name> |
Create a modular project skeleton |
fastjet startapp <name> |
Add a new app under apps/ |
fastjet startapp <name> --crud |
App with schemas, services, dependencies |
fastjet startapp <name> --versioned |
/v1/<name> prefix pattern |
fastjet startapp <name> --register |
Auto-add to INSTALLED_APPS (AST-safe) |
fastjet runserver |
Run the dev server (Uvicorn) |
fastjet apps |
List registered apps |
fastjet routes |
Show the full route map (tags, deps) |
fastjet check |
Validate structure, imports, and settings |
fastjet shell |
REPL with app and settings loaded |
Aliases: fastapi-jet and fastjet.
Project layout
myapi/
├── base/
│ ├── main.py # FastAPI app + INSTALLED_APPS
│ ├── core.py # Settings
│ └── routing.py # Router registration (no runtime jet dependency)
├── apps/
│ └── core/ # Sample app included in new projects
├── tests/
├── pyproject.toml
└── .fastapi-jet # Project marker
Adding a feature
fastjet startapp users
fastjet startapp billing --crud --register
fastjet startapp api --versioned
With --register, the app is added to INSTALLED_APPS in base/main.py automatically (AST-safe). Without it, the CLI prints the line to paste manually.
Register manually in base/main.py if you prefer:
INSTALLED_APPS: list[AppRoute] = [
AppRoute(name="core", prefix="/core", tags=["core"]),
AppRoute(name="users", prefix="/users", tags=["users"]),
]
Then inspect your API:
fastjet routes
What FastAPI-Jet is not
- Not a "generate my entire SaaS" tool — try fastapi-forge or fastapi-spawn
- Not zero-opinion raw FastAPI — use FastAPI directly if you want no structure
- Not schema-first codegen — try feathers
See CONTRIBUTING.md and docs/CONVENTIONS.md for app layer structure and workflow.
Contributing
Contributions are welcome. Before opening a PR:
pip install -e .
pip install pytest ruff pre-commit
ruff check .
pytest
pre-commit run --all-files
See .cursor/rules/fastapi-jet.mdc for project conventions.
License
MIT — see LICENSE.
Acknowledgements
Inspired by Django's project/app model and the manage-fastapi project.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastapi_jet-1.2.0.tar.gz.
File metadata
- Download URL: fastapi_jet-1.2.0.tar.gz
- Upload date:
- Size: 15.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73360d36e4ae004f2f25445a37b2a45e6061396ec44c37a504eb4b4bd9ca3602
|
|
| MD5 |
fa756d521f1f828c055d76bde789fa33
|
|
| BLAKE2b-256 |
151e0a8347d9c499ebbbd66af8f303f43e8faba1d7e2d050dd0a04bcd6d3cf7a
|
File details
Details for the file fastapi_jet-1.2.0-py3-none-any.whl.
File metadata
- Download URL: fastapi_jet-1.2.0-py3-none-any.whl
- Upload date:
- Size: 33.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
292cd92912a5a3bc389db34a3d34d5e4b1b5bd51f11e858e5a9f7a56012b1831
|
|
| MD5 |
2a245efeb744c5c8551d87c46ed2721e
|
|
| BLAKE2b-256 |
e558ae5124aae5b782ae17cd4ac067472eff07fbaa11d072955a11c7020a4434
|