Skip to main content

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

PyPI version Python License


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


Download files

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

Source Distribution

poleposition-0.0.3.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

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

poleposition-0.0.3-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

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

Hashes for poleposition-0.0.3.tar.gz
Algorithm Hash digest
SHA256 7db39eb1dc095ec4901c6d0d48c6169beb7922f0095a5530fe90d184c5059add
MD5 2bdf2f9d9ca52960fdcacceed6394990
BLAKE2b-256 a09a56c6eb36c4397411aa8cdde0a0d0c0c9ea21c183653fb4ab82651219641d

See more details on using hashes here.

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

Hashes for poleposition-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 08725015da5a2d01c4262e8498bdb29295d5a6ae99dd50d67c124eebba5eec36
MD5 8d319987dc3d7770d0688539b57f39fd
BLAKE2b-256 cfa5d83d4220dbb3cb8e0f4a265d2e1fb9f602366b2136e090a72dcfc68bb65a

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