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.