Tech stack¶
The platform: a Django + Angular multi-tenant monolith. This page is a quick
orientation; the full breakdown lives in documentation/tech-stack.md and
documentation/architecture.md.
At a glance¶
Layer |
Technology |
|---|---|
Backend language |
Python 3.12 |
Web framework |
Django 5.x |
API |
Django REST Framework |
Real-time |
Django Channels 4.x (Hypercorn ASGI) |
Background jobs |
Celery + Redis 7.x |
Database |
PostgreSQL 17.x |
Payments |
Stripe 2024.x |
Frontend (event app) |
Angular 21.x + PrimeNG 21.x + Kendo UI ( |
Frontend (tenant app) |
Angular 19.x + PrimeNG 19.x ( |
Styling |
TailwindCSS 4.x (Aura preset, indigo primary) |
Build |
Vite ( |
Object storage |
S3-compatible (S3, DO Spaces, GCS, MinIO) |
SMTP (Mailgun/Mailchimp/BYO) via a DB-backed mailer backend |
|
Containers |
Docker / Podman |
Edge |
Nginx (reverse proxy + custom-domain config generation) |
Processes |
Supervisor |
Backend queues (Celery)¶
Celery routes tasks to named queues:
Queue |
Purpose |
|---|---|
|
registration tasks |
|
backend-interface tasks |
|
printing tasks |
|
Brother label printing |
|
receipt management |
|
badge rendering |
Frontend libraries of note¶
PrimeNG components +
@primeng/themes(Aura) andprimeicons.Kendo UI for Angular — most notably the Scheduler component used by
schedule-editor2.Flowbite (Tailwind components), marked/ngx-markdown (Markdown), signature_pad (signatures).
ui/uses PrimeNG 21;tenantui/uses PrimeNG 19 — they are different versions, don’t share component code blindly.
Platform prerequisites (external services)¶
Before Midsummer is useful you need:
An active Stripe account (for register/vendors/shop).
A transactional email provider with SMTP credentials.
S3-compatible object storage (S3, Spaces, GCS, or self-hosted MinIO).
Operating system¶
Any Linux OS. Windows is not supported (and will not be). macOS works for local development.
Deep dive¶
documentation/tech-stack.md— the complete dependency list (frontend packages, Postgres/Django settings, security notes).documentation/architecture.md— system architecture, source paths, key technical decisions, design patterns, critical implementation paths.