Skip to content

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:

  • authusers
  • admindatabase
  • usersdatabase
  • auth_socialauth, users, database
  • seedingdatabase
  • github_actionsdocker
  • kubernetesdocker
  • celeryredis
  • arqredis
  • rate_limitredis
  • websocketsredis
  • docsopenapi

Conflicts

These modules cannot be selected together:

  • arqcelery (both are job queues)