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:

  • 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)