Portal screens for Software: members, seats and plan
The Portal screens Software adds over an API product's Portal, and the data states each screen handles: members, seats, workspaces and per-seat Offers.
A Customer of Software signs in with its people, not one key. Each screen below is the Portal of an API product plus members, seats, a workspace switcher and Offers priced per seat.
0 of 8 screens print. All 8, and the 11 data states, wait for code that serves them.
PlanScreens
The API product's Portal holds keys and usage at apis.dev. The rest are the Software delta.
| Screen | Holds | Calls | Software adds | On the API Portal |
|---|---|---|---|---|
sign-in | sign-in by passkey, email link or single sign-on | none | an invite link lands in its Tenant; a Person in several Tenants picks one in the workspace switcher | no |
members | the People the Tenant admits, each with an Access Level, and seats used and paid | Tenant.invite, Subscription.resize | the whole screen | no |
plan | the Customer's Offer, its seats, its price per seat and the next renewal | Subscription.switch, Subscription.resize, Subscription.unsubscribe | seats, counted from members or set by the buyer | no |
usage | use of each Limit the Offer sets, by day | Limit.raise | use by member | yes |
keys | the Tenant's API Keys, each with its last use | APIKey.issue, APIKey.roll, APIKey.revoke | the member who made each key | yes |
invoices | each Invoice, newest first, with its receipt | Invoice.list, PaymentSource.add | prorated seat lines when members join or leave | no |
settings | the Tenant's name, its verified Domains and its single sign-on | Tenant.update, SSOConnection.create | sign-in rules for every member | no |
onboarding | the first run: at most 5 questions, then the steps to first value | Tenant.invite, Subscription.create | a step that invites teammates | no |
PlanData states
| State | Means | Comes from |
|---|---|---|
signed-out | nobody is signed in | a visit with no session, or a link from a pricing card |
no-key | the Tenant has no API Key | a new Tenant |
no-requests | a key exists and has made no call | a key made, never used |
first-request | the first call arrives while a screen is open | the first call after a key |
over-limit | use has passed a Limit of the Offer | a call past the Limit |
past-due | a renewal payment failed, and everything still works | a Subscription in pastDue |
failing-writes | a change the screen sends fails | an Action that ends failed |
gated-offer | the Offer leaves a feature locked | an Offer without that Entitlement |
one-offer | the Startup sells one Offer | a catalog of one |
no-offer | the Tenant has chosen no Offer | a sign-up that skipped the pricing card |
onboarding-answered | every onboarding question has an answer | a first run already answered |
PlanScreen by state
What each screen shows in each state. A dash means the state leaves the screen as it is.
| State | sign-in | members | plan | usage | keys | invoices | settings | onboarding |
|---|---|---|---|---|---|---|---|---|
signed-out | the entry, with any Offer carried in | — | — | — | — | — | — | — |
no-key | — | — | — | no use yet | make the first key | — | — | first-key step |
no-requests | — | — | — | the first call to try | key never used | — | — | first-call step |
first-request | — | — | — | the call appears | last use set | — | — | step marked done |
over-limit | — | — | the Offer that lifts it | bar past the Limit | — | — | — | — |
past-due | — | card banner | update the card | card banner | card banner | unpaid invoice first | card banner | — |
failing-writes | sign-in error | invite error | change error | — | key error | card error | save error | step error |
gated-offer | — | seat cap, with the Offer above | upgrade offered | locked features | — | — | locked sign-on, with its Offer | — |
one-offer | — | — | no Offer picker | — | — | — | — | no Offer step |
no-offer | — | — | choose an Offer | no Limits shown | — | no invoices | — | ends by choosing one |
onboarding-answered | — | — | — | — | — | — | — | no question card |
API only: what a Customer gets without an App
What a Customer of Headless SaaS reaches with no App: five Interfaces, the machine registers an Agent reads, keys, and prices per call.
Admin: derivation rules and edge cases
Every rule that turns a Noun's properties, references and Verbs into the Admin's list, record page and forms, with the edge cases.