# How to go about building marketplace platforms on Bubble.io: Step-by-Step Guide

- Tool: Bubble
- Difficulty: Advanced
- Time required: 60-90 min
- Compatibility: Growth plan+ recommended for production marketplaces
- Last updated: March 2026

## TL;DR

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.

## Before you start

- 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

### 1. 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.

### 2. 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.

### 3. 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.

### 4. 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).

```
{
  "payment_intent": {
    "amount": 5000,
    "currency": "usd",
    "application_fee_amount": 500,
    "transfer_data": {
      "destination": "acct_seller_stripe_id"
    }
  }
}
```

**Expected result:** Payments flow from buyer to seller through your platform, with automatic commission deduction.

### 5. 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.

### 6. 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 code example

File: `Workflow summary`

```text
MARKETPLACE PLATFORM WORKFLOW SUMMARY
======================================

DATA TYPES:
  User + role, is_verified, stripe_account_id, rating
  Listing: seller, title, description, price, category,
    images, status, location
  Transaction: listing, buyer, seller, amount,
    platform_fee, status, stripe_payment_id
  Review: reviewer, reviewee, transaction, rating, comment
  Report: reported_item, reported_by, reason, status
  VerificationRequest: user, document, status

CORE FLOWS:
  1. Seller Onboarding → Stripe Connect → stripe_account_id
  2. Create Listing → Multi-step form → Listing (Active)
  3. Browse/Search → Filters + Search → Listing results
  4. Purchase → Stripe PaymentIntent with transfer_data
     → Transaction (Pending → Paid)
  5. Complete Transaction → Both parties confirm → Completed
  6. Leave Reviews → Create Review → Update ratings
  7. Report Content → Create Report → Admin review

STRIPE CONNECT PAYMENT FLOW:
  Buyer pays $50 → Platform takes 10% ($5) → Seller gets $45
  API: POST /v1/payment_intents
    amount: 5000 (cents)
    application_fee_amount: 500
    transfer_data.destination: seller's acct_xxx

PRIVACY RULES:
  Listing: Active = public, Draft = seller only
  Transaction: buyer + seller only
  Review: public
  User details: self only (except in transactions)

SCALING CONSIDERATIONS:
  - Pagination: 15-20 items per page
  - Image optimization: compress before upload
  - Search: Algolia plugin for 1000+ listings
  - WU monitoring: Settings → Metrics
```

## Common mistakes

- **Handling payments directly between buyers and sellers** — Direct peer-to-peer payments bypass your platform and make it impossible to take commissions, handle refunds, or mediate disputes Fix: Use Stripe Connect to route all payments through your platform. Set application_fee_amount for your commission.
- **Not implementing Privacy Rules from the start** — Without Privacy Rules, sensitive data like seller revenue, buyer contact info, and draft listings are accessible to anyone Fix: Set up Privacy Rules before launching. Test thoroughly with non-admin accounts to verify data access is properly restricted.
- **Building search with client-side filtering on large datasets** — Using :filtered on search results processes every record in the browser, becoming extremely slow with hundreds or thousands of listings Fix: 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

## 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.

---

Source: https://www.rapidevelopers.com/bubble-tutorial/building-marketplace-platforms-bubble
© RapidDev — https://www.rapidevelopers.com/bubble-tutorial/building-marketplace-platforms-bubble
