Case study · Marketplace · Pre-seed

Marketplace MVP taken from Figma to live in 2 weeks

A pre-seed founder had a finished Figma design for a two-sided marketplace and needed it live. We built both sides (listings and orders) and payments with split payouts to sellers, in two weeks.

Case studyMarketplace · Pre-seed

Two-sided marketplace

2 weeks · Figma to live marketplace

Client

Two-sided marketplace

Engagement

Fast MVP · fixed scope, fixed deadline

Duration

2 weeks (10 working days)

Team

2 senior engineers + 1 QA · 1 Hashorn PM

ServicesAI Software DevelopmentQuality Assurance

Outcomes at a glance

Time to live

2 weeks

Marketplace sides shipped

Buyer + seller

Payments

Stripe Connect split payouts

Sprint timeline

How the engagement unfolded

  1. Day 1

    Brief, scope lock, design review

    Walked the Figma file, locked the single core loop (list, discover, transact), and cut every screen that was not on it. Agreed the payment and payout model up front because it shapes everything.

    Cut list + design-to-build map

  2. Day 2

    Foundation + design system

    Auth for both buyer and seller roles, the core data model in Postgres, and the Figma design translated into a small set of reusable components so screens could be built fast and on-brand.

    Component library · staging URL live

  3. Days 3-5

    Supply side: listings

    The seller flow: onboarding, creating and managing a listing, and the seller dashboard. Built directly against the Figma screens.

    Sellers can create live listings

  4. Days 6-8

    Demand side: discovery + checkout

    The buyer flow: search and filtering, the listing detail page, and checkout. Stripe Connect wired for payment with a split payout to the seller, with idempotent webhooks.

    First end-to-end transaction in sandbox

  5. Days 9-11

    Trust, polish, onboarding

    The basics a marketplace needs to feel safe: confirmations, receipts, and a minimal admin view for disputes. Plus mobile, error and loading states, and a first-run experience for each side.

    Both sides usable end to end

  6. Days 12-13

    QA + bug bash

    Playwright across the buyer and seller critical paths, a structured bug bash, and triage to launch-blockers only. Payment edge cases tested hard.

    Critical-path specs green on CI

  7. Day 14

    Production launch

    Live on a real domain with SSL, real payment and payout flows live, monitoring wired, and the first buyers and sellers onboarded.

    Live marketplace in production

Architecture

The stack we shipped on

Frontend

Design system built from the client's Figma file

  • Next.js 15
  • TypeScript
  • Tailwind
  • Figma-derived components

API

  • Next.js Route Handlers
  • Zod
  • Idempotency keys

Data

  • PostgreSQL 16
  • Prisma
  • Buyer + seller models

Payments

Marketplace payouts; PCI scope kept out of the app

  • Stripe Connect
  • Split payouts
  • Webhooks

Cloud

  • AWS
  • Vercel
  • GitHub Actions
  • CloudWatch

Risks we actively managed

  • Two-sided scope ballooning: the cut list reduced the build to one core loop (list, discover, transact) with everything else deferred.
  • Payment and payout correctness: Stripe Connect with idempotent webhooks, and the money paths tested hardest in QA.
  • Design drift from the Figma file: a small reusable component library translated the design once, so screens stayed consistent and fast to build.
  • Marketplace trust on day one: confirmations, receipts, and a minimal dispute admin view, the basics that make a new marketplace feel safe.
Workflow

Tracked end-to-end in BuildOS.

Every meeting summary, requirement, sprint, task, and metric in this case study was rendered in BuildOS during the engagement. The customer's team had read-only access to the same workspace from week one, they saw Friday demos, weekly velocity, and AI-generated checklists without us sending status emails.

The challenge

A pre-seed founder had done the hard product-design work. They had a complete Figma file for a two-sided marketplace and a clear vision, but no engineering team to turn it into something real. They needed it live, with real transactions, in two weeks.

A marketplace is harder to ship fast than a single-user app because it has two sides that both have to work, and money moving between them. The constraint we set was to resist building the whole vision and instead ship the one core loop that makes a marketplace a marketplace: a seller can list, a buyer can discover, and a transaction completes with the seller getting paid.

How we approached it

A two-engineer pod with a QA engineer and a Hashorn PM. Having a finished Figma file changed the shape of the work: it removed the design-decision loop entirely, so on day two we translated the design into a small reusable component library and then built screens directly against it. That kept the interface consistent and on-brand while letting the engineers move at full speed.

We locked the payment and payout model on day one, before writing feature code, because in a marketplace the money flow shapes the data model and the trust features. Everything not on the core loop went on the cut list.

What we shipped

Days 1 to 2, foundation and design system. Scope lock against the Figma file, buyer and seller auth, the core data model, and a reusable component library derived from the design.

Days 3 to 5, the supply side. Seller onboarding, listing creation and management, and the seller dashboard, built straight from the Figma screens.

Days 6 to 8, the demand side. Buyer search and filtering, the listing detail page, and checkout, with Stripe Connect handling payment and a split payout to the seller.

Days 9 to 11, trust and polish. Confirmations, receipts, a minimal dispute admin view, plus mobile, error and loading states, and a first-run experience for each side.

Days 12 to 14, QA and launch. A structured bug bash with the money paths tested hardest, Playwright on both sides' critical flows, and a real production launch with the first buyers and sellers onboarded.

The outcome

  • A live, two-sided marketplace in two weeks, from a Figma file to real transactions in production.
  • Both sides working end to end: sellers listing, buyers discovering and checking out, and split payouts settling to sellers.
  • A clean codebase the founder owns, with a v2 backlog driven by the first real transactions.

What we'd repeat

Locking the payment and payout model on day one was the call that kept the build clean. In a marketplace the money flow touches everything, so deciding it first meant the data model and the trust features were right the first time. The other win was treating the Figma file as a head start rather than a spec to argue with: translating it into a component library once, early, let us build the rest of the screens in hours instead of days.

FAQ

Frequently asked questions

Want a result like this?

Tell us what you're building, we'll tell you how we'd ship it.

Book an intro call →