Live music with intensity.
A snapshot of the platform work shipped in May 2026 — the back office Intensity Bands runs on, and the shared infrastructure under it.
Apps
| App | Status | Notes |
|---|---|---|
| production.intensityband.dev | In development | SSR back-office on the gods stack — schema + auth + admin views live. |
| clients.intensityband.com | Pending port to new domain | New Client Portal. Final home is on intensitybands.com. |
Infrastructure
- production.intensityband.dev Application — dedicated Vultr VPS, Ubuntu 24.04 LTS, Dokku 0.38.5, LetsEncrypt TLS with auto-renewal.
- intensityband.dev This page — same Dokku host, separate app, nginx:alpine container.
- Postgres (Vultr managed) Production database — managed snapshots, encrypted at rest, TLS for client connections.
- Redis (dokku-redis) Session + cache store, linked to the app via dokku's service plugin.
-
clients.intensityband.com
Client Portal — Next.js 15 / React 19, deployed on Netlify, consumes shared
@intensityband/requests+@intensityband/uipackages.
Platform packages (shared infrastructure)
- @wedops/hera-types 0.1.5 Canonical wedding-domain entity types — Event, Musician, Gig, Venue, and the brand-config shape. Pure types, no runtime.
- @wedops/hera-brand 0.3.1 Brand-config runtime helpers — slimmed to depend on hera-types and re-export them for backward compatibility.
- @wedops/hera-business 0.1.0 Brand-neutral business logic — call times, compensation, travel, participation, planning status. Dependencies injected so each brand wires in its own data layer.
- @wedops/hera-sdk 0.4.1 Schema-bound Postgres SDK factory. Pair with a brand's schema package to produce a typed DB instance.
-
@wedops/athena-db 0.4.0
Schema-driven Postgres utilities — read path now honors per-property
snakeKeyoverrides, so each brand can rename a column at the schema layer without per-call boundary adapters. - @wedops/hera-handlers 0.1.0 Brand-neutral client-side DOM handlers (12 vanilla-JS modules) — extracted from the per-brand asset duplication so both apps consume one source of truth.
-
@wedops/zeus-build 0.1.2
Build pipeline (esbuild + postcss + asset copy) — now wipes
outDirbefore each build so stale artifacts can't linger between deploys. -
@wedops/zeus-core 0.2.0
Application server — required
distAssetsDirconfig; all asset paths now resolve under the consumer's bundle, no framework__dirnameassumptions.
Application
- intensityband/monorepo Extracted into its own repo — clean copy, dedicated workspace globs, no shared history with the previous host repo.
- @int/app Single-brand application entry — hardcoded brand at compile time, dropped runtime BRAND_ENV toggle. Adopted the shared handlers + zeus-core upgrade.
- 23 schema tables · 12 admin islands Validated end-to-end on the production database; admin views registered and serving.