SolidDeploy
Kennisbank

Een Supabase-account maken, en wat je ermee kunt

Een database, inloggen, bestandsopslag en een API waar je automations op kunnen draaien, in een half uur opgezet. Van account tot werkende sleutel, met de plekken erbij waar het misgaat.

10 minuten · wat technische kennis handig, niet nodig

Geschreven door Job Lenselink Oprichter van SolidDeploy ·

Bijna elke automation die wij bouwen heeft ergens een plek nodig waar gegevens blijven staan: de leads uit een formulier, de uitslagen van een scan, de voorraadstanden van gisteren, de antwoorden van een AI-agent. Een Google Sheet redt het tot een paar duizend regels, daarna niet meer.

Supabase is die plek. Het is een gewone PostgreSQL-database met een dashboard eromheen, en met alles wat je normaal zelf zou moeten bouwen er al bij: inloggen, bestandsopslag, een API die vanzelf meegroeit met je tabellen, en kleine stukjes servercode. Je hoeft geen server te beheren, je hoeft geen database te installeren, en je zit niet vast: onderaan draait gewoon Postgres, dus je kunt er altijd mee weg.

Waarom wij het gebruiken. Een klantportaal, een dashboard of een automation die iets moet onthouden, staat bij ons meestal op Supabase. Niet omdat het het populairst is, maar omdat het in een middag staat en omdat de database van de klant zelf blijft: één export en alles staat ergens anders. Precies om die reden raden we het ook aan als je het zelf bouwt.

Wat je ermee kunt

Supabase is geen database met wat extra’s; het zijn zes bouwstenen die je los kunt gebruiken. Je hoeft ze niet allemaal aan te zetten.

BouwsteenWat het isWaar wij het voor inzetten
Database PostgreSQL, met een tabelweergave in de browser en een SQL-venster Leads, orders, voorraadstanden, meetreeksen: alles wat je later wilt filteren of optellen
API Elke tabel is meteen als REST- en GraphQL-adres beschikbaar, zonder dat je iets bouwt Een automation die een rij wegschrijft of ophaalt, zonder tussenlaag
Auth Inloggen met e-mail, magic link, Google of Microsoft, inclusief wachtwoordherstel Klantportalen: iedere klant ziet alleen zijn eigen cijfers
Storage Bestandsopslag met dezelfde rechten als je tabellen Productfoto’s, gegenereerd beeld, PDF-rapportages, facturen
Edge Functions Kleine stukjes servercode die op een adres draaien Een webhook opvangen, een berekening doen die niet in de browser hoort
Realtime en vector Wijzigingen die live doorkomen, en zoeken op betekenis in plaats van op woorden Een dashboard dat vanzelf bijwerkt; een AI-agent die je eigen documenten kan raadplegen

De combinatie is wat het bruikbaar maakt. Een scan die een uitslag opslaat, een portaal waar de klant die uitslag terugziet, en een agent die op basis van diezelfde gegevens advies geeft: dat zijn drie dingen op één fundament, niet drie losse systemen.

Wat het kost

Beginnen is gratis, en dat is geen proefperiode maar een plan dat blijft bestaan. De grenzen op het gratis plan, stand augustus 2026:

  • 500 MB database en 1 GB bestandsopslag;
  • 5 GB dataverkeer per maand;
  • twee actieve projecten per account;
  • geen back-ups.

Let op de pauzeknop. Een gratis project dat een week lang geen enkele aanroep krijgt, wordt automatisch gepauzeerd. Je gegevens blijven staan, maar het project is offline tot je het met de hand weer aanzet. Voor proberen is dat prima; voor iets waar een klant op wacht, niet. Draait het echt, neem dan het betaalde plan.

Kloppen deze getallen nog? Controleer ze op supabase.com/pricing, want prijzen en grenzen bewegen.

Een account en een project maken

1

Maak een account aan

supabase.com

Ga naar supabase.com en klik op Start your project. Je meldt je aan met GitHub of met een e-mailadres. Heb je GitHub, kies dat: je hebt het later toch nodig zodra je code gaat uitrollen, en het scheelt een wachtwoord.

2

Maak een organisatie

