Nightkey
Multi-sided nightlife marketplace — iPad club dashboard, mobile apps for guests and promoters, PayFac payments, and live operations from booking to door

Overview
Nightkey is a four-sided marketplace for high-end nightlife: an iPad-first club dashboard for venue operators, a guest app for table bookings and bottle service, a promoter app for guest lists and commissions, and a bottle-server experience for in-night service. One Supabase backend powers all four surfaces with row-level security per role, real-time booking state, an embedded payment facilitator pipeline for sub-merchant boarding and split payouts, and a Konva-based floor-plan editor that operators use to lay out their venue and accept reservations.
The challenge: Nightclubs run on spreadsheets, group chats, and improvised cash splits. Guests can't reliably book a table, promoters can't prove the heads they brought, and operators can't see their floor in real time. Nightkey is the operating layer that ties guests, promoters, hosts, and venues together — with payments, bookings, and accountability built in.
Key Features
Tech Stack
Skills Applied
Multi-Tenant Postgres + RLS
73 versioned migrations across clubs, promoters, guests, staff, bookings, payments, and underwriting. Row-Level Security on every table with role-aware helpers (is_active for staff, promoter_profiles join for affiliations). Indexes tuned for live floor queries during peak hours.
Payment Facilitator Integration
Sub-merchant boarding flow against QorCommerce: new_merchant requests, status polling, underwriting doc upload, and a payment-webhook dispatcher that updates internal status. PayFac merchant of record routes funds through the platform before splits.
Edge Function Architecture
24 Deno-based Supabase Edge Functions covering boarding, payouts, webhooks, notifications, ID verification, and PDF generation. Shared helpers in _shared/ for state validation, timezone mapping, and QorCommerce request signing. TDD with Deno test suites.
PDF Generation & E-Sign
pdf-lib-based NSA stamping pipeline that overlays promoter signature, name, EIN, and ISO timestamp on a base PDF template. Signed agreements stored in Supabase Storage with row-level access tied to the promoter profile.
Realtime Operations UI
Supabase Broadcast + Realtime for the Tonight cockpit: live booking arrivals, host floor view, server assignments, and booking state transitions. Optimistic UI on the client, RLS-gated subscriptions on the server.
Canvas Editor (Konva)
Floor-plan editor with shape primitives, snap-to-grid, auto-layout templates, zone coloring, and persisted state. Hand-tuned for iPad pencil + touch input. Output drives every downstream surface — bookings, server assignments, door-side check-in.
Cross-Platform Schema Sharing
One Supabase project powers both the Next.js dashboard and an Expo mobile app in a separate repo. Generated TypeScript types from the Postgres schema flow into both clients. Phone OTP for mobile, OAuth/email for web, unified RLS for both.
Compliance & Static IP Networking
Vendor IP-allowlist requirement solved with a thin Node forwarder on Render with a static outbound IP. Supabase Storage signed URLs piped through the relay so client documents never leave the platform without being authenticated.
ID Verification Pipeline
AWS Rekognition face match + Google Cloud Vision OCR composed in a single verify-id Edge Function. Confidence thresholds tuned for nightlife at-the-door scenarios; failed attempts logged for audit with PII redaction.
TDD on Critical Paths
Deno test suites for payment-webhook (30 tests), board-promoter (15 tests), poll-merchant-status, and shared qor-helpers. Each flow developed RED → GREEN before deployment, with tests asserting state transitions, error mapping, and webhook idempotency.
Premium iPad UI
Amex Centurion Lounge and Airbnb references. Phosphor duotone icons (not lucide), generous spacing, photography-forward cards, Framer Motion page and list transitions. Amber accent with warm dark theme; iPad-class touch targets throughout.
Mobile Release Engineering
Expo EAS Build with --auto-submit to TestFlight and Play Internal. Apple-review demo venue isolated from production data via dashboard bypass mode for payments; live venue data never exposed to review accounts.