fastappkit¶
fastappkit is an open-source toolkit that brings Django-like app architecture to FastAPI. If you've ever wished FastAPI had a modular app system similar to Django, this is for you.
What is fastappkit?¶
fastappkit enables you to organize your FastAPI code into logical, reusable components—both within your project and as installable packages. It provides:
- Internal apps: Project-specific modules (like Django apps) that live in your
apps/directory - External apps: Reusable packages you can install via pip and plug into any fastappkit project
Both types get automatic router mounting, unified migration management, and validation to prevent conflicts.
Key Features¶
- Modular Architecture: Organize code into apps (internal and external)
- Automatic Router Mounting: Apps register routes automatically
- Unified Migrations: Coordinated database schema management
- App Isolation: Validation ensures apps don't conflict
- CLI Tools: Simple commands for project and app management
- Settings Management: Django-like settings system with environment variables
Quick Start¶
Get started in minutes:
# Install
pip install fastappkit
# Create a new project
fastappkit core new myproject
cd myproject
# Create an app
fastappkit app new blog
# Run migrations
fastappkit migrate all
# Start development server
fastappkit core dev
Your FastAPI app is now running at http://127.0.0.1:8000 with routes mounted at /blog/.
Examples¶
See fastappkit in action with real-world examples:
- Modular Tasks Platform - A complete example showcasing internal and external apps working together. Features authentication, task management, and notes modules, demonstrating how to build modular FastAPI applications with fastappkit.
Documentation Overview¶
Getting Started¶
- Installation - Install fastappkit and verify your setup
- Quick Start - Create your first project
- Core Concepts - Understand internal and external apps
Usage Scenarios¶
- Usage Overview - Choose your development path
- Scaffolding Only - Just project structure
- Internal Apps - Build with internal apps
- Full Ecosystem - Internal + external apps
Configuration¶
- Configuration Overview - All configuration options
- Project Configuration -
fastappkit.tomlreference - Settings -
core/config.pyguide - External App Manifest - Manifest format
Guides¶
- Creating Projects - Set up new fastappkit projects
- Creating Apps - Build internal and external apps
- Migrations - Manage database schema changes
- Development Workflow - Day-to-day development
- Deployment - Deploy fastappkit applications
Reference¶
- CLI Reference - All available commands
- Configuration Reference - Complete config options
- API Reference - Programmatic API
Topics¶
- Internal Apps - Project-specific modules
- External Apps - Reusable pluggable packages
- Migration System - How migrations work
- App Isolation - Ensuring apps don't conflict
- Router Mounting - Automatic route integration
Advanced¶
- Architecture - How fastappkit works internally
- Extending fastappkit - Customize and extend
- Best Practices - Recommended patterns
Troubleshooting¶
- Common Issues - Solutions to frequent problems
- Debugging - Debugging techniques
Who is this for?¶
- FastAPI developers building applications that are outgrowing a single-file structure
- Teams that need consistent project organization across multiple developers
- Developers creating reusable FastAPI components they want to share
- Anyone who appreciates Django's app system but prefers FastAPI's performance and modern Python features
Community¶
- Contributing - How to contribute
- Code of Conduct - Community standards
- Security Policy - Reporting vulnerabilities
- Changelog - Version history (see Changelog section for all versions)
Support¶
Acknowledgments¶
Inspired by Django's app system. Built with FastAPI, SQLAlchemy, Alembic, and Typer.