Dashboard → New organization

Een organisatie is de map waar je projecten en je facturatie in zitten. Geef hem de naam van je bedrijf, niet je eigen naam: collega’s uitnodigen gaat per organisatie, en je wilt dat later niet omzetten.

3

Maak je eerste project

Dashboard → New project

Drie dingen die je hier invult en die je niet zomaar terugdraait:

  • Naam. Eén project per toepassing, niet één project voor je hele bedrijf. Scheiden is later niet meer te doen.
  • Databasewachtwoord. Dit is het wachtwoord waarmee je rechtstreeks op de database komt. Zet het meteen in je wachtwoordbeheerder; Supabase laat het je daarna niet meer zien. Kwijt is niet erg, je kunt het opnieuw instellen, maar dan moet elke verbinding die het gebruikt ook bij.
  • Regio. Kies Frankfurt (eu-central-1) als je klanten in Nederland zitten. Elke aanroep gaat heen en terug; een database in Virginia kost je per aanroep tientallen milliseconden die je nergens meer terugwint. En het scheelt een gesprek over waar de gegevens staan.

Het opzetten duurt een minuut of twee. Daarna sta je in het dashboard van je project.

De sleutels: welke er zijn en waar ze horen

Dit is het deel waar het misgaat, dus lees het even goed. Supabase geeft je twee soorten sleutels, en het verschil is niet technisch maar praktisch: de ene mag iedereen zien, de andere niemand.

4

Haal je API-sleutels op

Project → Settings → API Keys

SleutelHerken je aanWaar hij hoort
Publishable sb_publishable_… In je website, je app, je JavaScript. Mag gewoon zichtbaar zijn; wat iemand ermee kan, bepaal jij met de rechten op je tabellen (zie de volgende stap).
Secret sb_secret_… Alleen op een server, in een Edge Function of in een automation. Deze sleutel gaat langs alle rechten heen en mag álles.

Zie je in plaats daarvan anon en service_role staan, in de vorm van lange JWT-strings? Dan kijk je naar de vorige generatie sleutels. Ze doen hetzelfde: anon hoort bij publishable, service_role bij secret. Nieuwe projecten krijgen de nieuwe soort.

De secret-sleutel hoort nooit in een browser. Niet in je frontend, niet in een JavaScript-bestand, niet in een openbare repository. Hij negeert alle regels die je hebt ingesteld: wie hem heeft, kan elke rij in je database lezen, wijzigen en verwijderen. Is hij toch ergens beland waar hij niet hoort, draai hem dan meteen om in ditzelfde scherm.

5

Zet Row Level Security aan

Project → Table Editor → per tabel

Row Level Security (RLS) bepaalt per rij wie wat mag. Zonder RLS is een tabel met de publishable-sleutel voor iedereen leesbaar, en die sleutel staat in je website. Dat is niet een instelling die je vergeet, dat is de instelling.

De volgorde die wij aanhouden: RLS aan bij het aanmaken van elke tabel, daarna pas regels toevoegen voor wat wél mag. Bijvoorbeeld: een ingelogde gebruiker mag alleen de rijen zien waar zijn eigen id in staat. Supabase waarschuwt in het dashboard als een tabel openstaat; neem die waarschuwing serieus.

6

Maak een persoonlijke toegangstoken

Account → Access Tokens

Naast de sleutels van een project bestaat er een token voor jóu: een personal access token. Die heb je nodig zodra je iets buiten het dashboard om doet, bijvoorbeeld met de Supabase CLI, met de Management API of vanuit een AI-assistent die je projecten mag beheren.

Je maakt hem aan op supabase.com/dashboard/account/tokens. Geef hem een naam waaraan je later ziet waar hij voor is, bijvoorbeeld cli-laptop-job.

Deze token is jouw account. Hij heeft dezelfde rechten als jij: alle organisaties, alle projecten. Dus niet in een script dat op een server draait, en niet delen met een leverancier. Gebruik voor een automation een secret-sleutel van het project in kwestie; dan reikt de schade nooit verder dan dat ene project.

Controleren of het werkt

