Midsummer Developer DocsΒΆ

Quickstart πŸ‘‰

Stand up a local instance and run the dev server.

Quickstart

Systems πŸ‘‰

What each application (register, vendors, staff, schedule, …) does.

Systems

Concepts & Theory πŸ‘‰

The architecture: multi-tenancy, the custom form system, request resolution, payments.

Concepts & Theory

Reference πŸ‘‰

Tech stack, management commands, the backend API, and the data model.

Reference

Operational Guides πŸ‘‰

Runbooks for adding tenants, custom domains, and updating metrics.

Operational guides

Agent Guide πŸ€–

Context and conventions for AI coding agents bootstrapping work on Midsummer.

Agent guide

Midsummer V2 is a multi-tenant monolith β€” a Django 5.x backend serving REST + WebSocket APIs, with several Angular single-page apps as frontends, all over one PostgreSQL database with per-tenant schema isolation (django-tenants).

Conventions are places for people to come together. Big tech companies take advantage of small to medium sized events. Midsummer provides the baseline of what events should be able to do without those companies. β€” project mission

These docs are the developer-facing companion to the product. They are written for the engineers and agents who build and operate Midsummer, not the attendees who use it. For the high-level project summary, see the project mission & features.

What you’ll find hereΒΆ

  • Quickstart β€” from a clean machine to a running instance at {{ dev_url }}, plus the day-to-day workflow and troubleshooting.

  • Systems β€” a focused explainer for each Django app: accounts, event, register, vendors, staff, schedule, shop, tenant, and kioskos.

  • Concepts & Theory β€” the why behind the code: schema-based multi-tenancy, the JSON form-builder system, how a request is resolved, the permission model, Stripe payments, and audit logging.

  • Reference β€” the tech stack, every management command, the REST/WebSocket API surface, and the data model.

  • Operational Guides β€” step-by-step runbooks (onboarding a new tenant, setting up a custom domain, refreshing year-over-year metrics).

  • Agent Guide β€” a distilled orientation designed for AI coding agents to consume before working in the codebase.

A 30-second mental modelΒΆ

HTTP request
   β”‚
   β–Ό
TenantMainMiddleware   ── reads host ──► Tenant + schema switch + URLconf
OAuthDomainMiddleware  ── routes /o/* on the global OAuth domain only
EventSetupMiddleware   ── resolves request.current_event (subdomain / custom domain)
   β”‚
   β–Ό
/app/<module>/...      ── REST (DRF ViewSets + @api_view) ──► tenant schema
/api/v2026-01/...      ── versioned public API
/ws/...                ── Django Channels (jury voting, staff ping)
   β”‚
   β–Ό
Angular SPA            ── ui/ (Angular 21) for events Β· tenantui/ (Angular 19) for tenant admin

Ready? Start with the Quickstart.