Brief
Eventorganisatoren in de Benelux verkopen tickets vaak via aggregators die hoge fees pakken en weinig grip geven op de buyer journey. De vraag: bouw één SaaS-platform waarop elke organisator een eigen sub-domein, eigen huisstijl, eigen tickettypes en eigen Pay.nl-koppeling krijgt — inclusief zaalindelingen met stoelselectie, kortingscodes, refunds, payouts en facturatie. Alles tenant-geïsoleerd, alles auditbaar, en betrouwbaar genoeg om grote drops van 1000+ kopers tegelijk aan te kunnen.
Aanpak
Frontend op React + Vite + TypeScript met Tailwind, gehost op Vercel met per-shop sub-domeinen ({shop}.byticks.com / .ae). Backend leunt volledig op
Supabase: Postgres met Row-Level Security als tenant-isolatie, Edge Functions (Deno) voor Pay.nl-webhooks, ticket-PDF generatie, e-mailflows en cron-jobs.
Een aparte React Native + Expo scanner-app draait op iOS en Android voor toegangscontrole. De seating-plan stack is een eigen bouwer met zones, stoelen,
canvas-objecten, atomic seat-holds via RPC's, en auto-best-seat selectie. Voor de checkout-betrouwbaarheid: idempotente Pay.nl-webhook met auto-heal,
retry-aware caller-gate, een payment-orphan monitor die elke 15 minuten zwijgende failures detecteert, en synthetische e2e-tests via GitHub Actions die
UptimeRobot-heartbeats pingen. Financial calculations zitten in afgesplitste, auditbare RPC's (handling fees, service splits, payouts, voided-invoice
gating) na een gerichte sweep nadat een onderbetaling van €66,25 een 1000-row PostgREST cap blootlegde. Load-testing met k6 tegen een synthetic shop houdt
de seating-stack regression-proof voor on-sale momenten.
Resultaat
Live platform met meerdere productie-shops op *.byticks.com, een staging-tier op *.ticksz.ae, en een werkende mobile scanner in de app stores.
Organisatoren beheren events, tickettypes, kortingen, zaalplattegronden, e-mailcampagnes en payouts via een admin met sidebar-navigatie, ingebouwde manual
en een super-admin Platform Health dashboard voor infra- en business-metrics. De stack draait stabiel op één Supabase-project met handmatige migraties en
deploy-flow via dev → main, ondersteund door 10 actieve uptime monitors en een vaste post-incident reflex die elke nieuwe failure mode omzet in een
nieuwe geautomatiseerde check.














