Kärnstacken

Frontend: WeWeb — pixelperfekt UI, ansluter till valfri backend, driftsätts på din egen domän via Cloudflare CDN.

Databas + Auth: Supabase — PostgreSQL, Row-Level Security, realtidsprenumerationer, fillagring.

Affärslogik + API: Xano — REST API-byggare, anpassad affärslogik, tredjepartsintegrationer, webhooks.

Betalningar: Stripe — prenumerationer, fakturor, webhooks tillbaka till Xano.

E-post: Resend eller SendGrid — transaktionella e-postmeddelanden utlösta av Xano.

Denna stack hanterar 10 000 MAU utan att svettas. Vi har kört den på 50 000 MAU utan infrastrukturändringar. För svenska SaaS-bolag som riktar sig mot nordiska B2B-kunder är detta en beprövad och vältestad grund.

Multi-tenancy med Supabase RLS

Varje tabell har en workspace_id-kolumn. Alla Row-Level Security-policyer filtrerar på workspace_id = auth.jwt() ->> 'workspace_id'.

Användare tillhör arbetsplatser via en workspace_members-tabell med en rollkolumn (owner, admin, member). När en användare loggar in innehåller JWT deras workspace_id och roll — Supabase tillämpar detta automatiskt på databasnivå.

Detta är det viktigaste arkitekturbeslutet i en B2B SaaS. Gör det rätt från dag 1. Vi har sett bolag som skippat detta i valideringsfasen och sedan behövt en fullständig databasmigrering när de fick sina första företagskunder — en kostsam process som App Studio gärna hjälper dig undvika.

Faktureringsarkitektur med Stripe

I Xano skapar du en webhooks-endpoint som tar emot Stripe-händelser. Hantera: checkout.session.completed (skapa prenumerationspost), customer.subscription.updated (uppdatera plan), invoice.payment_failed (begränsa åtkomst).

Lagra prenumerationsstatus i en workspace_settings-tabell. I WeWeb kontrollerar du prenumerationsstatus innan premium-funktioner renderas — och i Supabase RLS-policyer för databegränsningar.

Lita aldrig på frontenden för fakturerings-gates. Verifiera alltid i databasen. För svenska kunder som faktureras i SEK: Stripe stöder SEK-prissättning och automatisk momshantering för svenska moms (25 %), vilket förenklar redovisningen avsevärt.

Prestandaoptimering

Indexstrategi: indexera varje främmande nyckel, varje status/typ-kolumn som används i filter och varje kolumn du sorterar efter. I Supabase tar detta 2 minuter i SQL-redigeraren.

Paginering: alla listendpoints måste paginera. Returnera aldrig obegränsade frågor. Använd markörsbaserad paginering för realtidsdata (oändlig scroll) och offset för admintabeller.

Caching: Xano stöder svarscaching för endpoints som returnerar samma data för alla användare (offentligt innehåll, uppslagstabeller). Använd det aggressivt. En välcachad Xano-endpoint kan hantera tusentals anrop per sekund utan att belasta Supabase.

Övervakning och felhantering

Lägg till Sentry i din WeWeb-anpassade kod för frontend-fel. Xano loggar alla API-begäranden — exportera dem till Datadog eller använd Xanos inbyggda felövervakning.

För kritiska bakgrundsjobb (faktureringswebhooks, e-postutlösare), lägg till felnotiser till Slack via Make. Du bör veta om fel innan dina användare gör det.

Databas-övervakning: Supabase tillhandahåller insikter om frågerestanda. Granska långsamma frågor varje vecka. En vanlig orsak till prestandadegradation i tillväxtbolag är frågor som fungerar bra vid 100 rader men är katastrofalt långsamma vid 100 000 — tidig indexering eliminerar detta problem.