Permissions and availability
Features locked by plan, sign-in or role.
When something is locked — by plan, by signing in, or by not being part of an intro — Bridge shows what's there and why it's locked, with one way forward. A locked feature never just disappears.
The problem
Not everything in Bridge is open to everyone. A free plan sees less, a signed-out visitor sees nothing personal, some apps aren't ready yet, and one connected account may not be able to do what another can. If a locked thing simply vanishes, people never learn it exists. If it's a button that does nothing, they can't tell why.
What to do
- Show what's there. On a free plan the real content shows, blurred and unclickable. Signed out, the page shows what you'd get.
- Say why, and give one way forward. A lock with a title naming what you'd see, one sentence, and one action: "Upgrade plan ↗" or "Log in to Bridge".
- Don't guess while you wait. Until the plan has loaded, show a skeleton, not the lock and not the content.
Which one do I use?
| Situation | Do this | Bridge example |
|---|---|---|
| A paid feature, seen on a free plan | Blur the real content, make it unclickable, and lay a lock card over it: icon, title, one sentence, "Upgrade plan ↗" | See who can connect you |
| The visitor isn't signed in | Show what they'd get, then a primary "Log in to Bridge" to https://brdg.app/login, in a new tab | Log in to see your network |
| The plan is still loading | A skeleton the shape of the content | Org page → Connectors tab |
| Searching a locked list | Search still works; the results stay masked | Connectors tab on a free plan |
| An app that isn't ready yet | A gray "Coming soon" Tag, no link, and the card can't be clicked. The app switcher leaves it out | Updates · Coming soon |
| One account can't do something another can | Say so on that account's row, in words. Offer only what works there | Calendar sync not available for Microsoft · Can't send intros from this account |
| An account needs signing in again | A warning line on the row, and Reconnect as its only action | Reconnect needed. The token has expired. |
| Someone else controls it (a plan your firm pays for) | Say who | Managed by your firm · Shared by Marcus Bell |
| A role you don't have (admin) | Not shown at all: Admin is in the switcher only for admins, and admin pages send everyone else home | Switcher → Admin |
See it work
Live examples built from the package on the sample network. Click through them.
Free plan: blurred, with one way forward
Switch plans to compare. The plan takes a moment to load, so the tab shows a skeleton first, never a flash of the lock or the names.
Who can connect you to Quillbase
See who can connect you
Upgrade to Pro to see everyone in your network who can introduce you to people at Quillbase.
Signed out: show what you'd get
The card is real and its numbers are hidden. One action signs in, in a new tab, so the visitor keeps their place.
Your contacts
People stored in your Bridge address book across all connected accounts.
Log in to see your network
Your network reach, shared contacts, and VC and startup connections, in one place.
Say what this account can't do
Each row says in words what doesn't work there. The broken account offers only Reconnect. In Bridge OS, Reconnect opens Bridge's sign-in app in a new tab; here the return is simulated.
ana@lanternfield.example Google
Calendar synced 2 days ago
ana.ruiz@mailbox.example Microsoft
Calendar sync not available for Microsoft
ana@juniperrow.example Google
Reconnect needed: the token has expired
What to write
| Part | Rule | Example |
|---|---|---|
| Lock title | What you'd see, as an action. Not "Locked" or "Pro only". | See who can connect you |
| Lock sentence | What upgrading gives, naming the thing on screen. | Upgrade to Pro to see everyone in your network who can introduce you to people at Quillbase. |
| Lock action | "Upgrade plan" with ↗. It opens billing in a new tab. | Upgrade plan ↗ |
| Signed out | Title says what signing in shows; the button says where you're going. | Log in to see your network · Log in to Bridge |
| Not ready | "Coming soon", in sentence case, as a Tag. | Coming soon |
| Can't do here | "Can't …" or "… not available for …": what doesn't work and where. | Can't send intros from this account |
| Someone else's | Who controls it. | Covered by Marcus Bell · Managed by your firm |
Accessibility
- The lock card's words say what's locked and why; the lock icon is decorative.
- Blurred content can't be clicked or selected. On a free plan the server sends only the shape of the list, never the names, so nothing hidden can be read out.
- A "Coming soon" card isn't a link, so it isn't a tab stop.
- Status lines on account rows pair the warning color with an icon and words.
| Keys | What happens |
|---|---|
| Tab | Reaches the lock card's action, the log-in button, or a row's Reconnect. |
| Enter | Follows the link (upgrade or log in opens a new tab). |
| Enter / Space | Presses Reconnect. |
Components this uses
Each opens that component’s own page, with its options and code.
| Component | Its job here |
|---|---|
| Button | primary for the one way forward (Upgrade plan, Log in to Bridge), rendered as a link; secondary for Reconnect. |
| DataState | The skeleton while the plan loads, in the same frame as the content. |
| Tag | Grey "Coming soon" on an app that isn't ready. |
| SearchInput | Still works under a lock; results come back masked. |
Not decided yet
Proposals for Aman to approve, change or reject. Not rules.
- Hide blurred content from keyboard and screen readers too (for example with
inert), in case a locked area ever contains controls. - Tell screen-reader users that Upgrade plan and Log in to Bridge open a new tab; today only the ↗ shows it, and only on Upgrade.
- Disconnect is hidden on your only connected account (so you can't strand yourself). Whether to say why instead isn't decided.
Where Bridge OS differs today
Follow this page, not the gap.
- "Coming soon" looks different in three places: a gray "Coming soon" Tag on the dashboard, a yellow "Coming Soon" Tag on the app's page, and a blue 9px "Soon" in the sidebar.
- The network page's signed-out "Log in to Bridge" opens in the same tab, against the new-tab rule (
network-logged-out-view.tsx). - The free-plan lock card's Upgrade link is a hand-made
<a>styled as a button, with a hard-coded shadow (org-tabs.tsx).
Sources
- Bridge OS
org-tabs.tsxConnectorsUpgradeOverlay - Bridge OS DESIGN.md → Auth-aware UI;
network-logged-out-view.tsx - Bridge OS
org-tabs.tsx(isFreePlan === null) - components.md → SearchInput (free-plan ConnectorsTab)
- Bridge OS
org-tabs.tsx,profile-tab.tsx(PLAN_UPGRADE_URL) - Bridge OS
app/dashboard.tsx(AppCard),app-detail-content.tsx,app-launcher.tsx,embed/app-switcher.ts - Bridge OS
app/(admin)/layout.tsx,components/layout/nav-switcher.tsx - Bridge OS
connected-accounts-section.tsx,calendar-sync-status.tsx; components.md → ConnectedAccountsSection - Bridge OS
profile-tab.tsx(subscription card) - Bridge OS
org-tabs.tsx(ConnectorsTab comment)