Every SaaS boilerplate I tried had the same problem: auth worked, but multi-tenancy was fake.

You know what I mean. The "multi-tenant" feature was just a userId filter in every query. No data isolation. No Row-Level Security. Just hope that no one forgets a WHERE clause.

After building my third SaaS from scratch and copy-pasting the same auth, team management, and permissions code again, I decided to extract it properly. Not another todo app with Stripe - but the actual foundation I use in production.

Today I'm open-sourcing it: saas-root.

The Problem with Existing Boilerplates