Vad är Postgres och Supabase, och vad är det vi köper?

Olle Krantz

Postgres är en öppen databas, och Supabase är en tjänst ovanpå den som lägger till inloggning, ett färdigt gränssnitt mot databasen och fillagring. Det ni bör se till är att databasen ligger i ert eget konto, i EU, och att ni vet vilka Supabase-specifika delar som används. Då är Supabase en bekvämlighet, inte ett lås, eftersom Postgres-data går att flytta.

Två namn som ofta blandas ihop

När ett system ska byggas hör ni ofta ”vi kör Postgres på Supabase”. Det låter som en sak men är två, och det är bra att förstå skillnaden, eftersom den avgör vad ni äger och hur lätt det är att byta.

Postgres: databasen

PostgreSQL, kallat Postgres, är en databas. Den lagrar data i tabeller och svarar på frågor ställda i SQL. Den är öppen källkod, har funnits länge och används av många, så det finns gott om utvecklare som kan den. En Postgres-databas går att flytta mellan leverantörer, eftersom formatet är detsamma överallt.

Postgres har dessutom tillägg. Ett av dem, pgvector, gör att samma databas kan lagra sökindex för AI, så att ni inte behöver en separat tjänst. Se Vad är RAG?.

Supabase: tjänsten runt databasen

Supabase är en tjänst som bygger på Postgres och lägger till det de flesta applikationer ändå behöver: inloggning av användare, ett färdigt programmeringsgränssnitt mot databasen och fillagring. Ni får en hanterad Postgres-databas utan att själva sköta servrar, och ni väljer region, vilket gör det möjligt att hålla data i EU.

Det Supabase tillför är alltså tid: ni slipper bygga och driva inloggning och drift från grunden. Det ni vill vara noga med är att databasen ligger i ert konto och inte hos en konsult.

Vad det betyder för er

  • Datan ligger i Postgres. Det är ett öppet format. Ni kan flytta den om ni vill byta tjänst eller driva databasen själva.
  • Supabase är en bekvämlighet, inte ett lås. Det ni bygger ovanpå använder vanliga Postgres-funktioner, och det mesta går att ta med sig. Kontrollera ändå vilka Supabase-specifika delar, som inloggningen, som systemet använder, så att ni vet vad ett byte skulle kräva. Se Kan vi äga ett eget system utan en egen utvecklare?.
  • Regler i databasen. Postgres kan upprätthålla vem som ser vilka rader direkt i databasen, vilket är en extra spärr utöver koden.
  • Kostnaden följer användningen. Räkna på er egen volym och kontrollera aktuella priser hos leverantören, eftersom de ändras.

Varför vi använder det

Vi bygger på TypeScript, Next.js, Supabase med EU-region och Vercel, vilket vi beskriver på sidan om skräddarsydda system. Skälet är att det är beprövat, öppet och ger oss ett första produktionssatt steg på några veckor. Det är samma grund som Altu Central Command bygger på.

Frågor att ställa när någon föreslår det för er

  1. Ligger databasen i vårt konto och i EU?
  2. Vilka Supabase-specifika funktioner används, och vad skulle det kosta att byta?
  3. Hur tas säkerhetskopior, och kan vi återställa själva?
  4. Vem har administratörsåtkomst, och hur många från vår sida?

Behöver ni hjälp att bedöma en teknikplan ni fått? Hör av er.