FastAPI project scaffolder for building clean and scalable APIs
Project description
PolePosition
A FastAPI project scaffolder for building enterprise-grade APIs.
Create a new FastAPI project in seconds:
poleposition startproject myapp
Why PolePosition?
Starting a FastAPI project should be fast, clean, and predictable.
PolePosition provides:
- A scalable project structure
- Environment-based configuration
- Built-in logging
- Testing setup
- A ready-to-run FastAPI application
No boilerplate. No setup friction.
Why not just FastAPI?
FastAPI is excellent, but starting a new project often involves:
- Recreating the same structure
- Setting up logging and configuration
- Organizing modules manually
PolePosition removes that overhead by providing a clean, production-ready starting point out of the box.
Installation
uv tool install poleposition
or
pip install poleposition
Quickstart
poleposition startproject myapp
cd myapp
# setup environment
cp .env.example .env
# install dependencies
uv sync
# run the app
uv run fastapi dev src/myapp/main.py
Open your API documentation at:
http://127.0.0.1:8000/docs
Project Structure
myapp/
├─ pyproject.toml
├─ .env.example
├─ src/
│ └─ myapp/
│ ├─ main.py
│ ├─ api/
│ │ └─ routes/
│ │ └─ status.py
│ └─ core/
│ ├─ config.py
│ └─ logging.py
└─ tests/
Status Endpoint
Check if your service is running:
GET /api/v1/status
{
"status": "ok",
"service": "myapp",
"environment": "development",
"version": "0.1.0"
}
Philosophy
PolePosition is built around a few principles:
- Minimal — no unnecessary abstractions
- Opinionated — sensible defaults
- Extensible — easy to grow into larger systems
The CLI is intentionally lightweight and avoids heavy templating engines.
Roadmap
- Project name validation
-
poleposition add module - JSON logging support
- Docker support
- Production-ready presets
Contributing
Contributions are welcome. Feel free to open an issue or submit a pull request.
License
MIT
Full license: https://github.com/erenertem/poleposition/blob/main/LICENSE
Project details
Release history Release notifications | RSS feed
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 poleposition-0.0.3.tar.gz.
File metadata
- Download URL: poleposition-0.0.3.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7db39eb1dc095ec4901c6d0d48c6169beb7922f0095a5530fe90d184c5059add
|
|
| MD5 |
2bdf2f9d9ca52960fdcacceed6394990
|
|
| BLAKE2b-256 |
a09a56c6eb36c4397411aa8cdde0a0d0c0c9ea21c183653fb4ab82651219641d
|
File details
Details for the file poleposition-0.0.3-py3-none-any.whl.
File metadata
- Download URL: poleposition-0.0.3-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
08725015da5a2d01c4262e8498bdb29295d5a6ae99dd50d67c124eebba5eec36
|
|
| MD5 |
8d319987dc3d7770d0688539b57f39fd
|
|
| BLAKE2b-256 |
cfa5d83d4220dbb3cb8e0f4a265d2e1fb9f602366b2136e090a72dcfc68bb65a
|