Skip to main content

Fast, easy-to-use starter kit for new users of Python and FastAPI

Project description

FastAPI-fastkit

FastAPI-fastkit: Fast, easy-to-use starter kit for new users of Python and FastAPI

PyPI - Version GitHub Release PyPI Downloads


This project was created to speed up the configuration of the development environment needed to develop Python-based web apps for new users of Python and FastAPI.

This project was inspired by the SpringBoot initializer & Python Django's django-admin CLI operation.

Key Features

  • ⚡ Immediate FastAPI project creation : Super-fast FastAPI workspace & project creation via CLI, inspired by django-admin feature of Python Django
  • ✨ Interactive project builder: Guided step-by-step feature selection for databases, authentication, caching, monitoring, and more with auto-generated code
  • 🎨 Prettier CLI output : Beautiful CLI experience powered by rich library
  • 📋 Standards-based FastAPI project templates : Templates follow Python standards and common FastAPI patterns.
  • 🔍 Automated template quality assurance : Weekly automated testing ensures all templates remain functional and up-to-date
  • 🚀 Multiple project templates : Choose from various pre-configured templates for different use cases (async CRUD, Docker, PostgreSQL, etc.)
  • 📦 Multiple package manager support : Choose your preferred Python package manager (pip, uv, pdm, poetry) for dependency management

Installation

Install FastAPI-fastkit in your Python environment.

$ pip install FastAPI-fastkit

Usage

  • Global options
    • --help: Show help
    • --version: Show version
    • --debug/--no-debug: Toggle debug mode

Create a new FastAPI project

fastkit init [OPTIONS]
  • What it does: Scaffolds an empty FastAPI project, creates a virtual environment, installs dependencies
  • Key options:
    • --project-name, --author, --author-email, --description
    • --package-manager [pip|uv|pdm|poetry]
    • Stack selection: minimal | standard | full (interactive)

Create a project with interactive mode

fastkit init --interactive
  • What it does: Guided step-by-step project setup with intelligent feature selection
  • Features:
    • Database selection: PostgreSQL, MySQL, MongoDB, Redis, SQLite
    • Authentication: JWT, OAuth2, FastAPI-Users, Session-based
    • Background tasks: Celery, Dramatiq
    • Caching: Redis, fastapi-cache2
    • Monitoring: Loguru, OpenTelemetry, Prometheus
    • Testing: Basic (pytest), Coverage, Advanced (with faker, factory-boy)
    • Utilities: CORS, Rate-Limiting, Pagination, WebSocket
    • Deployment: Docker, docker-compose with auto-generated configs
    • Package manager: pip, uv, pdm, poetry
    • Custom packages: Add your own dependencies
  • Auto-generates:
    • main.py with selected features integrated
    • Database and authentication configuration files
    • Docker deployment files (Dockerfile, docker-compose.yml)
    • Test configuration (pytest with coverage)

Create a project from a template

fastkit startdemo [TEMPLATE] [OPTIONS]
  • What it does: Creates a project from a template (e.g., fastapi-default) and installs dependencies
  • Key options:
    • --project-name, --author, --author-email, --description
    • --package-manager [pip|uv|pdm|poetry]
  • Tip: List available templates with fastkit list-templates

Add a new route

fastkit addroute <project_name> <route_name>
  • What it does: Adds a new API route to the specified project

Run the development server

fastkit runserver [OPTIONS]
  • What it does: Starts the uvicorn development server
  • Key options:
    • --host, --port, --reload/--no-reload, --workers

List templates

fastkit list-templates

Delete a project

fastkit deleteproject <project_name>

Documentation

For comprehensive guides and detailed usage instructions, visit our documentation:

Contributing

We welcome contributions from the community! FastAPI-fastkit is designed to help newcomers to Python and FastAPI, and your contributions can make a significant impact.

Contributing Guide

Quick Start for Contributors

  1. Fork and clone the repository:

    git clone https://github.com/bnbong/FastAPI-fastkit.git
    cd FastAPI-fastkit
    
  2. Set up development environment:

    make dev-setup  # Sets up everything you need
    
  3. Run development checks:

    make dev-check  # Format, lint, and test
    

What You Can Contribute

  • 🚀 New FastAPI templates - Add templates for different use cases
  • 🐛 Bug fixes - Help us improve stability and reliability
  • 📚 Documentation - Improve guides, examples, and translations
  • 🧪 Tests - Increase test coverage and add integration tests
  • 💡 Features - Suggest and implement new CLI features

Contribution Guidelines

For detailed contribution guidelines, development setup, and project standards, please refer to:

Significance of FastAPI-fastkit

FastAPI-fastkit aims to provide a fast and easy-to-use starter kit for new users of Python and FastAPI.

This idea was initiated with the aim of helping FastAPI newcomers learn from the beginning, which aligns with the production significance of the FastAPI CLI package added with the FastAPI 0.111.0 version update.

As someone who has been using and loving FastAPI for a long time, I wanted to develop a project that could help fulfill the wonderful motivation that FastAPI developer tiangolo has expressed.

FastAPI-fastkit bridges the gap between getting started and building production-ready applications by providing:

  • Immediate productivity for newcomers who might be overwhelmed by setup complexity
  • Best practices built into every template, helping users learn proper FastAPI patterns
  • Scalable foundations that grow with users as they advance from beginners to experts
  • Community-driven templates that reflect real-world FastAPI usage patterns

License

This project is licensed under the MIT License - see the LICENSE file for details.

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_fastkit-1.2.1.tar.gz (170.2 kB view details)

Uploaded Source

Built Distribution

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

fastapi_fastkit-1.2.1-py3-none-any.whl (200.3 kB view details)

Uploaded Python 3

File details

Details for the file fastapi_fastkit-1.2.1.tar.gz.

File metadata

  • Download URL: fastapi_fastkit-1.2.1.tar.gz
  • Upload date:
  • Size: 170.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastapi_fastkit-1.2.1.tar.gz
Algorithm Hash digest
SHA256 a5bedb761c54fbcc2390ca8d37cbe67b3aeadf75f0f2de032384d3b6e0b90a5f
MD5 376be546a2267e0600e77eab3a891b32
BLAKE2b-256 cafb35a1fe363e1e4e188b0ece2b8cf510555aad226d63b7582d74a9176d1aef

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_fastkit-1.2.1.tar.gz:

Publisher: distribute.yml on bnbong/FastAPI-fastkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastapi_fastkit-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: fastapi_fastkit-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 200.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastapi_fastkit-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 36fe8ab6f26e97f29d652d7c8b6775f435d453232d2161225f31a650584324c2
MD5 946310fabc91a52a5e41a36317e7c837
BLAKE2b-256 7eb5d6ec36a012ae7e8423171739f3d2534d234a56ddf8e8c2df1207d4ee5339

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastapi_fastkit-1.2.1-py3-none-any.whl:

Publisher: distribute.yml on bnbong/FastAPI-fastkit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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