At a glance
I co-founded and built MerchMe, a two-sided marketplace for paid UGC campaigns. Brands could post bounties, review creator applications, manage submissions, and pay for approved work. The product reached 5 brands and 100+ users.
Built
Brand and creator dashboards, bounty pages, applications, invitations, submission batches, referrals, messaging, and payments.
Core loop
Brand posts campaign, creator applies, creator submits content, brand reviews, approved work moves toward payout.
Lesson
The software worked, but liquidity mattered more than adding more product surface.
Context
The product pivoted from merch to UGC
MerchMe started as a print-on-demand idea for helping people launch merch lines. As we talked to users and looked at the market, the better opportunity became clearer: brands needed short-form creator content, and creators needed a more structured way to find paid work.
So the product pivoted into a UGC marketplace. The name stayed, but the transaction changed.
Product
Bounties made the marketplace easy to understand
The product centered on bounties: a brand posts a paid campaign, and creators apply or get invited to submit content. That gave both sides a simple object to rally around.
Brand dashboard
Create company profiles, launch campaigns, review applications, invite creators, message participants, and track activity.
Creator dashboard
Build a profile, browse bounties, apply to campaigns, submit work, and track earnings.
Public bounty pages
Shareable campaign pages helped discovery and referrals happen outside the dashboard.
Submission review
Batch submissions matched how brands actually review UGC: several assets at once, then approval and payout decisions.
Build
I built the full marketplace stack
The frontend was a Next.js app for the brand and creator experience. The backend was a NestJS REST API with Supabase auth and Postgres, Stripe payments, SendGrid emails, Redis caching, rate limiting, and Swagger docs.
- Modeled campaigns, applications, invitations, submissions, payouts, referrals, messages, and metrics.
- Added payments and webhook flows with Stripe.
- Scraped Instagram and TikTok metadata where it helped creator profiles.
- Kept brand and creator flows separate so each side had a clear workspace.
Lesson
Marketplace liquidity beat feature depth
The hard part was not building another dashboard. It was getting enough brands and enough creators to show up at the same time.
If I were doing it again, I would start narrower: one brand category, one creator type, and a more manual concierge flow before building every self-serve feature. Once the transaction repeats, automation becomes much easier to justify.
