Quick path
Generate two-sided flows with ShipNative, use Supabase for listings + users + orders, Stripe Connect for split payments, and Supabase Realtime for messaging. Launch into one niche and one city before going wide.
What a marketplace actually needs
A shippable marketplace MVP has two experiences sharing one codebase:
- Buyer: browse listings, search/filter, listing detail, checkout, orders history, messaging.
- Seller: create/edit listing, my listings, incoming orders, messages, payouts.
- Shared: auth, profile, reviews, reports, notifications.
The AI prompt to start with
Marketplace app for [niche: vintage furniture / wedding vendors / tutoring services]. Role-based navigation: buyer and seller. BUYER tabs: - Browse: grid of listings with search bar and category filter chips. - Listing detail: photos, price, description, seller info, Book/Buy button, message seller. - Orders: active + past orders with status. - Messages: conversations with sellers. SELLER tabs: - My listings: grid with edit/delete, create button. - Create listing: title, price, photos (up to 6), description, category. - Orders: incoming, tap to view + mark shipped. - Payouts: Stripe Connect dashboard link. SHARED: - Auth via Clerk (email + Apple). - Role-switch in profile settings. - Reviews left after order completion. - Report and block from 3-dot menu. Data in Supabase: users, listings, orders, messages, reviews. RLS by user_id. Payments via Stripe Connect Express accounts. Dark theme, orange accent. Tab navigation.
For bigger prompt structure, see PRD to App: Template, Structure, and Example Prompts.
Payments and escrow with Stripe Connect
You are running a marketplace, not a store. Money flows through you to sellers — don’t DIY this.
- Stripe Connect Express: each seller completes a short KYC flow inside Stripe-hosted pages. Stripe handles tax forms, disputes, and payouts.
- Payment flow: buyer pays full amount via PaymentIntent with
application_fee_amountset to your platform fee. Funds route automatically to the seller’s connected account. - Escrow pattern: use
on_behalf_of+ manual capture. Funds authorize on purchase, capture on delivery confirmation. - Disputes: Stripe auto-handles evidence requests. You add a report flow in-app for non-payment issues.
Trust: reviews, verification, reports
Marketplaces are bought on trust. The three lightweight mechanisms that matter:
- Two-sided reviews after order completion — buyers rate sellers, sellers rate buyers. Visible on both profiles.
- Verified seller badge after Stripe Connect KYC + 3 completed orders. Simple, visible, effective.
- Report + moderation queue. Every listing and user gets a Report option. Flagged items land in a Supabase table your ops team (or you) review within 24 hours.
Messaging without a chat stack
Use Supabase Realtime subscribed to a messages table filtered by conversation ID. Good enough for tens of thousands of users without a dedicated chat infrastructure. Add Sendbird or Stream only once your MAUs pass 50k — before that, the glue work is wasted.
The chicken-and-egg launch strategy
Marketplaces die without liquidity. The pattern that works:
- Pick one niche + one geography. “Tutors in Austin” not “tutors everywhere.” Liquidity trumps scale.
- Seed the supply side manually. Hand-recruit 20 sellers. Do their onboarding for them. Photograph their listings if you have to.
- Launch to a pre-built audience. A local Facebook group, a subreddit, a Discord server. Do not rely on App Store browse.
- Subsidize one side. Take 0% from sellers for 90 days, or give buyers a $20 credit. Fix liquidity first, margin later.
- Concentrate, then expand. Prove one city works before touching a second.
Common mistakes to avoid
- Launching nationally on day one. Pick one city.
- Building an algorithmic search before you have 50 listings. Category chips are enough.
- DIY payments. Stripe Connect exists for a reason.
- No two-sided review system. Buyers trust stars more than your copy. For growth after launch, see ASO for Indie Founders: 2026 Guide.
- Charging too early. Take 0% on the first side until the flywheel spins.