Sites
Sites keeps each Site with its Pages, navigation and Brand, served on one or more Domains, with previews, redirects and rollbacks.
Sites keeps every Site a Startup publishes, with its Pages, navigation and Brand, on its own Domains. Every Change gets a preview, and every publish rolls back in one step.
Summary
| Part | This System |
|---|---|
| Group | Moves to Products |
| Status | Live |
| Shelf | Front: offered from a Startup’s first days |
You can ask:
- “Put up a landing page”
- “Change the headline on the home page”
- “Roll back the last change to the site”
- “Add a pricing page”
What you get
| Part | This System |
|---|---|
| Starts | On for every Startup at creation, with nothing to install. |
| Built from | Apps and sites, Domains, Domain registration, Database, Search |
Nouns it owns
| Noun | Definition |
|---|---|
| Site | A Site is a website as a Thing: its Pages, navigation, and Brand, served on one or more Domains. |
| Page | A Page is an addressable page of a Site, of a named type such as pricing, about one Thing or each member of a Collection. |
| Domain | A Domain is a hostname that points at a Thing, with a role, a status, and a lifecycle tracked as data. |
| Theme | A Theme is the design tokens of a Brand, its color, type, spacing, radius, and motion, that every Component reads when it renders. |
| Portal | A Portal is the signed-in part of a Site where each Customer orders, tracks delivery, accepts work, and pays, seeing only their own records. |
Verbs
| Verb | Object | Approval | Event |
|---|---|---|---|
| Site.create | Site | None | Site.created |
| Site.publish | Site | Asks first | Site.published |
| Page.create | Page | None | Page.created |
| Page.update | Page | None | Page.updated |
| Domain.register | Domain | Asks first; waits 1 business hour | Domain.registered |
| Domain.connect | Domain | Asks first | Domain.connected |
| Domain.transfer | Domain | Asks first; waits 1 business day | Domain.transferred |
Events
| Direction | Event | How |
|---|---|---|
| Emits | Site.created | By Site.create |
| Emits | Site.published | By Site.publish |
| Emits | Page.created | By Page.create |
| Emits | Page.updated | By Page.update |
| Emits | Domain.registered | By Domain.register |
| Emits | Domain.connected | By Domain.connect |
| Emits | Domain.transferred | By Domain.transfer |
| Emits | Domain.renewalDue | Raised when a date passes |
| Emits | Domain.expired | Raised when a date passes |
States
The lifecycle of a Domain:
| State | Meaning | Moves to |
|---|---|---|
candidate (first) | A name found by search that no one here holds yet. | held by Domain.register; registered by Domain.register; claimed by Domain.claim; connected by Domain.connect |
held | Registered to the holding Company and not yet assigned to a Startup. | claimed by Domain.claim; released by Domain.release |
claimed | Assigned to a Startup: a label under an issuing Domain, or a held Domain. | live by Domain.verify; released by Domain.release |
registered | Registered to its owner of record and pointed at the Startup’s address. | verifying by Domain.verify |
connected | Attached from another registrar while its ownership proof is checked. | verifying by Domain.verify |
verifying | Its first DNS, ownership and certificate checks are running. | live by Domain.verify; degraded by Domain.verify |
live | Serving, with its DNS, ownership and certificate checks passing. | degraded by Domain.verify; expiring on Domain.renewalDue; renewed by Domain.renew; transferred by Domain.transfer; released by Domain.release |
degraded | A check failed; a degraded canonical Domain opens an Incident. | live by Domain.verify; released by Domain.release |
expiring | Inside its renewal window with no renewal yet. | renewed by Domain.renew; lapsed on Domain.expired |
lapsed | Its registration ended unrenewed, and the registrar may still restore it. | renewed by Domain.renew; released by Domain.release |
renewed | Extended by whole years at its renewal price. | live by Domain.verify |
transferred | Moved to another holder or registrar, with its record and history kept. | None: it ends here. |
released | Its registration or claim ended, and its record, history and aliases are kept. | None: it ends here. |
Who operates it
| Part | This System |
|---|---|
| Accountable | Designer |
| Team | Product Team |
| Seat | A role agent holds it until a Human is seated. |
| Autonomy | supervised |
| Also calls its Verbs | Integration Engineer, Content Lead, Legal Lead, Contracts Manager |
Approvals and limits
| Verb | Rule | Detail |
|---|---|---|
| Site.publish | A person says yes first | None. |
| Domain.register | A person says yes first | Waits 1 business hour |
| Domain.connect | A person says yes first | None. |
| Domain.transfer | A person says yes first | Waits 1 business day |
| Page.create | Limit for the Content Lead | 5 calls per week |
Processes that use it
| Process | How it uses it |
|---|---|
| Launches | A Workflow writes Page |
| Content marketing | A Workflow writes Page |
| Contracting | A step calls Page.create |
| Product definition | A step calls Page.update |
| Retention | A step calls Page.create |
| Takedowns | A step calls Page.update |
Rail underneath
None.
Views and dashboards
| View | Shows | Metrics |
|---|---|---|
| The Designer’s view | The Metrics its accountable Role answers for. | Page task success |
Access
What each Access level may call here.
| Access level | May call |
|---|---|
owner | Every Verb (29) |
admin | All but 2 of 29: Domain.register, Domain.transfer |
member | All but 2 of 29: Domain.register, Domain.transfer |
viewer | Read only (10 of 29) |
Import and export
None.
Fees and pricing
None.
Availability and limits
| Part | This System |
|---|---|
| Status | Live |
Compliance notes
Controls it carries:
Related Systems
- Intellectual property: also holds Domain
Example
A SaaS for dental clinics publishes a pricing Page for each of the 40 cities it serves. The Content Lead Agent drafts all 40 from one layout, previews them on a branch, and publishes them as one Change. A typo found an hour later rolls back without touching the other 39.