I Built a Pay-to-Rank Leaderboard Where Products Compete Through Transparent Bidding
Product Hunt resets every 24 hours. SEO takes months. Traditional ads are opaque.
I built something different: a leaderboard where your rank is permanent, every bid is public, and you only pay the gap to climb.
Here's the tech behind Steal the Spot.
The Problem
- Product Hunt votes reset daily — your #1 spot is gone tomorrow
- SEO takes months — by the time you rank, competitors have caught up
- Traditional ads are opaque — you never know if you're getting fair value
- Leaderboards are either pay-to-play or popularity contests
What if there was a leaderboard where:
- Your rank is permanent (until someone outbids you)
- Every bid is public and transparent
- You only pay the difference when raising your bid
- You get email alerts when outbid with exact price to steal back
How It Works
1. List FREE ($0)
Paste your product URL, pick a category, get on the board instantly. No credit card required.
2. Pay the Gap to Climb
Rank = cumulative bid. Every dollar moves you up. When raising your bid, you only pay the difference (minimum raise: $2).
3. Hold #1 or Outbid
Take any rank including #1. When rivals outbid you, get an instant email alert with the exact price to steal your spot back.
The Architecture
┌─────────────┐ ┌──────────────┐ ┌─────────────┐
│ Next.js │────▶│ Supabase │────▶│ Dodo │
│ 16 App │ │ Postgres + │ │ Payments │
│ Router │ │ RLS │ │ (INR/UPI) │
└─────────────┘ └──────────────┘ └─────────────┘
│ │
▼ ▼
┌─────────┐ ┌─────────────┐
│ React │ │ Webhooks │
│ Three │ │ (Refunds) │
│ Fiber │ └─────────────┘
└─────────┘
The Bidding System
No deposits, no refunds — bids are final and public. The rules are simple and server-authoritative:
- Your bid IS your rank — highest cumulative bid sits at #1, ties break to whoever got there first
- Pay the gap to raise — already bid $5 and want $20? You pay $15, not $20 (minimum raise: $2)
- Taking #1 costs leader bid + $2 — the reclaim price is always public, and outbid losers get it by email with a one-click fight-back link
The Math
export function calcMinOutbid(currentBid: number, minRaise: number = 2): number {
return currentBid + minRaise;
}
export function calcRaiseCost(currentBid: number, targetBid: number): number {
return targetBid - currentBid; // pay the gap, not the full amount
}
Why server-authoritative matters
Rank previews never override the webhook. Concurrent bids are resolved with transactional locking (steal_apply_bid with advisory locks) and idempotent Dodo webhooks — two agents outbidding each other at the same second can't corrupt the board. Race-tested, not hoped.
## Spot City: The Visual Layer
Built an interactive 100-lot city grid called Spot City ([stealthespot.lol/spotcity](https://www.stealthespot.lol/spotcity)):
- Taller towers = more bids
- LOT 001 holds rank #1 (center plaza)
- Tap any building to inspect its product profile
- Tap any dashed lot to claim it immediately
## Tech Stack
| Layer | Technology |
|-------|------------|
| Frontend | Next.js 16 App Router, React Three Fiber |
| Database | Supabase (Postgres + Realtime + RLS) |
| Payments | Dodo Payments (INR/UPI native) |
| Hosting | Vercel |
### Key Features
- **Real-time leaderboard** — Supabase Realtime for live updates
- **Automatic refunds** — Dodo webhooks handle losers' deposits
- **RLS policies** — Row-level security for bid integrity
- **3D visualization** — React Three Fiber for product previews
- **INR/UPI** — Native Indian payment support
## Featured Slots
For brands that want guaranteed visibility:
- **30-day lease** at $50/mo
- **Placement above the leaderboard**
- **Premium visibility**
- **8 slots available**
Not pay-to-rank. Pay-for-placement.
## Current Stats (refresh from [/stats](https://www.stealthespot.lol/stats) before publishing)
- 15+ categories (AI, SaaS, Dev Tools, Marketing...)
- Free entry ($0) + pay-from-$2 climbs
- Live SVG rank badges, free JSON API (`GET /api/board`), 11 free SEO tools
## What's Next
- Seasons (board resets so there's always something to win)
- More category boards from demand
- Outbid-email analytics for sellers
## Try It
1. Go to [stealthespot.lol](https://stealthespot.lol)
2. Click "List Free"
3. Paste your product URL
4. You're on the board
If you want to rank up, place a bid. If you get outbid, you'll get an email.
---
*Built by [@probiex007](https://x.com/probiex007)*
#BuildInPublic #SaaS #Leaderboard #NextJS #Supabase
Top comments (0)