django-program

Modern conference management for Django - registration, ticketing, Pretalx schedule sync, sponsors, and program activities.


django-program is a pluggable Django app for running conferences. It covers the full lifecycle: defining ticket types and add-ons, processing payments through Stripe, syncing speaker schedules from Pretalx, managing sponsors, and coordinating program activities like sprints, tutorials, and open spaces.

Built for PyCon US but designed to work for any conference that uses Django.

Getting Started

Install django-program and bootstrap your first conference from a TOML config file.

Getting Started
Configuration

The TOML bootstrap schema and Django settings reference.

Configuration
Registration Flow

How the cart, checkout, and Stripe payment pipeline works end to end.

Registration Flow
Pretalx Integration

Speaker and schedule sync architecture, schema regeneration, and the pretalx-client package.

Pretalx Integration
Programs & Activities

Travel grants, sprints, tutorials, open spaces, and activity signups.

Programs & Activities
Management Dashboard

Financial overview, voucher bulk generation, and organizer tools.

Management Dashboard
API Reference

Autodoc reference for all public modules.

API Reference

Key Features

  • Ticket Sales – Ticket types with availability windows, stock limits, per-user caps, and voucher-gated access

  • Cart & Checkout – Expiring carts, voucher discounts (percentage, fixed, comp), Stripe PaymentIntents confirmed via Stripe.js

  • Pretalx Sync – Typed HTTP client with automatic /talks/ fallback, multilingual field handling, and weekly drift detection

  • Sponsors – Sponsor levels, benefits, comp vouchers auto-generated on sponsor creation

  • Program Activities – Sprints, tutorials, open spaces with signup caps, waitlisting, and travel grants

  • Management Dashboard – Organizer-facing SSE-powered import/sync UI

  • TOML Bootstrap – Define an entire conference (sections, tickets, add-ons, sponsor levels) in a single file

Quick Start

uv add django-program
# settings.py
INSTALLED_APPS = [
    ...,
    "django_program.conference",
    "django_program.registration",
    "django_program.pretalx",
    "django_program.sponsors",
    "django_program.programs",
    "django_program.manage",
]

DJANGO_PROGRAM = {
    "stripe": {
        "secret_key": "sk_test_...",
        "publishable_key": "pk_test_...",
        "webhook_secret": "whsec_...",
    },
    "pretalx": {
        "base_url": "https://pretalx.com",
        "token": "your-api-token",
    },
    "currency": "USD",
    "currency_symbol": "$",
}

Indices and tables