Customer Stories

Koodos scales its social discovery app Shelf on Supabase

Koodos built its app Shelf from day one on Supabase, growing to support millions of users and billions of data points without dedicated database staff.

Koodos scales its social discovery app Shelf on Supabase logo
About

Social app that helps users understand themselves better by connecting their media platforms into one place.

https://shelf.im/
FoundedUSA

Ready to get started?

We grew from zero to a million users in a short period and Supabase has kept up every step of the way. The combination of Postgres performance and developer support has been incredible.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

Koodos is the company behind Shelf, a social app that helps users understand themselves better by connecting their media platforms into one place. Users can link Spotify, Apple Music, Netflix, Letterboxd, Goodreads, and more to build a personalized shelf of their interests, track how their tastes change over time, and discover connections with others based on shared media preferences.

With billions of data points flowing through the system and millions of users, Koodos needed a backend that could scale without requiring a dedicated database team. Supabase has been that foundation since day zero.

The challenge

Shelf processes massive amounts of user activity data. Each data point represents a discrete action, like a user watching a specific episode of a show or listening to a particular song. Imagine millions of users each with thousands, if not tens of thousands, of such data points. The team needed to support billions of these data points while maintaining fast, reliable performance.

As the app scaled, the engineering team faced mounting infrastructure pressure:

  • Billions of rows of activity and media data across multiple connected platforms
  • Heavy concurrent reads and writes from background sync jobs and live user actions
  • Massive ingestion spikes from data syncers updating user media libraries every few hours
  • Strict reliability requirements during viral growth surges

We're syncing Spotify and other platforms for millions of users. Each sync job touches Postgres thousands of times per user, so efficiency matters at this scale.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

Choosing Supabase

Koodos chose Supabase from day one. The team evaluated alternatives like PlanetScale and Amazon RDS, but found they lacked the complete picture that Supabase offered.

We started from day zero with Supabase. Supabase helped us get started really quickly, helped us build a prototype very easily, had really strong integrations with Web SDKs and frontend SDKs that we needed, has really good backend support.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

Key reasons for choosing Supabase:

  • Speed to prototype without upfront architecture work
  • Complete platform with Auth, Database, and Storage in one place
  • Strong SDK support for fast frontend integration
  • Managed Postgres with real-time monitoring for compute, memory, and IOPS
  • Enterprise support with direct access to Supabase engineers

Many of the alternatives kind of work, but they don't complete the whole picture. They don't offer object storage hosting. They don't offer user management. So we'd have to think about other solutions to answer those for us. Supabase handles a lot of these core features out of the box.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

Supabase's combination of observability and hands-on support set it apart from the competition.

We looked at other hosted databases, but Supabase gave us full visibility. We can inspect queries, benchmark IOPS, and actually talk to the engineers helping us optimize. That's rare.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

The approach

Koodos uses Supabase as the backbone of Shelf's entire backend, powering authentication, user management, and critical transactional data.

Supabase is really the brains of our operation here at Koodos.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

  • Authentication and user management. Supabase Auth handles thousands of users signing up from around the world. One-time passwords and login flows are managed through Supabase.
  • Source of truth for presentation data. All critical transactional data that users see when they open the app lives in Supabase. Usernames, profiles, and other high-read data are stored in Postgres.
  • Performance optimization. Working with Supabase's solutions team, the team reduced CPU load from 80 percent to 30 percent through query optimization, better indexing, and partitioning plans for their largest tables.
  • Rightsizing and cost management. By analyzing compute and IOPS usage, the team identified safe opportunities to downsize from 16 XL instances after major launches, balancing performance and cost.
  • Observability. Using Supabase's Performance Advisor, Grafana metrics, and direct SQL inspection, the team tracks slow queries, vacuum activity, and connection spikes in real time.

Supabase's database reviews feel like health check-ups for our app. Their engineers spot issues before they become production problems.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

The team is also evolving their architecture to optimize how data flows through the system. They plan to send event data directly to Snowflake for heavy computation, then push aggregated results back into Postgres for fast reads. This lets Supabase do what it does best: fast, reliable reads with strong data integrity.

The results

Supabase enabled Koodos to scale Shelf's backend in lockstep with explosive user growth, all without adding DevOps overhead.

  • 80% to 30% reduction in CPU utilization after tuning and indexing
  • Predictable performance with IOPS stabilized at approximately 75% utilization under heavy load
  • Seamless growth to 1 million users and billions of rows without downtime
  • Enterprise-level visibility and support through dedicated performance reviews and architectural guidance
  • No dedicated database staff required despite massive scale

We're able to run an app with millions of users and syncing huge amounts of data without a lot of thought on our Postgres instance. We don't have anybody dedicated to our Postgres instance.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

What's next

Koodos is preparing for its next phase of growth. The team is excited about Supabase's new analytics and Iceberg capabilities for handling their large-scale data needs. They are also optimizing their architecture to leverage Postgres for what it does best while offloading heavy computation to Snowflake.

We know Supabase can take us from one million to ten million users. The roadmap, from Iceberg to Multigres, aligns perfectly with how we want to grow.

Apurva Chitnis, Co-Founder & CTO, Koodos avatar

Apurva Chitnis, Co-Founder & CTO, Koodos

Build in a weekend, scale to millions