Accounts that revoke
Sessions are rows, not tokens. Signing out everywhere really does end every session on every device — no waiting for a token to expire.
TurboRepo starter · grows on you
TurboHamscaler gives you accounts, organisations, roles and per-tenant data — with the isolation checks that keep them honest. It scales the way TurboHam does — same hamster, considerably larger. Clone it and start on the part that is actually yours.
Demo sign-in: turboham@example.com · hamster-wheel-9000

Sessions are rows, not tokens. Signing out everywhere really does end every session on every device — no waiting for a token to expire.
Members, admins and owners, with per-organisation data. Everyone starts in an organisation of their own and joins others by invitation.
Every tenant query lives in one file and takes the organisation first. A suite written from the attacker’s side proves the rows stay apart.
Applied in order and hashed, so editing one that has already run is an error rather than a database that quietly differs from everyone else’s.
No account, no container, no native build. Install, seed, and you have a working app with two organisations to poke at. Cheaper to run than the hamster.
Lint, types, tenancy guards, unit and API tests, bundle and image budgets, the API suite against three databases, and the browser suite twice — dev server and built output.
npm install
npm run db:seed
npm run devTwo organisations are seeded on purpose. Sign in as TurboHam and the other one’s projects, members and audit log are simply not there — separate burrows, no connecting tunnel, no filter to remember and no flag to forget.