Oplossingen / SaaS
Bouw een echte SaaS, geen demo ervan
Multi-tenant vanaf de eerste tabel, plannen en gemeten gebruik vanaf de eerste checkout, toegangspoorten voor functies die door de facturering eerlijk blijven. Beschrijf je product — Kliv bouwt de bedrijfsklare machine eromheen.
Waarom bouwen
Waarom dit bouwen in plaats van de stack samenstellen?
De standaardmanier om een SaaS te bouwen is assemblage: een auth-provider, een billing-SDK, een database, een e-maildienst, een featureflag-tool — vijf leveranciers vóór de eerste regel van je eigenlijke product. De naden ertussen worden je codebase: webhook-handlers die facturering met toegang reconciliëren, sync-jobs die gebruikers tussen systemen kopiëren en het soort bug van twee uur ’s nachts waarin de factureringsleverancier zegt betaald en de app zegt gesloten. Kliv levert het chassis als één systeem — tenancy, facturering, toegangsrechten, e-mail, data — zodat de naden waar je maanden aan zou schrijven niet bestaan.
Het chassis onderscheidt je niet; je product wel. Niemand kiest je app om de inlogpagina of de factuurmails — al vertrekken ze wel als die kapot zijn. Besteed de beschrijving aan je domein, het ding dat alleen jij weet, en laat de onderdelen die elke SaaS deelt al samengesteld aankomen. Wanneer je prijzen veranderen — een nieuw niveau, een gemeten add-on, een enterprise-deal — is dat een zin in een gesprek, geen nieuwe architectuur.
Anatomie van het systeem
Waar een SaaS echt van is gemaakt
Haal het product weg en elke SaaS heeft hetzelfde skelet: tenants, seats, plannen, toegangspoorten, meters, facturen. Kliv levert het skelet; jij beschrijft het product eromheen. Dit weet het systeem op dag één.
Organisaties
Elke klant is een organisatie — gebruikers, data en facturering binnen één muur. Bedrijf A kan bedrijf B niet lezen, in de database.
Leden & rollen
Je klanten zijn bedrijven, geen logins — eigenaren, admins en leden, elk met zicht op wat hun rol toestaat.
Plannen & prijzen
De catalogus: niveaus, proefperiodes, eenmalige ontgrendelingen, gemeten add-ons — je prijspagina als data die het systeem afdwingt.
Toegangsrechten
De koppeling tussen geld en functies — wat het abonnement van deze organisatie opent, gecontroleerd op elke plek waar het ertoe doet.
Meters & gebruik
Gebruik geteld op de ingelogde activiteit van de klant — zichtbaar voor hen, factureerbaar door jou.
Abonnementen & facturen
De commerciële status van elke tenant — in proefperiode, actief, achterstallig — met de facturen om het te bewijzen.
Wie ziet wat
Regels die de database afdwingt
- De rijen van een tenant horen bij die tenant — lezen over organisaties heen is onmogelijk in de database, niet weggefilterd in de app.
- Toegangsrechten volgen facturering in realtime: een upgrade opent functies nu, een opzegging beperkt ze volgens schema.
- De meter en de factuur zijn hetzelfde systeem — wat is gemeten, wordt gefactureerd, zonder iets te reconciliëren.
- Een mislukte betaling start betalingsherstel — nieuwe pogingen en herstelmails — voordat een toegangspoort sluit voor een betalende klant.
Dit is het deel van een SaaS dat niemand koos om te bouwen en iedereen moet hebben: identiteit, tenancy, geld en de regels die ze verbinden. Wanneer het als één systeem aankomt, mag je beschrijving over je product gaan.
De moeilijke delen van SaaS, al opgelost
Dit zijn geen add-ons — het zijn dezelfde platformonderdelen, samengesteld.
Standaard multi-tenant
Wanneer klanten zich aanmelden voor je app, krijgt iedereen een eigen organisatie. Bedrijf A kan nooit de data van bedrijf B zien — isolatie wordt afgedwongen op elke query op databaseniveau, niet in app-code die iemand moet onthouden te schrijven. Je eigen admindata staat achter een aparte, alleen interne muur.
Teams en seats binnen je product
Je klanten zijn geen losse gebruikers — het zijn bedrijven. Inloggen, rollen en delen per organisatie horen bij hetzelfde identiteitssysteem, dus “iedereen bij hetzelfde bedrijf ziet de projecten van dat bedrijf” is een zin, geen sprint.
Reken zoals SaaS echt rekent
Abonnementen met proefperiodes en eerlijke proratie, eenmalige ontgrendelingen en gebruiksprijzen met meters. “Een Pro-plan van 20 USD per maand, plus 2¢ per gegenereerd rapport” is één beschrijving — Kliv maakt de producten, prijzen en meters voor je.
Functies die het geld volgen
Koppel functies aan plannen en zet pagina’s, data en functionaliteit erachter. Upgrade, downgrade of zeg op — toegang volgt automatisch zodra facturering verandert. Geen code voor toegangsrechten, geen nachtelijke sync.
Verkoop ook toegang tot content
De ingebouwde bestandsopslag heeft eigen toegangsregels: privé, gedeeld per organisatie of achter een abonnement. Premium-PDF’s, video’s en downloads gaan open met dezelfde toegangsrechten als de rest van je app.
Selfservice-facturering, in je app
Klanten werken kaarten bij, wisselen van plan en lezen facturen op een factureringspagina binnen je product — en wanneer een betaling mislukt, probeert Kliv die opnieuw en mailt ze totdat de betaling is hersteld.
Manieren om te rekenen
Drie manieren waarop een SaaS kan rekenen
Prijspagina’s veranderen — niveaus splitsen, meters verschijnen, een enterprise-deal wil een factuur. De catalogus moet meekunnen zonder nieuwe architectuur.
Gelaagd abonnement
29–99 USD/maand
Het team dat Starter of Pro kiest
Functieniveaus gekoppeld aan plannen: Starter krijgt de kern, Pro opent rapportage, de API en de teamfuncties.
- Opent
- Functies volgen het plan — een upgrade opent ze direct, een downgrade beperkt volgens schema, niets handmatig omgezet.
- Facturering
- Maandelijks of jaarlijks met proefperiodes en eerlijke proratie; mislukte kaarten krijgen nieuwe pogingen en herstelmails voordat toegang smaller wordt.
- Terugbetalingen
- Goedkeuringsgestuurd — een terugbetaling is een beslissing, geen ongeluk.
Gebaseerd op gebruik
0,05 USD per run
De klant wiens rekening de waarde moet volgen
Een basisplan plus een meter: renders, berichten, API-calls — wat in jouw product ook een eenheid van waarde is.
- Opent
- Gebruik telt op de ingelogde activiteit van de klant, zichtbaar op de factureringspagina voordat de factuur ooit binnenkomt.
- Facturering
- Gemeten kosten bouwen op en worden gefactureerd op de cyclus van het abonnement — de meter en de factuur kloppen omdat ze hetzelfde systeem zijn.
- Terugbetalingen
- Betwiste regels worden opgelost via dezelfde goedkeuringsflow.
Eenmalige ontgrendeling
500 USD eenmalig
De klant die de add-on wil, niet nog een abonnement
Een levenslange module, een onboardingpakket, een early-adopter-deal — één keer verkocht, naast de abonnementen.
- Opent
- De aankoop geeft een permanent toegangsrecht dat naast elk plan kan bestaan dat de klant gebruikt.
- Facturering
- Eén betaling, één bon — dezelfde catalogus, dezelfde factureringspagina.
- Terugbetalingen
- Dezelfde goedkeuringsgestuurde flow.
Voor de lancering
De eerste week, voordat je lanceert
Een SaaS heeft meer machinewerk te bewijzen dan welke brochuresite dan ook — precies daarom doet de eerste week ertoe.
Vorm het product
Beschrijf het: wat het product doet, wie een klant is, de niveaus en wat elk niveau opent. Kliv bouwt de eerste preview met organisaties, plannen en toegangspoorten al echt.
Maak het van jou
Je domein, je merk, de taal van je product — en een prijspagina die wordt gegenereerd uit dezelfde catalogus die de checkout afdwingt.
Koppel het echte werk
Koppel Stripe, zet de echte prijzen en proefperiodes, hang functies aan plannen en nodig je team uit in het operatoroverzicht.
Probeer het te breken
Meld je aan als testklant. Probeer de data van een andere organisatie te lezen — zie hoe de database weigert. Laat een kaart mislukken, downgrade een plan en kijk hoe de toegangspoorten volgen.
Repeteer daarna een jaar
In de Sandbox, met gesimuleerd geld en gesimuleerde tijd, draai je het eerste jaar van je SaaS vóór lancering: proefperiodes converteren of verlopen, een klant upgradet in maart, een kaart mislukt in juni en herstelt, een opzegging sluit de juiste functies op de juiste datum. Je publiceert een business die al heeft gedraaid — geen hoop dat het straks werkt.
Bouwen of kopen
Waarom de stack niet gewoon aan elkaar lijmen?
| De gelijmde stack | Met Kliv | |
|---|---|---|
| Tenancy | De organisatiefunctie van een auth-provider plus rijfilters die je voor altijd schrijft en opnieuw beoordeelt. | Organisaties afgedwongen in de database — lezen over tenants heen is onmogelijk, niet weggefilterd. |
| Facturering ↔ toegang | Webhook-handlers die de factureringsleverancier reconciliëren met het idee van je app over wie heeft betaald. | Toegangsrechten volgen facturering native — er is geen naad om te reconciliëren. |
| Gebruiksprijzen | Een meterdienst, een factureringsdienst en een reconciliatiejob ertussen. | De meter en de factuur zijn hetzelfde systeem. |
| Lifecycle-e-mail | Nog een leverancier, nog een templatetaal, nog een webhook. | Bonnen, betalingsherstel en proefperiodeherinneringen ingebouwd — op jouw templates. |
| Tijd tot product | Maanden chassis voordat de eerste onderscheidende functie bestaat. | Het chassis staat er op dag één; je beschrijving gaat naar het product. |
Tenancy
De gelijmde stack: De organisatiefunctie van een auth-provider plus rijfilters die je voor altijd schrijft en opnieuw beoordeelt.
Met Kliv: Organisaties afgedwongen in de database — lezen over tenants heen is onmogelijk, niet weggefilterd.
Facturering ↔ toegang
De gelijmde stack: Webhook-handlers die de factureringsleverancier reconciliëren met het idee van je app over wie heeft betaald.
Met Kliv: Toegangsrechten volgen facturering native — er is geen naad om te reconciliëren.
Gebruiksprijzen
De gelijmde stack: Een meterdienst, een factureringsdienst en een reconciliatiejob ertussen.
Met Kliv: De meter en de factuur zijn hetzelfde systeem.
Lifecycle-e-mail
De gelijmde stack: Nog een leverancier, nog een templatetaal, nog een webhook.
Met Kliv: Bonnen, betalingsherstel en proefperiodeherinneringen ingebouwd — op jouw templates.
Tijd tot product
De gelijmde stack: Maanden chassis voordat de eerste onderscheidende functie bestaat.
Met Kliv: Het chassis staat er op dag één; je beschrijving gaat naar het product.
Veelgestelde vragen
Hoe wordt tenantisolatie echt afgedwongen?
In de database, met regels op rijniveau. Elke klant is een organisatie en de rijen dragen die grens — een bug in een pagina kan de data van een andere tenant niet lekken, omdat de query zelf leeg terugkomt.
Kan ik een abonnement combineren met gemeten gebruik?
Ja — dat is één plan, geen twee systemen: een Pro-niveau met 0,05 USD per render erbovenop. Het abonnement factureert de basis, de meter factureert het gebruik en de klant ziet beide op één factuur.
Wat gebeurt er wanneer een klant opzegt of downgradet?
Toegangsrechten worden smaller volgens het schema dat je beleid instelt — direct of aan het einde van de periode — en de data blijft. Een terugkerende klant pakt de organisatie weer op waar die stond, waardoor terugwinnen een factureringsgebeurtenis is, geen migratie.
Kunnen klanten hun eigen facturering beheren?
Ja — een factureringspagina binnen je product: kaarten bijwerken, van plan wisselen, facturen lezen. Wanneer een betaling mislukt, probeert betalingsherstel de betaling opnieuw en mailt de klant voordat iemands toegang smaller wordt.
Kan ik prijzen na lancering wijzigen?
Ja — de catalogus is data. Voeg een niveau toe, splits een plan, introduceer een meter; nieuwe prijzen gelden voor nieuwe checkouts, en bestaande abonnementen houden de voorwaarden die ze kochten totdat jij anders beslist.
Is dit echte multi-tenancy, of accounts met featureflags?
Echte tenancy: elke klantorganisatie is een eersteklas grens in de database, met eigen gebruikers, rollen en rijen — dezelfde multi-tenant architectuur waarop Kliv zelf draait.
Beschrijf je SaaS. Kliv bouwt de rest.
Tenancy, facturering, toegangsrechten en content — één platform, één gesprek.