Appbricx
Features

Build

  • Coding agents and MCP
  • UI components and hooks
  • Templates
  • Verify testing
  • Builder console

Data

  • Postgres database
  • Data API
  • Realtime

Users

  • Row-level security
  • Sign-in and auth
  • Organisations and teams
  • Payments

Logic

  • Workflows and jobs
  • Server functions and webhooks
  • AI in your app
  • Integrations

Ship and own

  • Backups and rollback
  • Hosting and domains
  • Self-host and export
All features
ShowcaseTemplatesPricingDocs
Log inStart free
  • Features
  • Showcase
  • Templates
  • Pricing
  • Docs
  • Log in

Build

  • Coding agents and MCP
  • UI components and hooks
  • Templates
  • Verify testing
  • Builder console

Data

  • Postgres database
  • Data API
  • Realtime

Users

  • Row-level security
  • Sign-in and auth
  • Organisations and teams
  • Payments

Logic

  • Workflows and jobs
  • Server functions and webhooks
  • AI in your app
  • Integrations

Ship and own

  • Backups and rollback
  • Hosting and domains
  • Self-host and export
  • All features
  • Coding agents and MCP
  • UI components and hooks
  • Templates
  • Verify testing
  • Builder console
  • Postgres database
  • Data API
  • Realtime
  • Row-level security
  • Sign-in and auth
  • Organisations and teams
  • Payments
  • Workflows and jobs
  • Server functions and webhooks
  • AI in your app
  • Integrations
  • Backups and rollback
  • Hosting and domains
  • Self-host and export
  1. Home
  2. Features
  3. Organisations and teams

Organisations and teams

Multi-tenant apps where every organisation sees only its own data.

In a B2B app, rows belong to an organisation and only its members may see them. Mark one table as the membership table, give organisation-owned tables an org_field, and use two more access scopes: org for members and org_admin for the people who run the organisation. Postgres enforces the boundary, and verify proves it against a second organisation.

Start freeRead the guide
Organisation scopeverify: role-matrix
roleorganisationmembershipprojectinvoice
memberorgorgorgorg
org adminorg_adminorg_adminorgorg_admin
staffallallallall
  • A member can't read or write another organisation's rows
  • Enforced by Postgres row-level security
org and org_admin
Two scopes next to own, all and none
Enforced by Postgres
Row-level security per organisation
Proven by verify
A second tenant, probed and rolled back
Template ready
organisations-and-teams sets it up

How organisation scope is set up

  1. 1

    Mark one table with org_membership: which ref is the organisation and which is the member, and optionally which role values make an admin and which status values count as active.

  2. 2

    Give every other organisation-owned table an org_field and set its access cells to org or org_admin per role. Staff roles can keep "all" to see every organisation.

  3. 3

    Apply and verify. The checker refuses a half-finished setup, and verify builds a second organisation in a rolled-back transaction to prove your members can't read, change, delete or create rows in it.

appbricx.json
{ "name": "membership",
  "org_membership": { "org_ref": "organisation_id",
    "member_ref": "member_id",
    "role_field": "role", "admin_values": ["owner", "admin"],
    "status_field": "status", "active_values": ["active"] } }

{ "name": "project", "org_field": "organisation_id",
  "access": { "member": { "read": "org", "create": true,
              "update": "org", "delete": "org_admin" } } }

// verify, in the role matrix
✓ a member can't read, change, delete or create
  rows in another organisation

Tenancy you don't have to hand-roll

  • Org scope in Postgres

    "org" means rows of an organisation the user belongs to, "org_admin" rows of one they administer. Both become row-level security policies.

  • Admins and paused members

    role_field and admin_values say who administers an organisation; status_field and active_values let you pause a membership without deleting it.

  • Writes stay inside

    Members create rows only in their own organisations and can't move a row to another. With exactly one organisation, a new row lands in it automatically.

  • Checked before apply

    An org cell without a membership table, a table with no ref to the organisation or org_admin without a role field is refused with the reason.

  • A cross-tenant test

    Verify copies one of your organisations, moves a row into the copy and proves a member of yours can't touch it. Nothing is kept.

  • Team admin and invites

    The TeamAdmin block adds people with a role, changes roles and switches accounts off. The template adds email invitations that join on sign-up.

Organisations and teams, as a template

The organisations-and-teams template adds organisations, teams, memberships with owner, admin and member roles, and email invitations. Its attach_to param makes one of your tables, such as projects, private to each organisation. Comments, notifications and booking-calendar take an org_field param to join in.

See the ten live apps

Read the docs

  • Organisation scope in the access guide
  • The organisations-and-teams template
  • Sign-in and invites
  • Verify guide

Works with

  • Row-level securityEach role sees only its rows, enforced by Postgres. Rules check every write.
  • Sign-in and authEmail, magic link, Google with no setup, GitHub, two-factor and organisations.
  • Templates26 checked apps, features, workflows and components your agent adds in one call.

Organisations and teams: common questions

Can I build a multi-tenant SaaS app on Appbricx?

Yes. Rows belong to an organisation, members see only their organisations' rows, and Postgres row-level security enforces it for every caller, not just your screens.

Who counts as an organisation admin?

The membership table's role_field decides: members whose role is one of admin_values get org_admin access. Rules can add more, such as one owner per organisation.

Can my own staff see every organisation?

Yes. Organisation scope applies to the roles you give org cells. A staff role with "read": "all" keeps seeing everything.

How do people join an organisation?

With the organisations-and-teams template, owners and admins invite by email. Someone who already has an account joins straight away; anyone else joins when they sign up with that address.

Your coding agent builds it. Appbricx runs it.

Start freeAll features
Appbricx

The backend, runtime and hosting for apps your coding agent builds. On our cloud, in yours, or on your own servers.

Features

Coding agents and MCPUI components and hooksTemplatesVerify testingBuilder consolePostgres databaseData APIRealtimeRow-level securitySign-in and authOrganisations and teamsPaymentsWorkflows and jobsServer functions and webhooksAI in your appIntegrationsBackups and rollbackHosting and domainsSelf-host and exportAll features

Product

ShowcaseTemplatesPricingFor coding agentsPrivate cloudBring your own AI keyFAQ

Compare

Appbricx vs SupabaseLovable alternativeBolt alternativeFor freelancersFor agencies

Resources

DocumentationReferenceBlogSupportContact

© 2026 Appbricx. All rights reserved.

TermsPrivacyCookiesAcceptable Use