Qwibik One Docs
Guides

Workspaces

Understand workspace boundaries, team membership, tenant readiness, and future workspace-aware documentation.

Workspaces are the core organizing unit in Qwibik One. They provide the boundary for people, configuration, operational data, billing, and product modules.

Workspace responsibilities

A workspace should own:

  • User membership and role assignments.
  • Module configuration and operational preferences.
  • Customer, finance, support, commerce, and activity records.
  • Billing state and subscription entitlements.
  • Integration credentials and webhook configuration.

Tenant boundary

Qwibik One should treat the workspace identifier as a required boundary in application code, database queries, events, and background jobs.

tenant-query.ts
const invoices = await db.invoice.findMany({
  where: {
    workspaceId: activeWorkspace.id,
    status: "open",
  },
});

Tenant-safe implementation means application features should not rely only on route shape or client state. Server code must validate that the active user belongs to the workspace and has permission for the requested action.

Membership model

Workspace membership is distinct from the global user profile. A user can belong to multiple workspaces and can hold different roles in each one.

ConceptScopePurpose
UserGlobalIdentity, authentication, profile-level data
WorkspaceTenantOperational boundary and configuration
MembershipUser plus workspaceRole, status, and access within one workspace
PermissionRole or policyFine-grained ability to perform an action

Documentation implications

The docs app is currently public and static. Its architecture leaves room for future workspace-aware documentation without changing the public IA:

  • Public docs remain statically generated for SEO and performance.
  • Private implementation notes can later be resolved through authenticated server components.
  • AI and search indexes can include public metadata now, then add scoped private indexes later.
  • Versioned or localized content can be added through Fumadocs routing conventions.

On this page