Urgent.News

What's breaking now, across thousands of outlets.

Tech

I built a pay-to-rank leaderboard in 7 days - here's how the points system works

One evening I noticed sites charging $10k+ for the top spot on a simple "pay to rank" wall. I thought: the idea is fun, but the pricing locks out every indie maker who would actually enjoy it. So I built Outclimbed - a public leaderboard where you list your website or X profile and climb by earning points. It took about 4 days to build and roughly a week to get fully production-ready. Here's how…

In a recent endeavor to democratize leaderboard ranking systems, a developer created Outclimbed, a public leaderboard where users can list their websites or X profiles and climb the ranks by earning points. This project aimed to challenge the expensive, pay-to-rank walls that only benefit large companies. Outclimbed was built using a simple stack of Supabase for database and authentication, Vercel for hosting, Resend for transactional email, Umami (self-hosted) for analytics, and Dodo Payments for processing payments.

The distinguishing feature of Outclimbed is its unique points system, which combines permanent and decaying points.

Permanent points are earned through paid listings, with a cost of $10 granting 10 points, and additional points at a rate of $1 per point, which never decay and stay on the board indefinitely. This provides a stable foundation for listings. Earned points, on the other hand, are generated based on user engagement and referrals, with a personal share link earning 1 point per visitor, which gradually fades over 30 days.

Furthermore, referring others who list their profiles yields 5 points, which fade over a 6-month period. The decaying points system prevents any single listing from dominating the leaderboard indefinitely, ensuring that activity remains engaging and the rankings stay dynamic.

To make the leaderboard accessible to a wider audience, Outclimbed introduced a daily ranking feature. Each UTC day generates its own ranking based solely on that day's activity, closing at midnight UTC. This daily ranking resets daily, allowing smaller projects to have a shot at the top spot. Additionally, past days remain browsable, enabling any project, no matter how small, to claim a day's top position and showcase their achievements. This approach proved to be a more compelling hook than the traditional all-time ranking system.

Recognizing the barrier of entry posed by the paid-only model, Outclimbed implemented a free tier, allowing users to join without points and climb the ranks using their share links. Free listings are removed after three months unless the user buys points or achieves verification. Verification comes with the added benefit of placing the Outclimbed badge on their site, granting +30 points, and providing the user with a badge that serves dual purposes—rewarding the creator and enhancing the leaderboard with backlinks and visibility.

A crucial learning from the payment integration process was the importance of reviewing a payment provider's acceptable use policy before development. The developer's initial provider declined the project, classifying it as a form of paid advertising or directory placement, which fell outside their acceptable use policy. Consequently, the developer switched to Dodo Payments, and the system has operated without issues since.

Moving forward, the developer advises that payment compliance should be a primary consideration during the initial stages of development rather than being addressed later in the project timeline.

For those interested in participating, Outclimbed welcomes users to sign up for free and experience the platform firsthand. The developer invites feedback on the decay model, specifically on the weighting of visits versus referrals, and invites comments and suggestions for future improvements.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

More from Tuesday 6 October →