All Case Studies
Case Study

Two-Sided Marketplace MVP: From Zero to 200 Listings in 3 Weeks

How we built a services marketplace connecting local contractors with homeowners, complete with booking, payments, and review system.

Client: HomeHero (Confidential)

Timeline
18 days
Investment
$12,999
Key Result
200 listings, 47 bookings in month one

Marketplace homepage showing a search bar with location autocomplete, featured contractor cards with star ratings and pricing, and category filters for plumbing, electrical, and cleaning.

The Challenge

The founder ran a successful local cleaning business and saw firsthand how fragmented the home services market was. Homeowners relied on word-of-mouth or Craigslist to find contractors, and contractors had no online presence beyond a Facebook page. She wanted to build the 'Uber for home services' for her metro area. Previous attempts with WordPress plugins and Sharetribe fell apart at the payment split logic and booking calendar. She needed a real marketplace that could handle Stripe Connect payouts, contractor availability calendars, and a trust-building review system. Her goal was 200 listings and 50 bookings in the first month to prove the model before raising a seed round.

Our Approach

Marketplace MVPs have a chicken-and-egg problem, so we designed the supply side first. The contractor onboarding flow was a 3-step wizard: profile, services offered (with pricing), and availability calendar. We kept it under 5 minutes to minimize drop-off. For the demand side, homeowners could search by service type and zip code, view contractor profiles with reviews and pricing, and book a time slot. Payment was handled via Stripe Connect with a 15% platform fee. The architecture used Next.js for both the consumer-facing site and contractor dashboard, sharing a component library. PostgreSQL handled the relational data (users, listings, bookings, reviews), and we used Drizzle ORM for type-safe queries. The booking system used a simple slot-based calendar rather than complex availability algorithms. We integrated Resend for transactional emails: booking confirmations, payment receipts, and review requests. The review system was two-way: homeowners rated contractors and contractors rated homeowners, creating accountability on both sides. We deployed the frontend to Vercel and the API to Railway with a shared PostgreSQL instance.

What We Built

Contractor onboarding wizard with profile, services, and availability calendar.
Consumer search with zip code filtering, service categories, and contractor profiles.
Slot-based booking system with automatic availability management.
Stripe Connect integration with 15% platform fee and contractor payouts.
Two-way review system with star ratings and written feedback.

Delivery Timeline

Day 1-3: Data Model + Auth

Designed marketplace schema (users, listings, bookings, reviews), set up auth with role-based routing.

Day 4-7: Contractor Side

Built onboarding wizard, profile pages, availability calendar, and contractor dashboard.

Day 8-11: Consumer Side

Search, filtering, contractor profiles, and booking flow with calendar slot selection.

Day 12-14: Payments

Stripe Connect integration, platform fee logic, payout scheduling, and webhook handlers.

Day 15-16: Reviews + Email

Two-way review system, Resend transactional emails for booking lifecycle.

Day 17-18: Hardening + Launch

Security audit, load testing, seed data migration, and production deployment.

Tech Stack

Next.js
Frontend + API
PostgreSQL
Database
Drizzle ORM
ORM
Stripe Connect
Payments
Resend
Email
Redis
Cache
Better Auth
Auth
Railway
Hosting
Vercel
Frontend Hosting

Architecture

frontend

Next.js App Router with shared component library for consumer and contractor views.

backend

Next.js API routes with Drizzle ORM on PostgreSQL (Railway).

auth

Better Auth with email magic links for homeowners, Google OAuth for contractors.

data

PostgreSQL with Drizzle. Redis for search caching.

payments

Stripe Connect Express accounts with automatic payouts.

Security

rbac

Three roles: Homeowner, Contractor, Admin. Row-level data isolation.

secrets

Railway environment variables. Stripe keys rotated monthly.

monitoring

Sentry error tracking. Stripe webhook monitoring via dashboard.

qa

Playwright E2E tests covering booking flow and payment flow.

The Results

Contractor listings
0200 in month one
Bookings completed
047 in month one
Platform GMV
$0$14,100 (month 1)
I wasted $8,000 on a Sharetribe customization that couldn't handle Stripe Connect. HouseofMVPs built something 10x better in 18 days. We hit 200 listings before I even finished my pitch deck.
Jessica Torres
Founder, HomeHero

Key Takeaways

Seed the supply side first. We pre-loaded 30 contractor profiles from the founder's existing network before launching to homeowners. An empty marketplace converts nobody.

Stripe Connect Express is the right call for marketplace MVPs. Custom accounts add weeks of compliance work for zero user benefit at this stage.

Two-way reviews are critical for trust in service marketplaces. Homeowners book 3x more when they see verified reviews.

Deliverables

Full source codeStripe Connect integrationCI/CD pipelineSeed data migration scriptsFounder training session

FAQ

Frequently Asked Questions

Related Case Studies

Want similar results?

Book a free 15-min scope review. Your vision, engineered for production in 14 days. Fixed price.

Book Scope Review