Trending Posts

About Us

Rowistan exists for one specific kind of reader: someone who has already shipped a Supabase-backed product, has real customers on it, and just hit a wall a basic tutorial never warned them about. A Row Level Security policy that used to run in milliseconds is suddenly taking two seconds. A schema decision that looked fine with three test accounts is falling apart with three hundred real tenants.

That's the gap this blog covers. Not "how to turn on RLS," but what happens after you turn it on and it has to survive production.

What You'll Find Here

Rowistan is organized around five areas that consistently trip up multi-tenant Postgres and Supabase applications:

  • Architecture & Data Modeling: schema design, tenant isolation models, and the real trade-offs between shared schema, schema-per-tenant, and database-per-tenant.
  • Performance & Query Optimization: why RLS policies slow down at scale, and how to fix it with indexing and query restructuring.
  • Authentication Integration: wiring Clerk, Auth0, and custom JWT claims into Postgres-level authorization.
  • Security & Auditing: the RLS anti-patterns and SECURITY DEFINER risks that don't show up until a real security review.
  • Testing & Infrastructure: pgTAP, CI/CD, migrations, and load testing for Postgres-backed systems.

Who's Behind It

Mubeen Ahmad Khan. I've spent the last five years working with Postgres and, more recently, Supabase, building and maintaining production database systems for B2B SaaS products. I started Rowistan because most content on multi-tenant Supabase architecture stops at the tutorial stage, RLS enabled, demo working, done, and never covers what happens once real tenants and real data show up. This blog is where I write the version of that content I wish existed when I was figuring it out the hard way.

Why "Rowistan"

Where every row knows its place. That's the whole idea behind Row Level Security done right: every row in a shared table restricted to exactly the tenant it belongs to, without a single line of application code standing in the way.

Get in Touch

Found an error, have a production war story worth writing up, or want to suggest a topic? Reach out here.