3 min read

3 Million Users, 3 TB Traffic from a Tiny Vercel App for $0 – here's how

3 Million Users, 3 TB Traffic from a Tiny Vercel App for $0 – here's how

Let’s face it: Scaling a web app while keeping costs at $0 feels like a dream for indie hackers and developers. But that’s exactly what we pulled off.

I work with a Non-Profit Environment Conservation Initiative, and we organized a student competition across India. The goal? Get students involved in solving real-world environmental problems. Our tool of choice? EcoMitram App, is a web app (in VueJS) that we packaged as a native app for Playstore and Appstore.

With over 1 million users expected, the big challenge was obvious – how do we handle all that traffic without blowing the budget? Enter Vercel. We’ve been using their free tier for over a year, but their 100GB bandwidth limit was going to be a bottleneck with our growing user base. So, we needed a way to scale that without spending a single $.

We are still on the Hobby Plan of Vercel

The Hack: Cloudflare + Vercel

We turned to Cloudflare’s free tier because, well, no bandwidth limits. The idea was simple: set up Cloudflare as a reverse proxy to handle the heavy lifting while Vercel focused on serving dynamic content. Easy, right? Well, not quite.

You need to configure Page rules properly to make the combo work correctly

Here’s where things got interesting:

Caching Strategy: We needed to cache assets smartly so Cloudflare could serve most of the traffic. But, since we frequently update the app, we couldn’t cache too aggressively. This was all about balancing speed with flexibility.

Fine-tuning Cloudflare Rules: We configured custom caching and routing rules, making sure our API endpoints and dynamic content wouldn’t get stale.

Vue.js Optimizations: Since our app is built in Vue, we optimized it to make the most out of Cloudflare’s edge caching. Anything static went straight into Cloudflare’s cache, minimizing the load on Vercel.

Dynamically import the files, without loading everything upfront

The Results

After tweaking and fine-tuning, we deployed the app 30+ times in a month and hit some insane numbers:

  • 3 million visitors
  • 6+ TB of traffic handled effortlessly over 2 months (July and August)
  • 804 million API hits to our API server (nodejs app, a $10 VPS)
  • 1.37 million installations
  • 86,170 max users in a day
  • 1.2 million registered users

The best part? We didn’t spend a dime. Not a single dollar.

Lessons -

If you’re building something and concerned about scaling, don’t feel like you need to throw cash at the problem. With smart use of Cloudflare and Vercel, you can push your app to handle millions of users without worrying about the bill.

By the way, ecomitram.app handled over 3 million students in two months, and we didn’t get a single performance complaint. It’s proof that with the right tools, you can deliver big results on a shoestring budget. 💡