SaaS-product
Een analytics-SaaS bouwen én blijven doorontwikkelen
Een multi-tenant SaaS-product waarin tracker, API, rapportages, billing en externe advertentieplatformen als één systeem moeten blijven werken.
De situatie
De applicatie is een Laravel-product voor first-party leadtracking en attributie. Het omvat een JavaScript-tracker, tracking-API, Livewire-beheeromgeving, rapportages, Google Ads-koppeling, Stripe-billing en afzonderlijke PostgreSQL-data per bedrijf.
Waar het vastliep
Een ogenschijnlijk kleine productwijziging raakt vaak meerdere lagen. Een nieuw conversietype betekent aanpassingen in de tracker of webhook, opslag, queueverwerking, rapportage, instellingen en externe API. Zonder duidelijke grenzen ontstaat snel dubbele logica.
De technische vraag
Het product moet nieuwe bronnen en klantwensen kunnen opnemen zonder dat bestaande tracking of tenantisolatie breekt. Tegelijk moeten deployments herhaalbaar blijven en moeten incidenten terug te leiden zijn tot één klant, job of integratie.
Mijn aanpak
Ik werk met domeingerichte services en repositorycontracten rond gedeelde datastromen. Kritieke flows krijgen tests op de grens tussen browser-event, API, queue en database. Redis verwerkt achtergrondwerk; Sentry en gestructureerde logging geven context bij fouten; rollen en tenantselectie worden centraal afgedwongen.
Wat het opleverde
Het product kan stap voor stap worden uitgebreid met nieuwe conversies, rapportages en integraties zonder de volledige architectuur opnieuw te structureren. Die end-to-end verantwoordelijkheid dwingt keuzes af die niet alleen vandaag werken, maar ook te beheren en uit te leggen blijven.
Onder de motorkap
Keuzes die het verschil maakten
Database per bedrijf
Tenantdata blijft fysiek gescheiden, terwijl de applicatie gedeelde productlogica en beheer behoudt.
Eén conversieketen
Leads, reserveringen en orders doorlopen dezelfde principes voor consent, attributie, deduplicatie en export.
Product én operatie
Deployment, queues, monitoring, billing en supportscenario’s horen bij dezelfde technische beslissing.
Gerichte tests
Vooral de overgangen tussen tracker, webhook, queue en externe API worden als complete flow afgedekt.