← Back to Notes

How Levels.fyi scaled to millions of users with Google Sheets as a backend

2026-01-23article
Originally Published ↗Download PDF ⬇

How Levels.fyi scaled to millions of users with Google Sheets as a backend

Levels.fyi adopted a "simple first" philosophy to scaling, avoiding premature optimization by launching without a traditional backend. For the first two years, they served millions of users using a combination of Google Forms for data entry, Google Sheets as their database, and AWS Lambda/API Gateway as their API layer. This approach allowed them to focus on product-market fit rather than infrastructure maintenance.

Their architecture utilized Google Forms for user input, which populated a Google Sheet. An AWS Lambda function would then process this data. For read operations, they employed a unique strategy: processing the Google Sheet data into JSON files, storing them on S3, and serving them via CloudFront CDN. The entire dataset was initially loaded by the client browser, enabling fast, offline-capable interactions. As they grew, they eventually migrated to a more robust Postgres and Node.js backend to address challenges like JSON file size, Lambda timeouts, and the need for complex SQL queries.

Key Concepts

  • No-Code Backend: Using Google Sheets and Google Forms as a replacement for a traditional database and UI to bootstrap quickly.
  • Static vs. Dynamic: Treating the majority of the site as static by generating JSON artifacts from the "database" (Sheets) to be served via CDN.
  • Client-Side Processing: Offloading data processing and visualization logic to the user's browser by serving the entire dataset (initially) as static JSON.
  • Premature Optimization: The core philosophy that startups should prioritize product validation over building complex, scalable infrastructure from day one.
  • Migration Triggers: Identifying key bottlenecks (file size, timeouts, rate limits) that signal the right time to transition from a scrappy MVP architecture to a production-grade backend.