| Hosts your frontend | Yes: static files and server code on Workers | No; Edge Functions only |
| SQL database | D1 (SQLite) | Postgres with extensions |
| Sign-in | Passkeys, GitHub, Google, email links and passwords, as standard OpenID Connect; no phone | Yes, including email and password, magic links, phone, and passkeys in beta |
| Row-level security | Per table, through the data API: everyone, signed-in users or each row’s owner | Yes, as Postgres policies |
| Realtime | Channels with presence and broadcast on Durable Objects, and the changes made through the data API | Broadcast, presence and database changes |
| File storage | R2, S3-compatible, with a file browser for uploads (up to 25 MB), downloads and deletions | Supabase Storage, S3-compatible |
| Server code | Workers in JavaScript, TypeScript or Python; containers on Workers Paid | Edge Functions in TypeScript (Deno-compatible) |
| Preview environments | Every branch and pull request (Cloudflare Worker Previews, beta), on staging copies of your data | Branching on paid plans: a database per pull request at $0.01344 per branch-hour |
| Rollback | One click for code; point-in-time restore for databases | Point-in-time recovery is a paid add-on; Free has no backups |
| Table and SQL editor | A table browser and SQL console, with a restore point before each change | Table Editor and SQL Editor in Studio, on Free |