Blog
Latest updates, tutorials, and insights about Rebase and building on Postgres
Atlas plans your migration in a database that cannot hold your schema
A pgvector column made `atlas schema apply` impossible — not flaky, impossible — because Atlas resolves your desired state inside a scratch database it empties on every run. Four workarounds, all measured dead, and the carve-out that worked, including the phantom DROP COLUMN it left behind.
The docs gate was green, and six of the claims were still wrong
Checking that documentation names only symbols the code exports is mechanical, and we do it across 2952 code fences in six languages. Checking that its sentences are true is a different problem, and this is what we found when we went looking.
Row-level security does not raise on a write it forbids
A DELETE your RLS policy rejects and a DELETE that had nothing to match are the same statement with the same result: zero rows, no error. Every other authorization failure in the stack throws. This one arrives as a number nobody reads — and it turns a 403 into a 204.
Your backend's security should not depend on remembering to check
Rebase generates Postgres row-level security from the same definition that generates the API — fail-closed, in the database, where a forgotten middleware call cannot reach it. Here's why that placement matters, and a tool that will tell you whether your own database leaks.
Supabase vs Appwrite vs Firebase vs PocketBase vs Convex: choosing a backend in 2026
A deep, honest comparison of the major backend-as-a-service platforms — databases, authorization models, realtime, self-hosting, pricing — and where Rebase fits in.
