De kernstack
Frontend: WeWeb — pixel-perfecte UI, verbindt met elke backend, gedeployed op je eigen domein via Cloudflare CDN.
Database + Auth: Supabase — PostgreSQL, Row-Level Security, realtime-subscriptions, bestandsopslag.
Bedrijfslogica + API: Xano — REST API-builder, aangepaste bedrijfslogica, derde partij-integraties, webhooks.
Betalingen: Stripe — abonnementen, facturen, webhooks terug naar Xano.
E-mail: Resend of SendGrid — transactionele e-mails geactiveerd door Xano.
Deze stack verwerkt 10.000 MAU zonder moeite. We hebben hem gedraaid op 50.000 MAU zonder infrastructuurwijzigingen. Voor Nederlandse SaaS-bedrijven die zich richten op Benelux B2B-klanten is dit een bewezen en beproefde basis.
Multi-tenancy met Supabase RLS
Elke tabel heeft een workspace_id-kolom. Alle Row-Level Security-beleidsregels filteren op workspace_id = auth.jwt() ->> 'workspace_id'.
Gebruikers behoren tot workspaces via een workspace_members-tabel met een rolkolom (owner, admin, member). Wanneer een gebruiker inlogt, bevat de JWT hun workspace_id en rol — Supabase past dit automatisch toe op databaseniveau.
Dit is de belangrijkste architectuurbeslissing in een B2B SaaS. Doe het goed vanaf dag 1. We hebben bedrijven gezien die dit oversloegen in de validatiefase en vervolgens een volledige databasemigratie nodig hadden toen ze hun eerste enterprise-klanten kregen — een kostbaar proces dat App Studio je graag helpt te vermijden.
Factureringsarchitectuur met Stripe
In Xano maak je een webhooks-endpoint dat Stripe-events ontvangt. Verwerk: checkout.session.completed (maak abonnementsrecord aan), customer.subscription.updated (bijwerken plan), invoice.payment_failed (toegang beperken).
Sla abonnementsstatus op in een workspace_settings-tabel. In WeWeb controleer je abonnementsstatus voordat premium-functies worden weergegeven — en in Supabase RLS-beleidsregels voor databasebeperkingen.
Vertrouw nooit op de frontend voor factureringscontroles. Verifieer altijd in de database. Voor Nederlandse klanten die worden gefactureerd in euro's: Stripe ondersteunt EUR-prijzen en automatische BTW-verwerking voor Nederlandse BTW (21% of 9% afhankelijk van categorie), wat de boekhouding aanzienlijk vereenvoudigt.
Prestatieoptimalisatie
Indexstrategie: indexeer elke foreign key, elke status/type-kolom die wordt gebruikt in filters en elke kolom waarop je sorteert. In Supabase duurt dit 2 minuten in de SQL-editor.
Paginering: alle lijst-endpoints moeten pagineren. Retourneer nooit onbeperkte query's. Gebruik cursor-gebaseerde paginering voor realtime-data (oneindig scrollen) en offset voor admintabellen.
Caching: Xano ondersteunt respons-caching voor endpoints die dezelfde data retourneren voor alle gebruikers (openbare inhoud, opzoektabellen). Gebruik dit agressief. Een goed gecached Xano-endpoint kan duizenden aanroepen per seconde verwerken zonder Supabase te belasten.
Monitoring en foutafhandeling
Voeg Sentry toe aan je WeWeb aangepaste code voor frontend-fouten. Xano logt alle API-verzoeken — exporteer ze naar Datadog of gebruik Xano's ingebouwde foutmonitoring.
Voor kritieke achtergrondtaken (facturering webhooks, e-mailactivators) voeg foutmeldingen toe aan Slack via Make. Je moet op de hoogte zijn van fouten voordat je gebruikers dat zijn.
Databasemonitoring: Supabase biedt inzichten in queryprestaties. Bekijk langzame queries elke week. Een veelvoorkomende oorzaak van prestatiedegradatie in groeibedrijven zijn queries die goed werken bij 100 rijen maar rampzalig langzaam zijn bij 100.000 — vroeg indexeren elimineert dit probleem.
AVG en gegevensbeveiliging
Kies bij het aanmaken van je Supabase-project de EU-regio (bijv. eu-west-1 Frankfurt). Dit garandeert dat al je klantdata binnen de EU blijft.
Activeer RLS op alle tabellen met gebruikersdata. Documenteer je datastromen in een verwerkingsregister (vereist door de AVG voor de meeste SaaS-bedrijven). Implementeer data-minimalisatie: sla alleen op wat je echt nodig hebt.
Voor Nederlandse enterprise-klanten met een Functionaris Gegevensbescherming is een Data Processing Agreement met Supabase en Xano vereist. Beide aanbieders bieden standaard DPA-templates. Dit is een verkoopargument, geen obstakel — laat het proactief zien in je sales-proces.