Roan Merens
All writing

Drip: three years of scaling community rewards

Three years on a Discord-native rewards platform with hundreds of thousands of users, where I worked across the bot, backend, frontend, infrastructure, and support.

scalediscordbackend

Drip is a community engagement platform: communities reward their members for showing up, contributing, and staying active, with points they can spend on real rewards. It lives where those communities live, primarily Discord.

I worked on Drip from 2022 to 2025, my longest engagement to date, and I touched every part of the stack: the Discord bot, the Node.js backend, the frontend, the infrastructure, and the support channel. Not alone, but with ownership across all of it.

The scale

Hundreds of thousands of users, interacting in real time. A Discord bot at that scale stops being a bot project and becomes a distributed systems project: gateway events arrive in bursts, rate limits shape every design decision, and a single large community running an event can generate load that looks like a traffic spike.

What I owned

  • The Discord bot and the backend behind it, built for large-scale real-time interaction
  • Backend logic and database design, across PostgreSQL and MongoDB
  • Reliability and scalability under sustained high load
  • The infrastructure, and the support work that comes with real users

Around the core

The ecosystem grew beyond the bot. I built companion sites connected to Drip, where communities could purchase items and redeem their rewards. My favorite of those experiments was a coffee campaign where people redeemed virtual coffee NFTs for real coffee.

OKD Companion SiteOKD Companion Site Kabu Companion Site, rewarding social engagementKabu Companion Site, rewarding social engagement

What three years teaches you

Support changed how I engineer. When you also answer the questions from users, you stop shipping edge cases to production, because you are the one who will hear about them. Reliability is not a feature on a roadmap; it is the absence of a support ticket.