Postgres / Supabase / Neon
Users, billing state, projects, permissions, and general application records.
Strong default for most products, but you still need to model the schema well.
Stack category
Choose storage by data shape first: relational records, files, caches, vectors, or a mix of all four.
Use relational storage for users and product state, object storage for files, cache for speed, and vectors only when semantic search or retrieval actually matters.
View stack libraryStorage tools to compare
Users, billing state, projects, permissions, and general application records.
Strong default for most products, but you still need to model the schema well.
Lightweight app data, edge-friendly products, and smaller operational footprints.
Convenient for low-ops builds, but not the right fit for every relational workload.
Files, assets, exports, caches, and fast reuse of generated outputs.
Great support layer, but you still need a primary database for core app state.
Practical fit
Best when you want D1, R2, and a low-ops edge setup together.
Best when product state, entitlements, and billing records need to stay aligned.