See Bailiff in Action

Watch how easy it is to set up authorization—from simple roles to complex relationships.

The Problem

Your current permission checks are brittle

Hard-coded role checks scattered throughout your codebase.

// Your current approach
if (user.role === 'admin' || user.id === resource.ownerId) {
// Allow access
}
❌ Hard to maintain
Change roles? Update code everywhere
❌ Doesn't scale
Complex permissions = spaghetti code
❌ No audit trail
Why was access denied? Who knows.
Step 1: Set Up Roles

Define roles visually—no code changes needed

Use Bailiff's UI to create roles and permissions. Your code stays simple and flexible.

Role Builder

Admin
can_edit
can_delete
can_invite
Editor
can_edit
can_delete
can_invite
Viewer
can_edit
can_view
can_delete

✨ That's it! Three roles created in under 30 seconds. Change permissions anytime without touching your code.

Your Code Stays Simple

One simple check, flexible permissions

Your permission checks are now just one line—no hard-coded roles.

Before (Hard-coded)
// Tightly coupled to roles
if (user.role === 'admin' ||
user.role === 'editor') {
// Allow
}
With Bailiff (Flexible)
// Decoupled from roles
const allowed = await bailiff.check(
user.id, 'can_edit', resource.id
);

💡 The difference: Change who can edit in Bailiff's UI—no code changes needed. Works with roles now, relationships later.

Step 2: Assign Users

Connect users to roles

Drag and drop, or use our API. Either way, it's instant.

Users
A
alice@company.com
Admin
B
bob@company.com
Editor
C
charlie@company.com
Viewer
Relationship
A
alice
Admin
role
alice has role Admin
Step 3: Test Permissions

Check permissions instantly

See exactly why a permission was allowed or denied, with full transparency.

Check Permission
User
Action
Resource
Result
ALLOWED
alice@company.com can edit workspace:project-123
Why was this allowed?
1
alice@company.com has role Admin
2
Role Admin has permission can_edit
Result: Permission granted
Bonus: Scale to Full ReBAC

Grow from roles to relationships

When you need more complexity, Bailiff grows with you—no rebuild required.

Start with simple roles, then add complex relationships like:

Document Owner
user owns document
Team Member
user member_of team
Shared Folder
document in folder

🚀 No migration needed. Your existing roles work alongside new relationships.

Ready to get started?

Join the waitlist and be among the first to experience enterprise-grade authorization without the enterprise complexity.

Join the waitlist

Bailiff

Enterprise-grade authorization, without the enterprise bill.

© 2025 Bailiff. All rights reserved.