Brand
BehalfID is permission infrastructure. The brand reflects what the product does: define a boundary, verify each action against it, and log the decision. Restraint over decoration. One accent color. No metaphors that hide what is happening.
Give every agent a verifiable passport so its action is checked before it runs — not after.
If the answer isn't yes, the action doesn't run. The brand reflects this: no soft suggestions, no marketing maybes.
Every layout makes the decision moment visible. Where possible, render the verify call, the decision, and the audit event.
Indigo for the brand, status colors only when a decision must be read. Everything else is grayscale.
Don't draw confidence we haven't shipped. Site Guard says "preview" because it's a preview. Action Gateway says "MVP" because it is one.
Pages, ads, and the console all sit comfortably next to the SDK call. JSON, code, and prose share the same monospace and cadence.
Hairlines and grids do the work that gradients and shadows would do elsewhere. Borders are 1px. Type does the heavy lifting.
The logo is the wordmark “BehalfID” with ID in indigo. The mark is a square monogram derived from two rounded bars — neutral and accent — read as identity (II).
on --bg #000000on --panel #0a0a0aon warm white--accent #6366F1Plain. Technical. Active. Address the developer in second person; describe the system in third person. Never personify the agent — it acts on behalf of someone, it doesn't decide.
These are product nouns. Don't substitute synonyms. The console says “permission,” the docs say “permission,” the marketing site says “permission.”
passportThe set of permissions attached to one agent. Plural is OK ("passport links"). Never "credentials."
permissionOne rule. Has action, resource/vendor, optional amount, optional expiry. Never "policy" or "scope."
verifyThe act of asking BehalfID whether a specific action is allowed. Never "authorize" — authorization is what calling code does after.
decisionThe result of verify: allowed, denied, or needs_approval. Never "response" in user-facing copy.
fail closedIf verify fails or returns not-allowed, the action does not run. Default behavior.
native agent / connected agentNative = identity created in BehalfID. Connected = manual record of an external agent (Ollie, ChatGPT, Claude, Zapier). Provider fields are metadata, not authentication.
Action GatewayThe execution path BehalfID controls end-to-end. MVP: safe public web reads.
Site GuardThe website-owner pattern for enforcing AI access at middleware/proxy/worker boundaries. Currently a preview, not a CDN.
Status is conveyed by border color, label, and decision text. No traffic lights, no checkmarks. Marketing pages may use ▪ as a list bullet — and that's it.
One subtle radial behind the hero is fine. Cards stay flat. Gradient noise reads as marketing fluff and undermines the 'this is infrastructure' pitch.
Agents don't think, want, or trust. They request actions. Permissions allow or deny those actions. Keep grammar in that frame.
"Preview," "planned," and "MVP" are honest words. They appear in marketing because they appear in the product.