TL;DR: A two-sided marketplace has to work for buyers and sellers at once. Choose a platform by how it handles seller payouts and changes after launch, and budget for a monthly plan plus per-transaction fees. Launch the smallest version that lets both sides complete a transaction, then build trust with reviews and privacy rules before you invite real users.
A marketplace app is one of the most popular app ideas, and one of the hardest to get off the ground. The idea is simple enough: Connect buyers and sellers and take a cut of each sale.
A two-sided marketplace, where buyers and sellers both participate independently, is more complex than a standard app because you’re building for two different people at once. Your platform has to work for both sides, or it works for neither.
If you’re ready to build a two-sided marketplace, start by weighing your platform options and costs. Then you’ll build a marketplace step by step, from the database and search page to seller tools, payments, reviews, and messaging.
What is a marketplace app?
A marketplace app like Etsy, Airbnb, or Upwork connects independent buyers and sellers so they can find each other and transact, and the platform usually earns a commission or fee on each sale.
Unlike an e-commerce store, where one business sells its own products, the platform owner usually doesn’t sell anything directly. They build the search, payments, and other tools that make each sale possible, much like running a mall instead of a store. Some marketplaces, such as Amazon, do both by selling their own inventory alongside third-party sellers.
When a marketplace gets traction, it benefits from network effects because more sellers attract more buyers, which attracts more sellers.
One-sided vs. two-sided marketplaces
Marketplaces fall into two broad categories:
- One-sided marketplaces: The platform manages the supply and listings centrally. The RealReal and Toptal work this way.
- Two-sided marketplaces: Sellers create profiles, manage their own inventory, set prices, and talk to buyers, while the platform provides the tools. Airbnb and Upwork work this way.
How marketplace apps make money
Most marketplaces combine one or more of these revenue models:
- Commission per transaction: The platform keeps a percentage or fee from each sale, so you earn more when your sellers do.
- Listing fees: Sellers pay to post each item, which works for high-value listings like vehicles or rentals.
- Seller subscriptions: Sellers pay monthly for access or premium tools, which makes your revenue more predictable.
- Featured listings: Sellers pay to appear at the top of search results.
Unlike commission, the other three models ask sellers to pay before they’ve made a sale, so they work best once your marketplace has steady buyers.
Examples of marketplace apps
The best-known marketplaces each solve a trust problem between strangers:
- Product marketplaces: Amazon Marketplace lists third-party sellers alongside Amazon’s own inventory, eBay supports auctions and fixed-price listings, and Etsy is known for handmade and vintage goods.
- Service marketplaces: Uber matches drivers with riders, and TaskRabbit connects people with local help.
- Digital and freelance marketplaces: Fiverr connects businesses with freelancers and holds payment until the work is delivered.
Each of these started with one niche and a short list of features.
What features does a marketplace app need?
Most marketplaces eventually need these seven core features. You can launch with fewer, but each one has to work for both sides:
- User authentication and profiles: Buyers and sellers get separate account types, each with its own permissions.
- Search and filtering: Buyers find what they want with keyword search, filters, and sorting.
- Listing management: Sellers add products, photos, and prices, and keep their inventory current.
- Secure payments: Each payment splits into the seller’s payout and your fee. Most marketplaces use a provider like Stripe, which also handles refunds, disputes, and tax forms.
- Reviews and ratings: Reviews help buyers trust sellers they don’t know, and limiting them to completed orders keeps them honest.
- Messaging and notifications: Buyers and sellers can talk directly, and automated emails keep everyone updated on orders and promotions.
- Admin tools: You’ll need a way to review listings, settle disputes, and remove bad actors on either side.
Start with a focused MVP
The fastest way to stall is to build every feature before anyone uses your marketplace. Start with one niche and the one transaction it exists for, and talk to a handful of sellers and buyers before you build. Your MVP only needs enough to complete that transaction safely, and everything else can wait until users ask for it.
This tutorial walks you through building each of these, from search and seller tools to payments, reviews, and messaging. First, though, you’ll need to decide where to build.
How to choose a platform for your marketplace app
Before you build, decide where your marketplace will live. The marketplace app builder or approach you pick shapes how far you can customize it and whether you can change it yourself as you grow.
Platform details last checked October 2026.
Marketplace-specific builders like Sharetribe
Sharetribe starts you with the pieces most marketplaces share: listings, profiles, search, and transaction flows with payments. If your marketplace follows a common model, it’s often the quickest way to launch.
You can customize its data, transactions, and bookings, but if your marketplace works differently from the usual models, expect extra setup or a need for a developer.
Traditional no-code tools like Softr and FlutterFlow
Softr builds portals and client-facing apps on top of data you already keep, like an Airtable base or a Google Sheet, and it can take Stripe payments. FlutterFlow focuses on mobile and web apps and usually connects to a backend like Firebase or Supabase for server-side logic.
Both let you shape your screens visually, but neither pays out sellers out of the box. Softr’s Stripe integration handles direct payments and subscriptions, and FlutterFlow builders typically add Stripe Connect with custom cloud functions.
Frontend-backend combinations like WeWeb with Xano
Some builders pair a visual frontend like WeWeb with a backend like Xano, which handles the database, APIs, and server-side logic. It’s a flexible setup for builders who think in APIs, and many still use it even though WeWeb now has its own backend builder.
The trade-off is running two separate services and keeping them connected, so when something breaks, you troubleshoot across both.
AI coding tools
AI coding tools generate a working app from your prompts. They’ve inspired millions of people to start building, they get a first version up fast, and most let you adjust screens visually.
The logic and data are still code, though. To change how payouts work or who sees an order, you re-prompt or edit the code yourself, which gets harder as your marketplace grows.
Custom development
Hiring developers or an agency gets you a fully custom build, which some marketplaces need once they’re large. It’s usually slower and costs more upfront, and every change after launch goes through your engineers. That’s a big bet if you’re still testing the idea.
Questions to ask before you choose
Look past how quickly you can launch. These questions show how a platform will hold up once buyers and sellers depend on it:
- How does it handle split payments? Paying sellers minus your commission is the feature most marketplaces can’t launch without. Check whether you can set up a provider like Stripe Connect yourself or whether it takes a developer and custom code.
- Can you decide who sees what? Buyers shouldn’t see each other’s orders, and sellers shouldn’t see each other’s customers. Look for access rules you can read back later to confirm they’re right.
- Can you change a core feature yourself six months after launch? Picture a seller asking for a new pricing option. If you can’t see how your app handles pricing well enough to change it, you’ll wait on someone else every time your business shifts.
- What happens when you grow? Find out whether hosting, scaling, and mobile are included or whether each one means another vendor and additional expense.
How much does it cost to build a marketplace app?
The cost of a marketplace app comes down to what it costs to build and what it costs to run every month, plus payment processing fees on every transaction.
What drives the cost of a marketplace
Most of your costs come from a few predictable places:
- Platform subscription: Your plan often decides whether you can go live, how much traffic your app can handle, and whether it can run scheduled tasks, so price out the plan you’ll launch on.
- Developer time: Engineers or an agency usually cost the most, and you keep paying them for every fix and feature after launch.
- Third-party services: Email, SMS, maps, and premium plugins each add to your monthly bill.
- Your own time: Building it yourself costs hours instead of dollars, and a platform you understand well keeps those hours down.
Payment processing and platform fees
Marketplace payment providers split each sale between the seller and you. They also take a cut, usually a percentage plus a small fixed fee. Depending on the pricing model, Stripe Connect may add fees per connected seller account or payout, so check Stripe’s Connect pricing page for current rates.
If you charge sellers 10%, run the numbers on a typical order to see how much of that you keep after fees.
What it costs to build a marketplace on Bubble
On Bubble, getting started is free. Generating an app with the Bubble AI Agent doesn’t use AI credits (up to a monthly limit), and neither does editing in the visual editor. Building or editing with the Agent draws on a monthly AI credit allowance that comes with every plan, and you can always make changes by hand instead.
You’ll need a paid plan to go live. Starter Web is $29/month billed annually or $32/month billed monthly until October 20, 2026, when it moves to $32 and $39. Buy the annual plan before then to keep $29/month for a year.
Every plan includes a built-in database, and paid plans add hosting and the backend workflows Part 2 uses. Payment provider fees are separate, and the pricing page has the full breakdown.
Why build your marketplace app on Bubble?
Bubble is the fully visual app builder where you can build software, understand every part of it, and control every detail without code. Every layer of your marketplace, including the logic, data, and privacy rules, is visual and editable. You can build with AI without giving up control, and you’ll know your marketplace well enough to change it as your business changes.
Start with a planning session with the Bubble AI Agent
Describe your marketplace idea to the Agent, and it starts with a planning session, asking clarifying questions and drafting a blueprint you can refine before it generates the design, database, and workflows. As it builds, it shows what it’s about to do and explains what it built in plain language, and you learn how your marketplace works as you go.
From there, you can keep chatting with the Agent or work directly in the visual editor. Use AI when it helps, or edit by hand when you want precision.
See and change every part of your marketplace
Workflows read as steps you could say out loud: “When a buyer clicks ‘Follow,’ create a Follow record, then add the shop to their list.” When a seller asks for a new feature, you can open the workflow, see exactly what it does, and change it the same day.
Your database is visible too, with every shop, product, and order in view. With privacy rules, you decide who sees what in your app, down to each field. That matters in a marketplace, where buyers and sellers each trust you with their own data.
Grow on web and native mobile from one platform
Many marketplace buyers arrive on their phones. With Bubble for native mobile apps, you build iOS and Android apps in the same editor and database as your web app, then publish to both app stores from the editor.
In-app purchases (beta) cover subscriptions only. Marketplaces selling physical goods or services typically use Stripe instead, but check each app store’s rules for your model.
Hosting and auto-scaling come with paid plans, so the marketplace you launch is the one you keep growing.
Marketplaces built on Bubble
Bubble apps transact more than $1 billion a year, and these marketplace stories show what that looks like up close:
- Ohana: The sublease marketplace generated $16.2 million in host earnings in its first 14 months. “Bubble gives us an advantage because anybody can go in and easily understand what’s going on,” says co-founder Ezra Gershanok.
- BuyTicket: The Brazilian ticket resale marketplace reached 20,000 users in its first week. “On Bubble, you can change features fast and learn in less time than a traditional platform,” says co-founder Gustavo Celso.
- EqualReach: The marketplace for refugee and displaced professionals launched its MVP in three months and created more than 100 jobs in its first year. “If there’s a quick UI fix needed on the platform, I can jump into Bubble and update it right away,” says Product Lead Olena Voloshyna.
Part 1: Building your marketplace search page
Over the next three parts, you’ll walk through a bookseller marketplace built on Bubble. We’re showing a manual build so you’ll know how the database, pages, and workflows should fit together when the Agent builds them for you, and you can spot anything you want to change. Describe your marketplace to the Agent, and it will generate an app with similar logic that you can review and refine yourself.
1. Set up your database structure
Go to the data tab. Under the data types subtab, create two custom data types: “Shop” and “Product.” Then add the following custom fields:
Shop:
- Name (text): The shop’s display name, shown on every product it sells.
Product:
- Name (text): The book title. Keyword search will match against it.
- Description (text): A short summary that helps buyers decide whether to click.
- Price (number): Storing it as a number lets you filter by price range and format it as currency.
- SellerShop (Shop): Links each product to the shop that sells it, which is what makes your marketplace two-sided.
Next, define your product data type further using static options. From the option sets subtab, create three new option sets:
Book Genre:
- Fantasy
- Romance
- Thriller
Book Format:
- Digital
- Audiobook
Book Type:
- Novel
- Comic Book
- Short Stories
Three distinct options per set make it easy to test that each filter works. Add more if you like, but each one adds to the filters and metadata you display later.
Now go back to your product data type and add your option sets to its structure. Click Create a new field and select each option set you created from the Field type dropdown. To keep it simple, match the Field name to the Field type.
Your database structure is ready.
2. Add sample data
Sample data is useful for testing and demoing, and it becomes critical when you add more complex features.
To add it, go to the app data subtab in the data tab and click New entry to add your own. Vary your products so search and filters are easier to test.
3. Build the marketplace search page
Create a new page called “search” from the page dropdown. Double-click on the page to open the property editor and set the Container layout to Column.
Set up your page skeleton. Open the component library from the toolbar at the top of your editor and drag in a header and footer.
Then add a blank group to the left-hand side for your main content. Change its layout to Row, and uncheck Make this element fixed-width.
As you work, rename your elements to keep them organized.
Now build the main search page content. Rename the row group “G Dashboard” (Group Dashboard).
Then add a new group and name it “G Filters.” You can add a Background style from the dropdown so it stands out on the page.
Next to your G Filters group, add a repeating group and rename it “RG Products” (Repeating Group Products). Give it the following settings:
- Layout: Uncheck Make this element fixed-width so that it expands to its parent container, and set the cell’s Container layout to Column to give it a top-to-bottom layout.
- Appearance: Set Type of content to “Product” and Data source to “Do a search for Products.” This tells the repeating group to show one cell for every product in your database.
Now add a text element. Under Layout, uncheck the box for fixed-width and make the Min height 5px. From Appearance, click Insert dynamic data to create the dynamic expression “Current cell’s Product’s Name.”
You’ll add several more text elements to this repeating group. You can copy and paste the first text element to keep the settings the same. Add one dynamic expression to each:
- “Current cell’s Product’s Description”: The book’s summary.
- “Current cell’s Product’s Price: formatted as Currency”: The price with a currency symbol.
- “Current cell’s Product’s SellerShop’s Name”: Who’s selling each book, pulled from the linked Shop.
- “Current cell’s Product’s Genre’s display”: The genre label. The display part turns the option set value into readable text.
- “Current cell’s Product’s Format’s display”: The format label.
- “Current cell’s Product’s Type’s display”: The type label.
Lastly, select all the content in your repeating group cell, right-click, and group the elements into a row container. Then drop a new group to the right.
Drag an icon into this group and select a heart. Then add a button and label it “Add to cart.” Adjust the spacing and alignment to match your preference.
To fix the repeating group only showing a set number of products, uncheck the Set fixed number of rows option on the repeating group.
4. Set up filters
Add a way for users to filter their search by adding the following elements to the G Filters group:
- One input: For searching by title or keyword.
- One slider: For setting a maximum price.
- Four radio buttons: One each for genre, format, type, and shop, so buyers pick one option per filter.
- One button: For clearing every filter at once.
You can also add text elements to label your filters. Add the first text element and adjust its min and max width and height settings, then duplicate it for each label.
Now tackle each input one by one.
Search bar input: There’s nothing to program here. Users only need to type into it.
Slider input: Adjust the label to include dynamic data. After “Price filter,” insert the dynamic expression “SliderInput A’s value:formatted as $.”
Then set the Min and Max values to 0 and 100 and the Step to 5 to make the slider less granular. Lastly, set the Default value to your max price so your app shows all products and all prices by default.
Radio buttons: For the Genre radio button, select Dynamic Choices under Choices style, and select Book Genre for Type of choices. Make the Choices source “All Book Genre” and the Option caption “Current option’s Display.”
Do the same for the Book Format and Book Type radio buttons.
The Shop radio button is slightly different, since it displays dynamic data (sellers) instead of option sets. Select Shop for Type of choices. Make the Choices source “Do a search for Shops” and the Option caption “Current option’s Name.”
Button: For now, label it “Clear Filters” and center it or adjust its width and height as needed. You’ll revisit it later.
Your filters are ready. Now connect everything together.
5. Connect filters to the repeating group
Modify the Data source for your RG Products repeating group. Earlier, you made it a straightforward database search. If you click the dynamic expression, you can add constraints to this search that reference each filter.
Start with Genre. Add a new constraint to the database search and set Genre = “RadioButtons A’s value.”
If you preview your app to test it, you may not see anything in the repeating group anymore. This is expected, and the fix is quick.
Go back to the Data source expression and check the Ignore empty constraints box. Now, if any of your inputs are empty, the database search won’t apply that filter.
Apply the same logic to the other radio buttons. Add a constraint that sets each field to be equal to that radio button element’s value.
Add “Price ≤ SliderInput A’s value” as a constraint. This way, only products with a price equal to or below the slider input’s value appear.
Lastly, add another constraint for your search input: “Name contains keyword(s) Input A’s value.” Allen uses “contains keyword(s)” instead of “contains” to create a more flexible, word-based search. The two operators match text differently, and the linked manual entry explains how.
Your search and filtering functionality is now set up.
6. Implement the “Clear Filters” button functionality
Select the button you added to the bottom of the G Filters group and click Add workflow.
In the workflow tab, add one action to the new workflow. Under Element actions, select Reset a group/popup, then choose the G Filters group.
If you preview your app, you should have a fully functioning search page. Customers can browse products, search for specific titles, and filter results.
7. Optional design enhancements
You’ve completed the functionality for Part 1. Here are a few additional customizations to consider:
- Add white space between the design and page edges so the page is easier to scan.
- Add an image next to each product listing. Add an image field to the Product data type for book covers.
- Customize the font and styles in the repeating group so your marketplace looks like your brand.
- Add elements to the header, like a cart icon, a login button, or a “Sell on our marketplace” link, to give each side of your marketplace a clear entry point.
Part 2: Adding backend workflows
You don’t have to build this by hand. Ask the Agent to set up the follow feature and scheduled emails, then fine-tune any step in the visual editor.
See what the Agent can build →
1. Update the database structure
Start by expanding your data structure in the data tab.
First, create a data type called “Follow” to record when a user follows a shop. It needs two custom fields: “Shop” with the Field type Shop, and “User” with the Field type User.
In the User data type, add a field called “Shops I’m Following” with the type Shop, and check This field is a list (multiple entries).
Since sellers will manage a shop, you also need a way to associate a user with the shop they own. Add another field to the User data type called “Managed Shop” of type Shop. You’ll reference this later when building seller tools.
To let shops email their followers later, create a data type called “Email” with these fields:
- “Body” (text): The message the shop sends to followers.
- “Subject Line” (text): What followers see in their inbox.
- “Shop” (Shop): The shop sending the email, used to find its followers.
- “User” (User): The seller who created the email.
- “Send Date” (date): When the email should go out, which your backend workflow reads to schedule it.
2. Build the “follow” functionality
Head back to the design tab and open your search page. Program the heart icon you added earlier so that users can follow shops.
First, add a popup named “Popup Follow Shop” to confirm that the user wants to follow this shop. It should have some basic text explaining this to the user, along with a button to confirm the follow. Design the popup however you like.
Next, add a workflow to the heart icon. Select Show an element and choose your popup from the dropdown. If any text in your popup references the particular shop, add a second step to your workflow: Display data in Popup Follow Shop.
Now that customers can open the popup, add a workflow to the popup’s follow button. The first step should be Create a new Follow. Define your two fields: User should equal the Current User, and Shop should equal the shop selling the product in that cell.
You’ll also want to update the list of shops that the user is following. To do this, add a second step to the workflow: Make changes to Current User.
Start building for free







