DanceClub

No unified platform for social dance events in Europe. Organizers used Instagram DMs and spreadsheets. Dancers had no way to discover events, follow organizers, or track attendance.

65

Gradle modules

10

Postgres schemas

4

Frontends

104

Published events

15

Localized markets

No unified platform for social dance events in Europe. Organizers used Instagram DMs and spreadsheets. Dancers had no way to discover events, follow organizers, or track attendance.

A multi-app production platform. Backend. Four frontends. AI pipeline. Infrastructure. All shipped end to end.

Kotlin · Spring Boot · PostgreSQL · Next.js · TypeScript · React · Docker · Caddy · Cloudflare · GitHub Actions

[01]

Backend: Kotlin · Spring Boot 3.4

  • ·Modular monolith, 65 Gradle modules across 11 bounded contexts: auth, user, event, organizer, social, public, finance, analytics, audit, cdn, push
  • ·Hexagonal boundaries between public domain, private domain, data access, API, business logic and REST layers, enforced at build time by architecture tests rather than by review
  • ·Schema-per-context in one PostgreSQL instance, 10 schemas each with its own migration stream, so a context lifts out without a data migration
  • ·Two contexts extracted as standalone services so far, sequenced off a generated dependency graph rather than a plan
  • ·Event backbone migrated from RabbitMQ to Kafka with the messaging contract kept stable across the cutover
  • ·Google OAuth2, JWT, API key auth with rate limiting, email OTP
  • ·PostGIS geospatial queries, WebSocket real-time notifications, transactional email
  • ·968 unit tests covering domain logic; real-Postgres integration tests via Testcontainers live in the extracted services
[02]

Frontend: Discovery App

  • ·27 routes, 72 components, Mapbox GL interactive event map with list toggle
  • ·PWA-enabled (installable), SSR/SSG, sitemap generation for SEO
  • ·Social follows, dance partner matching, user profiles, event sharing
  • ·Google OAuth login, React Hook Form + Zod validation
  • ·Next.js 16, React 19, Tailwind CSS 4, Framer Motion, Radix UI
[03]

Frontend: Organizer Hub

  • ·11 routes, 77 components, event creation, publishing workflow, team invitations
  • ·Google Maps with place autocomplete for venue management
  • ·Analytics dashboard with Recharts, TanStack data tables
  • ·Event ownership claim system, organizers claim agent-created events via token
[04]

Frontend: Internal Backstage

  • ·15 admin routes covering user management, content moderation, and platform configuration
  • ·Business plan generator with revenue calculator and print-to-PDF
  • ·Review pipeline for AI-submitted events before they go live
  • ·Independent auth, Prisma ORM, CodeMirror editor
[05]

AI Event Intake: Powered by PulseAI

  • ·Multi-stage automated pipeline that discovers, classifies, and publishes events
  • ·Multi-provider LLM orchestration (Claude, GPT-4, Gemini) with failover
  • ·Headless browser automation for data extraction and enrichment
  • ·Automated quality assurance with AI-powered error correction
  • ·Fully integrated with DanceClub's backend via dedicated Agent API
[06]

Infrastructure: live since 2026, self-hosted end to end

  • ·Self-hosted end to end, every server, every secret, every deploy owned and understood
  • ·Wired once, still running, the ops setup hasn't needed a rework since launch
  • ·Full CI/CD on every push, lint, type-check, test, build, deploy. Zero manual operations.
  • ·Separated staging and production with isolated secrets, zero-downtime deploys
  • ·No SRE team and no on-call rotation, not because it's reckless, but because the system doesn't page
  • ·The unglamorous part, monitoring, backups, deploy discipline, is exactly the part that keeps it alive

Live since 2026 · 65 modules, 10 schemas · Decomposition underway

Want this for your product?

Same discipline. Same ownership. A system that runs itself. Pick the shape of the work.