Module Catalog
MoltPy includes 36 modules organized into 8 categories. Each module is a self-contained unit that adds specific functionality to your generated project.
Advanced Configuration
Some modules expose advanced configuration options that are only prompted when you explicitly enable "Advanced configuration options" in the wizard. When advanced mode is disabled, these variables use their sensible defaults. This keeps the wizard streamlined for beginners while giving power users fine-grained control.
Modules with Advanced Variables
| Module |
Advanced Variables |
database |
use_external_pooler, enable_read_replica |
rate_limit |
trust_proxy_headers |
celery |
queue_strategy, enable_memory_protection, enable_guaranteed_delivery |
arq |
queue_strategy |
scheduler |
enable_distributed_lock |
websockets |
enable_heartbeat |
graphql |
enable_depth_limit, max_query_depth |
payments |
enable_webhook_idempotency |
storage |
enable_direct_uploads |
notifications |
enable_background_tasks |
docker |
enable_multi_worker |
kubernetes |
enable_graceful_termination |
openapi |
generate_frontend_client |
API
| Module |
Description |
Variables |
api_versioning |
URL path versioning with /v1/, /v2/ prefix support |
— |
cors |
CORS middleware configuration with environment-based origins |
— |
graphql |
GraphQL API with Strawberry |
graphql_url, enable_playground, enable_depth_limit ★, max_query_depth ★ |
grpc |
gRPC services for high-performance inter-service communication |
grpc_port |
health |
Health check endpoints for /health, /health/live, /health/ready |
— |
openapi |
Custom OpenAPI schema customization and documentation. Generates app/core/openapi.py |
generate_frontend_client ★ |
pagination |
Generic pagination utilities with cursor and offset support |
— |
Background Jobs
| Module |
Description |
Implies |
Conflicts |
Variables |
arq |
ARQ lightweight async job queue with Redis |
redis |
celery |
queue_strategy ★ |
celery |
Celery background job processor with Redis broker |
redis |
— |
queue_strategy ★, enable_memory_protection ★, enable_guaranteed_delivery ★ |
Core
| Module |
Description |
Implies |
Variables |
admin |
Database admin panel with SQLAdmin |
database |
admin_url, admin_title |
database |
SQLAlchemy 2.0 async setup with Alembic migrations |
— |
use_external_pooler ★, enable_read_replica ★ |
email |
Async email sending via SMTP or SendGrid |
— |
provider, from_email |
events |
In-memory async event bus for decoupled domain events |
— |
— |
scheduler |
Background scheduled jobs with APScheduler |
— |
timezone, enable_distributed_lock ★ |
users |
User model, CRUD service, and admin endpoints |
database |
— |
Deployment
| Module |
Description |
Implies |
Variables |
docker |
Multi-stage Dockerfile, Docker Compose, and strict .dockerignore |
— |
enable_multi_worker ★ |
github_actions |
GitHub Actions CI/CD workflows for testing, linting, and Docker builds |
docker |
— |
kubernetes |
Raw Kubernetes YAML manifests with zero-downtime deployment config |
docker |
k8s_namespace, k8s_replicas, k8s_domain, enable_graceful_termination ★ |
terraform |
Infrastructure-as-Code with Terraform for AWS and GCP |
— |
cloud_provider |
Development
| Module |
Description |
Implies |
Variables |
makefile |
Common development commands (lint, test, format, migrate, run-dev) |
— |
— |
pre_commit |
Pre-commit hooks for ruff linting and formatting. Generates .pre-commit-config.yaml |
— |
— |
seeding |
Database seeding with Faker |
database |
seed_count |
testing |
pytest + pytest-asyncio + httpx with factory-boy fixtures |
— |
— |
Documentation
| Module |
Description |
Implies |
docs |
MkDocs documentation structure with Material theme |
openapi |
Infrastructure
| Module |
Description |
Implies |
Variables |
logging |
Structured JSON logging with structlog and request ID middleware |
— |
— |
notifications |
Push notifications with Firebase Cloud Messaging |
— |
provider, enable_background_tasks ★ |
observability |
OpenTelemetry middleware and Prometheus /metrics endpoint |
— |
otel_service_name, otel_exporter_endpoint |
payments |
Payment processing with Stripe (checkout, webhooks, customer portal) |
— |
stripe_currency, enable_webhook_idempotency ★ |
redis |
Redis connection pool and dependency injection |
— |
— |
search |
Full-text search with Meilisearch |
— |
search_provider |
sentry |
Sentry error tracking integration with release tagging. Generates app/core/sentry.py |
— |
— |
storage |
S3 / Cloud Storage boilerplate with aiobotocore |
— |
enable_direct_uploads ★ |
websockets |
WebSockets with Redis Pub/Sub for multi-worker broadcasting |
redis |
enable_heartbeat ★ |
Security
| Module |
Description |
Implies |
Conflicts |
Variables |
auth |
JWT + OAuth2 password flow authentication with bcrypt hashing |
users |
— |
token_expire_minutes, refresh_token_expire_days |
auth_social |
Google and GitHub OAuth2 login with JWT integration |
auth, users, database |
— |
google_client_id, google_client_secret, github_client_id, github_client_secret |
rate_limit |
SlowAPI rate limiting with Redis-backed sliding window |
redis |
— |
trust_proxy_headers ★ |
★ = Advanced variable (only prompted when "Enable advanced configuration options?" is set to Yes)
New Modules (Recently Added)
Tier 1: Production Essentials
email — SMTP / SendGrid async email client
scheduler — APScheduler with example cron jobs and lifespan hooks
admin — SQLAdmin panel (auto-registers User model when users module present)
Tier 2: Advanced Patterns
events — In-memory async event bus with pub/sub handlers
graphql — Strawberry GraphQL API with conditional User CRUD and query depth limiting
grpc — gRPC server + sample protobuf definition with graceful shutdown
Tier 3: SaaS Integrations
search — Meilisearch full-text search with Docker service snippet
payments — Stripe checkout sessions, webhooks with idempotency locks, customer portal
notifications — Firebase Cloud Messaging push notifications with background task support
Module Relationships
Implied Dependencies
When you select a module, its implied dependencies are automatically included:
auth → users
admin → database
users → database
auth_social → auth, users, database
seeding → database
github_actions → docker
kubernetes → docker
celery → redis
arq → redis
rate_limit → redis
websockets → redis
docs → openapi
Conflicts
These modules cannot be selected together:
arq ↔ celery (both are job queues)