Blog

Latest updates, tutorials, and insights about Rebase and building on Postgres

Every check in our CI is a post-mortem, and that is the problem

A gate added after an incident only covers that incident's shape. We keep a catalogue of named bug classes instead, with the sweep that finds each one.

Atlas plans your migration in a database that cannot hold your schema

A pgvector column made atlas schema apply impossible, because Atlas plans in a scratch database. Four workarounds that failed, and the carve-out that worked.

The docs gate was green, and six of the claims were still wrong

Checking that docs name only symbols the code exports is mechanical; we do it across 2952 code fences in six languages. Checking the claims are true is harder.

Row-level security does not raise on a write it forbids

A DELETE your RLS policy rejects and one that matched nothing look identical: zero rows, no error. That silence 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 as the API, fail-closed and in the database. Why that matters, and how to check yours.

Supabase vs Appwrite vs Firebase vs PocketBase vs Convex: choosing a backend in 2026

An honest comparison of the major backend-as-a-service platforms: databases, authorization, realtime, self-hosting and pricing, and where Rebase fits.