An AI-powered CLI tool that generates production-ready FastAPI projects with clean architecture, interactive prompts, and customizable configurations. Built with LangChain and LangGraph.
pip install fastapi-boilerplate-generator
export OPENAI_API_KEY="your-key"
fastapi-boilerplate- User-friendly prompts like
create-react-app - Smart defaults for quick setup
- Configuration preview before generation
- No command-line flags to remember
- Repository pattern for data access
- Service layer for business logic
- Dependency injection with FastAPI
- Domain-driven structure (one module per project)
- PostgreSQL with advanced connection pooling
- SQLite for development/testing
- Abstract base class for easy extension
- Singleton pattern for connection management
- Docker support with multi-stage builds
- docker-compose with database services
- GitHub Actions or GitLab CI pipelines
- Makefile for common tasks
- Comprehensive constants for API documentation
- Pydantic models for validation
- Example tests with pytest
- README for each generated project
- Python 3.11+
- OpenAI API Key (for LLM-powered generation)
# Install the package
pip install fastapi-boilerplate-generator
# Set up environment variable
export OPENAI_API_KEY="your-openai-api-key"
# On Windows: set OPENAI_API_KEY=your-openai-api-key# Clone the repository
git clone https://github.com/martialo12/fastapi-boilerplate-agent.git
cd fastapi-boilerplate-agent
# Create and activate virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install in development mode
pip install -e .
# Set up environment variables
cp .env.example .env
# Edit .env and add your OPENAI_API_KEYIf installed from PyPI:
fastapi-boilerplateIf installed from source:
python -m fastapi_boilerplate_agent.cliThe CLI will guide you through the configuration:
- Project name: Choose your project name (e.g.,
MyAwesomeAPI) - Database: PostgreSQL or SQLite
- Docker: Include Docker support?
- CI/CD: GitHub Actions, GitLab CI, or none
Check the configuration summary and confirm generation.
cd my_awesome_api # Your project directory
make install # Install dependencies
make run # Start the serverYour API is now running at http://localhost:8000 ๐
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
The CLI will guide you through the project setup with interactive prompts:
๐ FastAPI Boilerplate Generator
==================================================
Project name [my_fastapi_app]: ticket_system
Database options:
1. PostgreSQL (recommended for production)
2. SQLite (good for development)
Choose database [1/2]: 1
Include Docker support? [Y/n]: y
CI/CD options:
1. GitHub Actions
2. GitLab CI
3. None
Choose CI/CD [1/2/3]: 1
==================================================
๐ Configuration Summary:
โข Project: ticket_system
โข Database: PostgreSQL
โข Docker: Yes
โข CI/CD: GitHub Actions
==================================================
Generate project with these settings? [Y/n]: y
โณ Generating project...
โ
Successfully generated project in: /path/to/ticket_system
๐ Next steps:
1. cd ticket_system
2. make install
3. make run
๐ก See README.md for more details!
Note: The project is generated in a directory named after your project (in snake_case format):
MyAwesomeAPIโmy_awesome_api/BrainROIโbrain_roi/InvestWithMeโinvest_with_me/
my_awesome_api/ # Your project directory
โโโ app/
โ โโโ __init__.py
โ โโโ main.py # FastAPI application entry point
โ โโโ core/
โ โ โโโ __init__.py
โ โ โโโ constants.py # Global constants
โ โ โโโ database.py # Database connection (SQLite/PostgreSQL)
โ โโโ my_awesome_api/ # Domain module (named after your project)
โ โโโ __init__.py
โ โโโ constants.py # Module-specific constants
โ โโโ dependencies.py # FastAPI dependencies
โ โโโ exceptions.py # Custom exceptions
โ โโโ models.py # SQLAlchemy models
โ โโโ repositories.py # Data access layer
โ โโโ router.py # API endpoints
โ โโโ schemas.py # Pydantic schemas
โ โโโ services.py # Business logic
โโโ tests/
โ โโโ __init__.py
โ โโโ conftest.py # Pytest configuration
โ โโโ test_api.py # API endpoint tests
โ โโโ test_services.py # Service layer tests
โโโ .github/workflows/
โ โโโ ci.yml # GitHub Actions (if selected)
โโโ Dockerfile # Docker configuration (if selected)
โโโ docker-compose.yml # Docker Compose (if selected)
โโโ Makefile # Common tasks
โโโ pyproject.toml # Project metadata
โโโ README.md # Project documentation
โโโ requirements.txt # Python dependencies
- LangChain - LLM orchestration framework
- LangGraph - Agent workflow management
- OpenAI GPT-4 - AI-powered code generation
- Python 3.11+ - Programming language
- FastAPI - Modern web framework
- SQLAlchemy - SQL toolkit and ORM
- Pydantic - Data validation
- Pytest - Testing framework
- Uvicorn - ASGI server
- Docker - Containerization (optional)
$ python -m fastapi_boilerplate_agent.cli
Project name: TodoAPI
Database: 2 (SQLite)
Docker: n
CI/CD: 3 (None)
โ
Successfully generated project in: /path/to/todo_api
$ cd todo_api
$ make install
$ make run
# API running at http://localhost:8000$ python -m fastapi_boilerplate_agent.cli
Project name: EcommerceAPI
Database: 1 (PostgreSQL)
Docker: y
CI/CD: 1 (GitHub Actions)
โ
Successfully generated project in: /path/to/ecommerce_api
$ cd ecommerce_api
$ docker-compose up -d # Start PostgreSQL
$ make install
$ make test # Run tests
$ make run # Start API- ๐ Rapid Prototyping: Start a new FastAPI project in seconds
- ๐ Learning: Study clean architecture patterns
- ๐ผ Enterprise: Generate production-ready boilerplate
- ๐ฌ Experimentation: Try different tech stacks quickly
- ๐ฆ Microservices: Quickly scaffold multiple services
Contributions are welcome! Please read our Contributing Guide for details on our code of conduct and the process for submitting pull requests.
# Clone the repo
git clone https://github.com/martialo12/fastapi-boilerplate-agent.git
cd fastapi-boilerplate-agent
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install dependencies (including dev)
pip install -e ".[dev]"
# Run tests
pytest
# Format code
black src tests
# Lint
flake8 src tests- ๐ Report bugs
- โจ Suggest new features
- ๐ Improve documentation
- ๐ง Submit pull requests
- โญ Star the project
This project is licensed under the MIT License - see the LICENSE file for details.
- FastAPI community for the amazing framework
- LangChain team for the LLM orchestration tools
- All contributors who help improve this project
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: [email protected]
- PyPI package distribution
- Support for more databases (MySQL, MongoDB)
- Authentication templates (JWT, OAuth2)
- GraphQL support
- WebSocket examples
- Celery task queue integration
- Admin panel generation
- API versioning templates
- Multi-tenancy support
- Kubernetes deployment configs
Q: Do I need an OpenAI API key?
A: Yes, the generator uses GPT-4 to intelligently create your project structure.
Q: Can I customize the generated code?
A: Absolutely! The generated code is yours to modify as needed.
Q: Is the generated code production-ready?
A: Yes, it follows best practices, but you should review and adjust for your specific needs.
Q: What Python version is required?
A: Python 3.11 or higher for the generator. Generated projects use Python 3.11+.
Q: Can I add more features to the generated project?
A: Yes! The generated structure is designed to be easily extended.
Q: Is this free to use?
A: Yes, the generator is MIT licensed. You only pay for OpenAI API usage.
Made with โค๏ธ by the FastAPI community
โญ Star us on GitHub if you find this project useful!