Skip to main content

🪨 pedestal

License: MIT

Stop building the "basement" of your FastAPI project.

The Problem

Every new FastAPI project starts with the same 2-hour slog:

  • Wiring up SQLAlchemy with async drivers
  • Setting up config management
  • Creating folder structures that won't become a mess
  • Adding auth... then rewriting it when you change your mind

Boilerplate burnout is real.

The Solution

pedestal scaffolds production-ready FastAPI projects in 2 seconds, then lets you add features incrementally without breaking your code.

# Start with exactly what you need
pedestal init my-api --db postgres --auth jwt

# Change your mind later? No problem.
pedestal add redis
pedestal add auth-session

Why pedestal?

Without pedestal With pedestal
Copy-paste boilerplate from old projects Generate clean, consistent structure instantly
Fear of adding features mid-project Add/remove modules anytime safely
Hope your code injection doesn't break things AST-aware code modifications (LibCST)
Spend hours on setup Spend hours on features

Installation

From PyPI

pip install pedestal

Install with uv (Faster)

uv tool install pedestal

From Source

git clone https://github.com/cybertycoon/Pedestal.git
cd pedestal
pip install -r requirements.txt
pip install -e .

Quick Start

Create a Basic Project

pedestal init my-app
cd my-app
uv run uvicorn src.main:app --reload

Create with Database & Auth

pedestal init my-api --db postgres --auth jwt --redis

Add Features Later

cd my-api

# Add Redis caching
pedestal add redis

# Add JWT authentication
pedestal add auth-jwt

Commands

pedestal init <name> — Create New Project

Scaffold a new FastAPI project with your chosen features.

# Basic project
pedestal init my-app

# With database and auth
pedestal init my-api --db postgres --auth jwt

# Full stack
pedestal init my-service --db postgres --redis --auth jwt

Options:

  • --db postgres|mysql|sqlite — Add database support
  • --redis — Add Redis caching
  • --auth jwt|session — Add authentication

pedestal add <module> — Add Features Later

Add modules to an existing project without breaking your code.

cd my-api

# Add Redis for caching
pedestal add redis

# Add JWT authentication
pedestal add auth-jwt

# Add database (if not added during init)
pedestal add postgres

pedestal remove <module> — Remove Features

Cleanly remove a module and its code.

pedestal remove redis
pedestal remove auth-jwt

pedestal list — See What's Available

Shows installed modules and available modules you can add.

pedestal list

pedestal doctor — Check Project Health

Diagnoses issues with your pedestal project.

pedestal doctor

Available Modules

  • postgres/mysql/sqlite - Database with async drivers
  • redis - Caching & sessions
  • auth-jwt - JWT authentication
  • auth-session - Session-based auth

How It Works

pedestal doesn't just copy files—it understands your Python code using AST manipulation. When you run pedestal add redis, it:

  1. Injects Redis connection code into your main app
  2. Updates .env with Redis URL
  3. Adds dependencies to pyproject.toml
  4. Registers routes without touching your custom code

Your project stays clean, typed, and maintainable.

Project Structure

my-app/
├── src/
│   ├── __init__.py       # Package initializer
│   ├── main.py           # FastAPI entry
│   ├── api/
│   │   ├── __init__.py
│   │   └── v1/
│   │       ├── __init__.py
│   │       └── health.py
│   ├── core/
│   │   ├── __init__.py
│   │   ├── config.py     # Pydantic settings
│   │   ├── database.py   # Database connection (if DB selected)
│   │   └── registry.py   # Auto-router registration
│   └── models/
│       └── __init__.py
├── tests/
│   └── __init__.py
├── .env.example          # Environment template
├── .gitignore           # Git ignore rules
├── .Pedestal.json         # Tracks installed modules
├── pyproject.toml       # Dependencies
└── README.md            # Project readme

Documentation

License

MIT License

Metadata

Release files for pedestal 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pedestal 1.0.0
File Size Uploaded Provenance Actions
pedestal-1.0.0.tar.gz 33.7 kB Without provenance Details for pedestal-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pedestal 1.0.0
File Interpreter ABI Platform Actions
pedestal-1.0.0-py3-none-any.whl Python 3 none any Details for pedestal-1.0.0-py3-none-any.whl

Total release size: 68.2 kB

Release files / pedestal-1.0.0.tar.gz

Download URL pedestal-1.0.0.tar.gz
Size 33.7 kB
Tags Source
SHA-256 checksum
How to use checksums
0f95e7869cf451fe858a7c06ed824390102b78fa2ef6b73db2c5ec249fbad1e6
BLAKE2b-256 checksum
How to use checksums
b64016fb7c3729b4e46859c97f03467df900601ee5a2af9e47bb3b39296c78b0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Release files / pedestal-1.0.0-py3-none-any.whl

Download URL pedestal-1.0.0-py3-none-any.whl
Size 34.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bf9d84084ff56131a0ede45074bb792e18bfd97d70635eea742d621662c449d6
BLAKE2b-256 checksum
How to use checksums
8997ae576be125bf0dcfbbf7b46a9ff259876bd44984b5cd48fb501eb99461b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.3

Security for pedestal 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page