Google Sheets as a Database: A Practical Guide

# Google Sheets as a Database: A Practical Guide You've probably heard people say "Google Sheets isn't a database." They're right — and wrong. Sheets wasn't *designed* as a database, but with the right tooling, it's a surprisingly capable one. ## What You Get for Free - **400,000 cells per spreadsheet** (that's plenty for most small apps) - **Built-in UI** — non-technical users can view and edit data directly - **Version history** — every change is tracked automatically - **Google's infrastructure** — 99.9% uptime, automatic backups - **Apps Script** — a free server-side runtime with full API access ## The Trick: One Table Per Spreadsheet The `nsa-sheets-db-builder` CLI uses "standalone" storage mode: each table gets its own spreadsheet. This avoids hitting Sheets' cell limits and allows table-level sharing permissions. ```json { "storageMode": "standalone", "tables": { "users": { "schema": { "id": { "type": "string", "primaryKey": true }, "name": { "type": "string", "required": true }, "email": { "type": "string", "required": true } } } } } ``` Run `npx nsa-sheets-db-builder build --db my-app` and you get a full REST API with CRUD, filtering, pagination, and audit trails. ## When NOT to Use Sheets - More than ~50,000 rows per table - Need for complex JOINs or transactions - Sub-100ms response times required - Multi-region write consistency For everything else — internal tools, blogs, small SaaS, MVPs — Sheets is genuinely great.