Maak in de tabelweergave een tabel test met één tekstkolom naam, zet er een rij in, en haal die op met de publishable-sleutel. In een terminal:

curl "https://JOUW-PROJECT.supabase.co/rest/v1/test?select=*" \
  -H "apikey: sb_publishable_XXXX" \
  -H "Authorization: Bearer sb_publishable_XXXX"

Krijg je je rij terug, dan staat alles. Krijg je een lege lijst terwijl er wel een rij in staat, dan doet RLS zijn werk en heb je nog geen regel die het lezen toestaat. Krijg je een foutmelding over de sleutel, dan staat het adres van je project verkeerd: dat vind je in hetzelfde scherm als de sleutels.

Waar je sleutels bewaart

PlekPublishableSecretPersonal access token
Website of appJaNooitNooit
Server, Edge Function of automationMagJa, als omgevingsvariabeleNee
Je eigen laptop (CLI)MagLiever nietJa
Git-repositoryMagNooitNooit

De regel die je onthoudt: alles wat met sb_secret_ of met een persoonlijke token begint, staat in een omgevingsvariabele en nergens anders.

Vijf valkuilen

  • Het gepauzeerde project. Een week niets gedaan op het gratis plan en je automation krijgt geen antwoord meer. Zet er een aanroep per dag op, of neem het betaalde plan.
  • De vergeten RLS. Een tabel zonder regels met een sleutel die in je website staat, is een open deur. Standaard aanzetten, altijd.
  • Het databasewachtwoord dat niemand meer heeft. Je kunt het opnieuw instellen, maar elke koppeling die het gebruikt valt dan om. Bewaar het bij het aanmaken.
  • Geen back-up op het gratis plan. Draait er iets van waarde op, zorg dan zelf voor een export, of neem een plan waar back-ups bij zitten.
  • De verkeerde poort bij een directe verbinding. Verbind je vanuit een script rechtstreeks met Postgres, gebruik dan de connection pooler uit het dashboard en niet de directe verbinding. Anders loopt het aantal verbindingen vol zodra er meer dan één ding tegelijk draait.

Veelgestelde vragen

Wat is Supabase precies?

Een PostgreSQL-database in de cloud, met een dashboard en een aantal ingebouwde onderdelen eromheen: inloggen, bestandsopslag, een automatisch gegenereerde API en kleine stukjes servercode. Je krijgt de bouwstenen van een applicatie zonder dat je een server beheert.

Is Supabase gratis?

Er is een gratis plan met 500 MB database, 1 GB opslag en twee projecten, en dat blijft gratis. De belangrijkste beperking is niet de omvang maar de pauze: een project dat een week stil ligt, wordt uitgezet tot je het weer aanzet.

Wat is het verschil tussen de publishable- en de secret-sleutel?

De publishable-sleutel mag iedereen zien en is bedoeld voor je website of app; wat er dan mag, bepaal je met Row Level Security. De secret-sleutel gaat langs die regels heen en hoort alleen op een server te staan. In oudere projecten heten ze anon en service_role.

Waar maak ik een token aan voor de CLI of een AI-assistent?

Onder je account, bij Access Tokens, niet bij een project. Zo’n personal access token heeft dezelfde rechten als jijzelf, dus gebruik hem alleen lokaal en nooit in een script dat ergens draait.

Kan ik later weg bij Supabase?

Ja, en dat is een van de redenen dat wij het aanraden. Onderaan draait standaard PostgreSQL: je maakt een dump en zet die bij een andere partij of op je eigen server terug. Wat je opnieuw moet inrichten zijn de onderdelen eromheen, zoals het inloggen en de opslag.

Kan ik Supabase aan mijn bestaande systemen koppelen?

Ja. Elke tabel is meteen als API beschikbaar, dus een automation die uit je webshop, je marketplace of je ERP leest, kan er direct naartoe schrijven. Dat is precies waar wij het meestal voor gebruiken.

← Terug naar de kennisbank
Job Lenselink

Benieuwd of ons Automation Eco-System bij jouw bedrijf past?

In een vrijblijvend gesprek brengen we in kaart welke systemen jouw business nodig heeft.

Gratis 1-op-1 call met Job Lenselink