OutbidLaunch Open Leaderboard v0.1
A simple, open-source leaderboard where anyone can buy a rank — the highest bid sits at the top, and your spot matches the amount you pay. Built on Astro + shadcn/ui, hosted on Cloudflare, with Stripe handling all payments.
Speed, security, or scaling — choose 3. To help achieve, that's why we're launching tomorrow a hosted managed option that needs no coding at all. It includes:
- 5-minute launch — simply easy, no coding
- Growth emails for you — automated bid notifications to keep people coming back
- Managed cloud — easy setup, easy management, less hassle
- Scale-ready — handles traffic spikes without new servers
- Edge security — traffic scanned and protected
- Fraud & bot checks — automated screening at the edge
- Free SSL — issued and renewed for you
- EU-friendly, privacy-first cloud — GDPR-safe, data kept in-region
- No npm chores — forget about update upkeep
Pssst... Want an early bird offer?
It's live now. Visit our website — you won't see this deal (or this sentence) in tomorrow's version.
What it does
- 4 pages: leaderboard + claim form, about, rules, and a live world map
- Live visitors show up in real time on the 3D world map (still being improved)
- Safe payments — Stripe handles them, so we never store your card
- Easy to rebrand — change the name, logo, and domain in one place
- Open source (MIT) — the whole core product is free to use
Why not code it from scratch?
We didn't just spin this up in a day. Hitting 17,233 lines of code took care of all the edge cases and setup needed for a working leaderboard, end to end:
So if you need an integration added, just ask and we'll build it. Why waste time, money, and AI tokens on something that's already done?
How ranking works
- Highest bid wins #1 — the board is sorted by price, biggest first.
- Tied bids — the newer one ranks higher.
- To take #1 you always pay at least $1 more than the current top bid.
- Empty board starts at $1.
- Moderation built-in
How it works, in plain terms
One codebase runs a single Cloudflare Worker. Astro serves the fast, static pages, while the live parts (leaderboard, claim form, visitor counts) run server-side or as small React islands for speed.
- Claim — a visitor enters a URL or
@handleand a bid. The site creates a Stripe payment page with that bid attached, then sends them to pay. - Confirm — Stripe sends back
checkout.session.completed(verified with HMAC), and the listing is added, safely and idempotently. - Rank — the leaderboard JSON is cached for 30 seconds and refreshes right after a payment. The page checks for updates and swaps rows in place — no full reload.
- Live — every visit is logged for fraud checks and sent to a Durable Object that keeps recent counts in memory, so live numbers stay fast.
Privacy: IPs and emails are never stored raw — only hashed (GDPR-safe). Links are checked at claim time; query params are stripped and chat or explicit links are blocked.
Tech stack at a glance
| Layer | What it's for |
|---|---|
| Astro | fast pages + the APIs & actions |
| shadcn/ui + React | accessible UI building blocks (cards, badges, avatars) |
| Cloudflare Workers | one deploy target — no server to manage |
| Cloudflare D1 | edge database — listings + log data |
| Cloudflare Durable Objects | live visit counts + world map, in-memory |
| Cloudflare Cache API | caches the leaderboard 30s — handles lots of readers |
| Stripe Checkout | simplest payments — no cards stored |
Host it yourself, step by step
Follow SETUP.md — a beginner-friendly walkthrough that takes
you from a fresh clone to a working URL: create the database, set your domain
and title, connect Stripe, build, and ship it.
Roadmap
| Status | Item |
|---|---|
| To do | Multi-languages |
| To do | Multi-currency |
| To do | Dark mode |
| To do | Categories |
| To do | Other payment providers integrations |
| In progress | 3D map |
| In progress | Live stats like clicks and visits |
| Done | Initial leaderboard with bidding, directory, and a 3D globe map |
MIT licensed. See LICENSE. Contributions welcome — read
CONTRIBUTING.md.


