# How to Vibecode TrustMRR — Can You Do It Yourself?

> The database of verified startup revenues

- Site: https://trustmrr.com
- Category: Marketplace
- Verdict: **Solid side project** (68/100 vibecodeable)
- Estimated effort: 2-3 weeks of focused building

## Verdict

Build a solid subset focusing on the curated directory and mock financial verification, as handling production multi-tenant payment provider webhooks at scale requires tedious edge-case handling.

TrustMRR is primarily a high-traffic curation and verification wrapper around payment APIs. While scraping and rendering thousands of listings with filtering is straightforward, the real engineering grind involves setting up secure webhook ingestion loops for Stripe, Lemon Squeezy, and Paddle, handling expired tokens, and ensuring that revenue metrics recalculate accurately without hitting rate limits. A solo developer can successfully vibe code a fully functional mock or live-integrated prototype over a few weekends.

### What you can't replicate

- The 200K monthly organic visitor base and active buyer/seller network
- The proprietary catalog of verified real-world startups and historical revenue data

## What it does

TrustMRR is a marketplace and verified database for buying and selling SaaS startups, mobile apps, and digital businesses, backed by direct API integrations with payment providers.

### Core features

- Aggregated verified revenue marketplace listing cards
- Dynamic filtering by category, revenue range, and growth percentage
- Multi-tenant OAuth & Webhook sync for Stripe, Lemon Squeezy, and Paddle
- Founder update feed and recent activity ticker
- Detailed individual startup view with financial graphs and valuation multiples
- Programmatic public REST API with rate-limiting and token auth
- Startup submission wizard with payment provider connection flows

## The business

### Pricing

- Marketplace Browsing: Free — Browse listings and submit basic startups.
- API Access: Custom — Developer tiers for programmatic access.

### Funding

unknown raised.
Team size: 1 person.

## The hard parts

- Multi-provider OAuth token handling and background webhook ingestion for high-volume MRR calculations
- Data normalization across heterogeneous payment processor payloads without sync failures
- Efficient database indexing for complex queries filtering across thousands of dynamic financial metrics

## How to vibecode TrustMRR

### Prerequisites

- Node.js (free): Required for running Next.js and backend packages.
- GitHub (free): Code repository and deployment pipeline integration.

### Recommended AI tools

- Claude Code: Best-in-class coding agent for scaffolding full-stack applications and handling complex relational database schemas.
- Cursor: Ideal for iterative UI styling, Tailwind adjustments, and reviewing component diffs.

### Stack

- Frontend: Next.js (App Router) with Tailwind CSS and Shadcn/ui
- Backend: Next.js Server Actions and API Routes
- Database: Supabase (PostgreSQL with Prisma or Drizzle ORM)
- Auth: Supabase Auth
- Payments: Stripe (Optional for listing promotion)
- Other: Zod for schema validation, TanStack React Table for data grids

### Hosting

- Vercel (Next.js frontend and serverless API endpoints hosting): $0/mo (Hobby Tier)
- Supabase (Managed PostgreSQL database and authentication): $0/mo (Free Tier)

### Build guide

1. **Project Scaffolding and Database Schema** — Initialize the Next.js application with Tailwind CSS, configure Supabase with Drizzle ORM, and set up core tables for startups, founders, and financial metrics.

```
Initialize a new Next.js project with TypeScript, Tailwind CSS, and App Router. Set up Drizzle ORM connected to Supabase PostgreSQL. Create the database schema with tables for `startups` (id, name, slug, tagline, description, category, website_url, logo_url, founder_id, is_for_sale, asking_price, created_at), `founders` (id, name, avatar_url, twitter_handle), and `metrics` (id, startup_id, mrr, last_30_days_revenue, total_revenue, mom_growth, updated_at). Add Zod validation schemas for all table inserts and updates. Ensure clean directory structure following modern Next.js conventions.
```

2. **Marketplace Directory and Filtering UI** — Build the main marketplace homepage featuring responsive startup cards, valuation multiples, category filters, and search functionality.

```
Build the main marketplace homepage in Next.js matching the layout of TrustMRR. Create reusable components: a responsive header/nav bar, category pills filter bar (Artificial Intelligence, SaaS, Developer Tools, Fintech, Productivity, Marketing, etc.), and startup grid cards displaying company name, category, monthly revenue (MRR / 30d revenue), asking price, and valuation multiple badge ('FOR SALE' tag if applicable). Implement server-side filtering and search query params so users can filter startups by category and sort by revenue or growth percentage. Use Tailwind CSS and Shadcn/ui primitives for styling.
```

3. **Startup Detail Page & Financial Stats** — Develop individual startup detail pages showing deep financial history, valuation breakdown, and founder details.

```
Create a dynamic startup detail page route at `/startup/[slug]`. Fetch the startup record along with its associated founder profile and financial metrics history. Design a clean layout showing revenue statistics cards (30-day revenue, MRR, total historical revenue), valuation multiple calculations, founder update feed, and a contact/buy inquiry action modal if the startup is listed for sale. Include mock historical charts using a lightweight charting library like Recharts to display MRR growth over time.
```

4. **Founder Dashboard & Startup Submission Flow** — Implement a protected dashboard where founders can submit their startup, update metrics, and toggle acquisition status.

```
Build a protected founder dashboard route `/dashboard` using Supabase Auth. Allow authenticated users to submit a new startup via a multi-step form capturing name, tagline, description, category, website URL, and initial revenue metrics. Implement CRUD operations allowing founders to update their startup details, toggle the 'For Sale' status with an asking price, and view an overview of their metrics. Add mock webhook sync simulation buttons that trigger background updates to simulate connected Stripe/Paddle data feeds.
```

5. **Public REST API & Developer Endpoints** — Construct public developer API endpoints (`/api/v1/startups`) complete with API key authentication and strict rate limiting.

```
Build a public developer API route at `/api/v1/startups` using Next.js route handlers. Implement API key authentication headers (`Authorization: Bearer <key>`) validated against a `api_keys` database table. Support query parameters for filtering by category and pagination (`limit`, `offset`). Add rate-limiting middleware (e.g. 10 requests per minute per key) returning standard 429 Too Many Requests responses when exceeded. Return clean JSON payloads matching standard startup database records.
```

6. **Founder Activity Feed & Polish** — Add the live founder update feed, SEO metadata, and final UI polish across all views.

```
Implement a 'Feed' section on the homepage or dedicated route `/feed` displaying chronological updates posted by startup founders (e.g., milestone achievements, new feature launches, changelogs). Build a simple form allowing founders to post new updates attached to their startup profile. Add comprehensive SEO metadata and OpenGraph tags across all pages, ensure mobile responsiveness, and polish loading skeletons and empty states.
```

### Cost vs paying

**Starting costs (one-time):**

- Domain name: $12
- AI coding credits: $20
- Total: ~$32 one-time

**Ongoing costs (monthly):**

- Hosting & Database: $0/mo
- Total: $0/mo

- Paying for the SaaS instead: Free / Custom API
- Build time: 30-40 hours
- AI tool credits: $20
- Break-even: N/A (Free personal clone)

## Sources

- [TrustMRR Official Website](https://trustmrr.com)
- [TrustMRR API Documentation](https://trustmrr.com/api/v1)