Airtable, Notion, or Postgres? Pick the Right Data Layer

Опубликовано: 18 Июнь 2026
на канале: Headcount Zero
2
0

Airtable, Notion, or Postgres? Pick the Right Data Layer

The Decision Framework



Every solo builder faces this choice: Airtable, Notion, or Postgres for their automation data layer. Most comparisons focus on features and interfaces. Jordan cuts through the noise with a three-axis framework:




1. Throughput ceiling - How many requests per second before the API rejects you?


2. Concurrency safety - Can you write to the same record from multiple places without corruption?


3. Cost at volume - What does it actually cost when your automations scale?


Airtable: Lightweight Relational Ops



Rate Limits:




• 5 requests per second per base


• 50 requests per second aggregate across all bases per token


• Exceed either limit → HTTP 429 with 30-second backoff




Optimization Strategies:




• Batch up to 10 records per write request (effective throughput: ~50 records/second)


• Use performUpsert parameter for find/create/update in single call


• Leverage Sync API on Business/Enterprise (10k rows per request, 20 requests per 5 minutes per base)




Monthly Caps:




• Free: 1,000 calls/month


• Team: 100,000 calls/month ($20/user/month)


• Business: "High" limit ($45/user/month)




Sweet Spot: CRM tables, project trackers, client pipelines with moderate API usage

Notion: The Docs-Adjacent Database



Rate Limits:




• 3 requests per second average per integration (despite rumors of 5 rps)


• Bursts allowed, but sustained usage above 3 rps triggers 429s




Payload Constraints:




• 500KB max per request


• 1,000 block elements max per request


• 100 items max for relation/multi-select updates


• 100 rows max per database query page




Sweet Spot: Client project wikis, knowledge bases where content is the value and database is just the index



Limitation: Pushing rich pages requires 2-3 API calls per record, dropping effective throughput to ~1 record/second

Postgres on Supabase: When You Need the Real Thing



Key Advantages:




• Transactions: Atomic UPSERT (INSERT ON CONFLICT) for idempotent writes


• True Concurrency: Multiple webhook events can hit the same table simultaneously without corruption


• Connection Scaling: Micro (60 direct/200 pooled) to 16XL (500 direct/12,000 pooled)




Cost Structure:




• Supabase Pro: $25/month per org (includes $10 compute credits)


• Micro compute: ~$10/month


• Net cost: $25/month for fully managed Postgres (only $5 more than Airtable Team)




Use Cases:




• Stripe webhook ledgers


• Event processing requiring atomic writes


• High-frequency sync jobs


• Any workload needing real transactions


The Bright Line Decision Rules



Stay on Airtable if:




• Under 5 requests/second per base


• Under 100k API calls/month (Team plan)


• Can batch writes effectively


• Don't need atomic transactions




Stay on Notion if:




• API usage is light sync (few summaries/day)


• Database is subordinate to documents


• Under 3 requests/second average


• Payload sizes stay under 500KB




Move to Postgres when:




• Need atomic writes under concurrency


• Routinely exceed Airtable's 100k monthly calls


• Require real transactions (multi-statement operations)


• Hit Notion's 3 rps or payload limits


Real Client Example: The Three-Tool Solution



Jordan's client who migrated from Notion → Airtable → Supabase ended up using all three:




• Notion: Client-facing project tracker (clients loved the interface, minimal API load)


• Airtable: CRM and pipeline reporting (lightweight relational ops, ~200 updates/day)


• Supabase: Stripe webhook ledger and event processing ($25/month for atomic, idempotent writes)


Running the Numbers



25,000 record changes per day scenario:



Airtable:




• With 10-record batching: 2,500 write calls/day


• 75,000 calls/month (75% of Team plan cap)


• Need Business plan ($45/user/month) when reads push you over




Notion:




• 25,000 API calls/day at 3 requests/second


• Over 2 hours of sustained API time just for writes


• Retry-After he...