Marknadsplatsens stack

För en tjänste- eller produktmarknadsplats: - Frontend: WeWeb (webb) + FlutterFlow (mobil, vid behov) - Databas: Supabase (PostgreSQL med RLS) - API: Xano (bokningslogik, tillgänglighet, sökning, aviseringar) - Betalningar: Stripe Connect (marknadsplatsutbetalningar) - Sökning: Supabase fulltext-sökning eller Algolia - Automatisering: Make (bekräftelsemejl, aviseringar, tvistflöden)

För en svensk marknadsplats bör du överväga att även integrera Klarna Checkout för konsumentvänliga betalningar, Klarna är standard på den svenska marknaden och ökar konverteringen markant jämfört med kortbetalning.

Databasschemat

Kärntabellerna för en tjänstemarknadsplats:

listings-tabellen: id, seller_id, title, description, category, price_cents, currency (standard 'sek' för Sverige), images, location, is_active, created_at.

bookings-tabellen: id, listing_id, buyer_id, seller_id, status (pending/accepted/completed/disputed), amount_cents, stripe_payment_intent_id, created_at.

reviews-tabellen: id, booking_id, reviewer_id, rating, body, created_at.

För en svensk marknadsplats, lägg alltid till ett consent_gdpr-fält och en data_processing_accepted_at-timestamp på users-tabellen. Det är ett krav för GDPR-efterlevnad och underlättar revisioner.

Sökning och discovery

För de flesta marknadsplatser är Supabase fulltext-sökning tillräcklig vid lansering. I Xano:

GET /api/listings/search Parametrar: query (text), category, min_price, max_price, location Logik: Använd Supabase to_tsvector() fulltext-sökning på title + description, kombinera med kategori- och prisfilter.

För svenska marknadsplatser med geografisk sökning (hitta leverantörer nära mig) rekommenderar vi PostGIS-tillägget i Supabase för geo-koordinatbaserade sökningar. Det är kritiskt för tjänstemarknadsplatser inom städning, hantverk och transport.

För större kataloger (10 000+ listor) lägg till Algolia. WeWeb Algolia-plugin gör kopplingen enkel.

Stripe Connect för marknadsplatsbetalningar

Marknadsplatsbetalningar använder Stripe Connect, säljare har Stripe-konton, köpare betalar via din plattform och Stripe hanterar uppdelningen.

Flöde: 1. Säljare onboardar: omdirigera till Stripe Connect Express-onboarding. Lagra deras stripe_account_id i din databas. 2. Köpare betalar: skapa ett Stripe PaymentIntent med application_fee_amount (din avgift). Betalningen går till säljarens Stripe-konto minus din avgift. 3. Utbetalning: Stripe betalar automatiskt ut till säljarens bankkonto löpande.

Implementera detta i Xano: POST /api/bookings/payment-intent returnerar client_secret för WeWeb-betalningsformuläret. Stripe stöder SEK-transaktioner och är godkänt av Finansinspektionen.

Säljares onboarding och dashboard

Säljarupplevelse: 1. Registrering → slutför Stripe Connect-onboarding 2. Skapa listor (titel, beskrivning, bilder, pris, tillgänglighet) 3. Hantera bokningar (acceptera/avvisa förfrågningar, visa bokningskalender) 4. Spåra intäkter (totalt utbetalt, väntande utbetalningar, bokningshistorik) 5. Hantera recensioner

Allt detta byggs i WeWeb kopplat till Xano API-endpoints. Säljar-dashboarden lägger vanligtvis till 2–3 veckor till en MVP-scope.

Lanseringschecklista

Innan du lanserar en marknadsplats: ☑ RLS-policyer på alla tabeller (köpare kan inte se andra köpares privata data, säljare kan inte se varandras stripe_account_id) ☑ Stripe webhook-handler för betalningshändelser (bekräftelse, tvister, återbetalningar) ☑ E-postaviseringar för alla bokningsstatusändringar (Make-automatisering) ☑ Admin-dashboard för tvistlösning ☑ Villkor, integritetspolicy och GDPR-samtycke (obligatoriskt i Sverige) ☑ Tillgänglighetstest (WCAG 2.1 AA), allt fler svenska upphandlingar kräver detta ☑ Lasttest med 100 samtida användare innan lansering

Ett vanligt misstag: att lansera utan admin-dashboarden. Inom den första veckan av en live-marknadsplats kommer du att behöva lösa en bokningstvist manuellt.