Building a marketplace in Bubble requires careful planning around marketplace type (product, service, or rental), two-sided data models with Listings and Transactions, trust and safety features like reviews and verification, and a payment flow using Stripe Connect. This tutorial covers marketplace strategy, architecture patterns, and implementation steps for launching a successful marketplace on Bubble.
Overview: Building Marketplace Platforms in Bubble
Marketplaces are Bubble's strongest category — companies like Comet ($800K ARR) and Flexiple ($3.8M revenue) were built on the platform. This tutorial covers the strategic and technical decisions behind building a successful marketplace: choosing your model, designing the two-sided database, building discovery and transaction flows, implementing trust mechanisms, and handling payments with commissions. This is an advanced guide for founders ready to build a production marketplace.
Prerequisites
- A Bubble account on the Growth plan or higher
- Understanding of Bubble Data Types, Workflows, and Privacy Rules
- A Stripe Connect account for marketplace payments
- Clear definition of your marketplace type (product, service, or rental)
- Familiarity with the API Connector plugin
Step-by-step guide
Design the marketplace data architecture
Design the marketplace data architecture
Go to the Data tab and create these core Data Types. User — add fields: role (Option Set: Buyer, Seller, Both), is_verified (yes/no), stripe_account_id (text), rating (number), bio (text), profile_image (image). Listing — fields: seller (User), title (text), description (text), price (number), category (Option Set), images (list of images), status (Option Set: Draft, Active, Sold, Paused), location (geographic address), created_date (date). Transaction — fields: listing (Listing), buyer (User), seller (User), amount (number), platform_fee (number), status (Option Set: Pending, Paid, Completed, Disputed, Refunded), stripe_payment_id (text). Review — fields: reviewer (User), reviewee (User), transaction (Transaction), rating (number 1-5), comment (text).
Pro tip: Use Option Sets for categories, statuses, and roles. They load instantly from cache and prevent data inconsistency from typos.
Expected result: A comprehensive data model supporting two-sided marketplace operations with transactions and reviews.
Build the listing creation and management flow
Build the listing creation and management flow
Create a page called create-listing with a multi-step form. Step 1: Category selection using large clickable cards. Step 2: Details — title, description, price inputs, and a multi-image uploader (use Bubble's File Uploader with 'Allow multiple files'). Step 3: Location — Geographic Address input with Google Maps preview. Step 4: Review and publish. Create a workflow that saves a Listing with status = Draft at each step (so progress is not lost) and changes to Active on final publish. Build a seller-listings page showing the seller's listings with status filters and edit/pause/delete actions.
Expected result: Sellers can create detailed listings with images, location, and pricing through a guided multi-step form.
Implement search, filtering, and discovery
Implement search, filtering, and discovery
Create a browse page with a Repeating Group showing active Listings. Add filter controls: a SearchBox for keyword search in title and description, Dropdown filters for category and price range, a geographic address search with distance radius for location-based filtering, and sort options (newest, price low-high, price high-low, highest rated). Use database constraints for category and status filters (these are efficient). Use geographic constraints for location-based search (Listing's location is within X miles of searched address). For text search, use the :contains operator or integrate an external search service like Algolia for better performance at scale.
Expected result: Buyers can browse, search, and filter listings by category, price, location, and keywords.
Set up Stripe Connect for marketplace payments
Set up Stripe Connect for marketplace payments
Install the Stripe plugin and configure it with your platform's Stripe keys. Set up Stripe Connect so sellers can receive payouts. Create a seller onboarding flow: when a seller first lists an item, redirect them to Stripe's Connect onboarding URL (generated via API Connector calling Stripe's Account Links endpoint). Store the returned stripe_account_id on the User record. For checkout, use the API Connector to create a PaymentIntent with transfer_data specifying the seller's Stripe account and an application_fee_amount for your platform commission (e.g., 10% of the transaction).
1{2 "payment_intent": {3 "amount": 5000,4 "currency": "usd",5 "application_fee_amount": 500,6 "transfer_data": {7 "destination": "acct_seller_stripe_id"8 }9 }10}Expected result: Payments flow from buyer to seller through your platform, with automatic commission deduction.
Build trust and safety features
Build trust and safety features
Add seller verification: create a VerificationRequest type with ID document upload, status (Pending, Verified, Rejected), and admin review workflow. Add reviews: after a Transaction is marked Completed, prompt both buyer and seller to leave reviews. Display average ratings on profiles and listings. Add reporting: a Report button on each listing and user profile that creates a Report record with reason, reported_by, and status. Build an admin moderation dashboard showing pending verifications, reports, and flagged content. Auto-hide listings with 3+ reports pending review.
Pro tip: For complex marketplace trust and safety systems including automated fraud detection and dispute resolution, consider partnering with RapidDev for expert Bubble development.
Expected result: The marketplace has verification, reviews, reporting, and admin moderation capabilities.
Set up Privacy Rules and launch preparation
Set up Privacy Rules and launch preparation
Go to Data tab → Privacy. Set rules for each type: Listings with status Active are visible to all; Draft/Paused listings only visible to the seller. Transactions are visible only to the buyer and seller involved. Reviews are public. User contact details (email, phone) are visible only to the user themselves and to counter-parties in active transactions. Test the entire flow: create seller account → onboard with Stripe → create listing → buyer finds and purchases → payment processed → review left. Monitor workload units during testing to estimate production costs.
Expected result: Privacy Rules protect sensitive data, and the full marketplace flow works end to end.
Complete working example
1MARKETPLACE PLATFORM WORKFLOW SUMMARY2======================================34DATA TYPES:5 User + role, is_verified, stripe_account_id, rating6 Listing: seller, title, description, price, category,7 images, status, location8 Transaction: listing, buyer, seller, amount,9 platform_fee, status, stripe_payment_id10 Review: reviewer, reviewee, transaction, rating, comment11 Report: reported_item, reported_by, reason, status12 VerificationRequest: user, document, status1314CORE FLOWS:15 1. Seller Onboarding → Stripe Connect → stripe_account_id16 2. Create Listing → Multi-step form → Listing (Active)17 3. Browse/Search → Filters + Search → Listing results18 4. Purchase → Stripe PaymentIntent with transfer_data19 → Transaction (Pending → Paid)20 5. Complete Transaction → Both parties confirm → Completed21 6. Leave Reviews → Create Review → Update ratings22 7. Report Content → Create Report → Admin review2324STRIPE CONNECT PAYMENT FLOW:25 Buyer pays $50 → Platform takes 10% ($5) → Seller gets $4526 API: POST /v1/payment_intents27 amount: 5000 (cents)28 application_fee_amount: 50029 transfer_data.destination: seller's acct_xxx3031PRIVACY RULES:32 Listing: Active = public, Draft = seller only33 Transaction: buyer + seller only34 Review: public35 User details: self only (except in transactions)3637SCALING CONSIDERATIONS:38 - Pagination: 15-20 items per page39 - Image optimization: compress before upload40 - Search: Algolia plugin for 1000+ listings41 - WU monitoring: Settings → MetricsCommon mistakes when going about building marketplace platforms on Bubble.io: Step-by-Step Guide
Why it's a problem: Handling payments directly between buyers and sellers
How to avoid: Use Stripe Connect to route all payments through your platform. Set application_fee_amount for your commission.
Why it's a problem: Not implementing Privacy Rules from the start
How to avoid: Set up Privacy Rules before launching. Test thoroughly with non-admin accounts to verify data access is properly restricted.
Why it's a problem: Building search with client-side filtering on large datasets
How to avoid: Use database constraints for all primary filters (category, status, price range). Only use :filtered for secondary, complex filters.
Best practices
- Use Stripe Connect for marketplace payments with automatic commission handling
- Set up comprehensive Privacy Rules before launching to protect user data
- Use database constraints instead of client-side filtering for search performance
- Implement a trust system (verification, reviews, reporting) early to build user confidence
- Start with a single marketplace category and expand after validating product-market fit
- Monitor workload units closely — marketplaces are data-heavy applications
- Use Option Sets for categories and statuses for better performance and consistency
- Build an admin dashboard for content moderation, user verification, and dispute resolution
Still stuck?
Copy one of these prompts to get a personalized, step-by-step explanation.
I want to build a two-sided marketplace in Bubble.io similar to Airbnb/Etsy. I need seller onboarding, listing creation, buyer search and purchase, Stripe Connect payments with commission, reviews, and admin moderation. Can you design the complete data model and outline the key workflows?
Help me build a marketplace platform. I need data types for Users (buyers/sellers), Listings, Transactions, and Reviews. Create listing creation, search, purchase, and review flows. Set up Stripe Connect for payments with a 10% platform commission.
Frequently asked questions
Can Bubble handle a real marketplace at scale?
Yes, up to a point. Comet and Flexiple are real businesses built on Bubble. Performance typically remains good up to 30,000-50,000 database records with optimization. Beyond that, consider hybrid architecture with an external database for search.
How much does Stripe Connect cost?
Stripe charges 2.9% + 30 cents per transaction for the standard Connect fee. Your platform fee (application_fee_amount) is on top of this and goes to your Stripe account.
Should I require seller verification before listing?
For trust-sensitive marketplaces (services, rentals), yes. For low-risk product marketplaces, you can allow listing immediately and verify sellers in the background.
How do I handle disputes between buyers and sellers?
Create a Dispute data type linked to the Transaction. Provide a dispute resolution flow where both parties submit evidence. An admin reviews and decides the outcome. Use Stripe's refund API for approved refunds.
What Bubble plan do I need for a marketplace?
The Growth plan ($119/month) is recommended for production marketplaces. It provides 250,000 workload units, 2 editors, and enough storage for listing images.
Can RapidDev help build a production marketplace?
Yes. RapidDev specializes in building complex Bubble marketplaces with Stripe Connect integration, advanced search, real-time messaging, and performance optimization for scale.
Talk to an Expert
Our team has built 600+ apps. Get personalized help with your project.
Book a free consultation