The Flutter Kit logoThe Flutter Kit
Boilerplate · Marketplace

Flutter Marketplace App Boilerplate

Two-sided auth for buyers and sellers, Firestore listing models with search-ready structure, and a RevenueCat payments base — the connective tissue of a marketplace, wired in BLoC across iOS, Android, and Web.

Last updated: 2026-06-19 7 min read By Ahmed Gagan, Flutter Engineer
Quick Answer

This Flutter marketplace app boilerplate is a $69 one-time Flutter (Dart) starter for two-sided apps where buyers and sellers meet. It ships Firebase Auth with role-aware accounts, Firestore listing and category models behind a clean repository, and a RevenueCat payments base for seller subscriptions or featured-listing upsells. You own the full source, ship to iOS, Android, and Web from one codebase, and get lifetime updates. It is the skeleton — the matching logic, your trust-and-safety rules, and any escrow or split-payment flow are yours to build on top.

Price
$69 one-time (was $149)
Two-sided auth
Role-aware Firebase Auth (buyer / seller)
Listings
Firestore models + repository, search-ready
Platforms
iOS, Android, Web from one Dart codebase

A marketplace is two apps wearing one skin

The thing that makes a marketplace hard is that the same codebase serves two people with opposite needs: a buyer who browses and pays, and a seller who lists and gets paid. Most templates only model the buyer. The Flutter Kit gives you role-aware accounts so the same Firebase Auth identity carries a role, and your UI and permissions branch from one source of truth held in a Cubit — not from booleans scattered through widgets. A user can be both buyer and seller, switch contexts, and their state survives login, logout, and a second device. That role plumbing is the part everyone underestimates, and it is already wired.

  • Role-aware Firebase Auth — one identity, buyer and/or seller context
  • Account/role state in a Cubit via get_it, testable and centralized
  • Listing ownership and permissions derived from role, not hand-threaded flags
  • State survives login, logout, role switch, and reinstall

Listings, categories, and search-ready data

Listings are plain Dart models behind a Firestore repository registered in get_it, so a seller creating a listing and a buyer querying a category share the same clean seam. The shape is deliberately query-friendly — fields you would filter and sort on are first-class — so wiring a category browse, a price filter, or a third-party search index later is a swap against an interface rather than a rewrite. Because listings are Firestore documents, a buyer's feed reflects new inventory in real time as sellers publish.

Role-aware listing creation through a repository
class ListingRepository {
  ListingRepository(this._db);
  final FirebaseFirestore _db;

  Future<void> publish(Listing listing, AppUser seller) {
    assert(seller.role == UserRole.seller);
    return _db.collection('listings').add({
      ...listing.toJson(),
      'sellerId': seller.id,
      'status': 'active',
      'createdAt': FieldValue.serverTimestamp(),
    });
  }

  Stream<List<Listing>> watchByCategory(String category) => _db
      .collection('listings')
      .where('category', isEqualTo: category)
      .where('status', isEqualTo: 'active')
      .snapshots()
      .map((q) => q.docs.map((d) => Listing.fromJson(d.data())).toList());
}

The payments base, and the honest caveat about money flow

The kit wires RevenueCat, which is the correct tool for the digital side of a marketplace: seller subscriptions (a 'pro seller' tier), featured-listing boosts, or unlocking buyer features — because those are digital purchases and must run through StoreKit 2 and Play Billing on mobile. Be clear-eyed about one thing, though: paying a seller for a physical good, with a platform cut and a split or escrow, is a real-world payment that Apple and Google route through an external processor (Stripe Connect-style marketplaces are the usual answer). The kit gives you the entitlement, listing, and account structure; that split-payment processor is the piece you bring and connect.

  • RevenueCat base for seller subscriptions and featured-listing upsells
  • Entitlement gating to unlock 'pro seller' or buyer-premium features
  • Material 3 design tokens — rebrand the whole marketplace from one file
  • Cloud Functions seam for verifying listings or fanning out notifications

When a different starting point is the honest choice

If your marketplace's hard problem is the matching algorithm or heavy trust-and-safety and moderation, most of that lives server-side and a front-end starter is a smaller slice than it looks. If you are validating an idea with a tiny catalog and have no Dart experience, a no-code tool like Bubble can stand up a rough two-sided v1 quickly — trading away source ownership and the clean BLoC architecture that keeps a growing marketplace maintainable. And if your transactions are web-first with complex Stripe Connect split payments, a web stack may fit the money flow better than a mobile-first RevenueCat base. The Flutter Kit is the right call when you want a code-first marketplace you fully own, with two-sided auth, listings, and a payments base already wired so you can focus on liquidity — getting buyers and sellers to show up.

The Flutter Kit vs building a marketplace yourself

The Flutter Kit vs Build from scratch comparison
FeatureThe Flutter KitBuild from scratch
Price$69 one-time, unlimited projectsYour engineering time (weeks)
Two-sided authRole-aware Firebase Auth pre-wiredDesign and build role plumbing
Listing modelsFirestore repository, search-readySchema and repo from zero
Real-time feedStreamable Firestore queriesHand-roll streams + caching
Payments baseRevenueCat for digital tiersWire StoreKit 2 + Play Billing
ArchitectureBLoC/Cubit + get_it, testableYou design it all
Source ownershipFull source, lifetime updatesYou own and maintain it all

Frequently Asked Questions

How does the marketplace boilerplate handle a user who is both a buyer and a seller?
Roles live on the account, not on separate logins, so one Firebase Auth identity can carry both buyer and seller context. The role state is held in a Cubit and your UI branches from that single source of truth, so context-switching is a state change rather than a second account or a tangle of flags.
Can buyers search and filter listings in this marketplace template?
Listings are Firestore documents with query-friendly fields, so category browse and price/attribute filters work against the included repository out of the gate. When you outgrow Firestore querying, the repository interface lets you swap in a dedicated search index like Algolia without touching your widgets.
Does the marketplace boilerplate handle split payments between platform and seller?
Not directly, and that is intentional: paying a seller for a physical good with a platform cut is a real-world transaction that Apple and Google route through an external processor, typically a Stripe Connect-style flow. The kit supplies the RevenueCat base for digital tiers and the listing/account structure; you connect the split-payment processor for marketplace payouts.
How would I monetize a marketplace built on this boilerplate?
The wired RevenueCat layer makes seller subscriptions (a 'pro seller' tier), featured-listing boosts, and buyer-premium unlocks straightforward, since those are digital purchases through StoreKit 2 and Play Billing. Entitlement gating then turns a seller's plan into the features they can access — no extra architecture.
Is the marketplace boilerplate locked to Firebase, or can I use Supabase?
It ships on Firebase Auth and Firestore, but every data path goes through a repository interface registered in get_it, so the backend is swappable. Because you own the full source, moving listing and account repositories to Supabase is a clean reimplementation behind the same seam rather than a rewrite of your screens.
Can the same marketplace codebase serve a web storefront and the mobile apps?
Yes — it is one Flutter/Dart codebase for iOS, Android, and Web, so a web marketplace and the native apps share models, repositories, and role logic. That matters early, when a marketplace needs both a shareable web presence and app-store apps without maintaining three separate codebases.

Keep exploring

Build the marketplace, not the role plumbing

Start with two-sided buyer/seller auth, search-ready Firestore listings, and a RevenueCat payments base already wired in BLoC. $69 one-time, full source, lifetime updates, iOS + Android + Web from one Dart codebase. See /features.

Get The Flutter Kit — $69

One-time purchase · Lifetime updates · Unlimited projects