Skip to content

Document detail recipe

Rendered

matter
app.mattermode.com / entities / ent_a7f3⌘K

Acme Holdings, Inc.

Lifecyclestate machine — drafted → executed → filed → effective
draftedexecutedfiledeffective
Identitycontent-addressable record
ident_a7f3c5b2
jurisdictionDE
formed_at2026-03-12T18:22:11Z
statusSigned
Audit traillast 4 events
12:14:08entity.created
12:14:22stakeholder.added
12:15:01grant.issued
12:15:47filing.submitted

Goal

When a founder, board secretary, or counsel opens a specific document (a SAFE, a board consent, an indemnification agreement), they need to verify (1) where it is in its lifecycle, (2) who's signed, (3) what tokens / scopes touched it, and (4) what they can do next (re-send, void, archive). The document-detail recipe puts the lifecycle bar at the top and lays the data + actions out so the user can read top-to-bottom without scrolling for action affordances.

Layout breakdown

Two-column inspector inside the authenticated dashboard shell. Region map:

┌─ AppBreadcrumb ──────────────────────────────────────────────────┐
│  Entities › Waypoint › Documents › Q3 SAFE (doc_a1b2c3)            │
├─ Section: Lifecycle bar (full-bleed Pill row) ────────────────────┤
│  ● Draft  ───  ● Sent  ───  ◌ Partially signed  ─── Executed       │
├─ Section: Body (8/12 + 4/12 at ≥ 1024px) ─────────────────────────┤
│  ┌── Primary column (8/12) ──┐  ┌── Action rail (4/12) ──┐         │
│  │  Card: Identity            │  │  Card: Actions          │         │
│  │   Doc ID         doc_…    │  │   [Send reminder]       │         │
│  │   Type           SAFE      │  │   [Void document]       │         │
│  │   Template       v3.1      │  │   [Download PDF]        │         │
│  │   Created        2026-…   │  │  Card: Tokens that      │         │
│  │   Authorized by  res_…    │  │   touched this          │         │
│  │  SignatureStack            │  │   • tier_3 token (…)    │         │
│  │   Pending signers + envelope│  │   • tier_2 token (…)    │         │
│  │  Card: Audit trail         │  │  Card: Related          │         │
│  │   Timeline.* feed scoped   │  │   • Subscription Agmt   │         │
│  │   to this document         │  │   • Side letter         │         │
│  └────────────────────────────┘  └─────────────────────────┘         │
└────────────────────────────────────────────────────────────────────┘

Component manifest

RegionComponentWhy over alternatives
BreadcrumbAppBreadcrumbHierarchical context; mono crumb for the doc ID
Lifecycle barSlidingPill with size="md" + lifecycle dotsThe state-machine progression reads as a switcher; SlidingPill conveys "this is the current state"
Identity cardCard with a 2-col gridPlain elevated container; values use MonoChip for IDs
Signature regionSignatureStackThe canonical multi-signer surface — preserves the envelope semantics
Audit trailTimeline.* (Timeline)Composable event-feed atoms scoped to the document
Action railCard + ButtonStacked buttons in the rail; primary action ("Send reminder") at the top
Tokens touchedCard + token listPlain card; each token row links to the token-detail page
Related documentsCard + link listCross-document links from the resolution's authorization chain

Responsive behaviour

BreakpointLayout
< 768pxSingle column. Lifecycle bar full-width; Identity, SignatureStack, Audit, Actions, Tokens, Related stack vertically
768–1023pxSingle column with wider cards
≥ 1024pxTwo columns: Identity + SignatureStack + Audit in primary (8/12); Actions + Tokens + Related in rail (4/12)

States

StateTriggerBehaviour
DraftDocument.execution_status: draftLifecycle bar shows "Draft" filled; SignatureStack hidden; Actions card shows "Send for signature" primary
Sentexecution_status: sentLifecycle bar advances; SignatureStack shows envelope with zero signatures; Actions card shows "Re-send" + "Void"
Partially signedexecution_status: partially_signedLifecycle bar shows current state; SignatureStack shows per-signer pills; primary action "Send reminder"
Executedexecution_status: executedLifecycle bar fully advanced; SignatureStack converts to static audit list; Actions card shows "Download PDF" + "Archive"
Voidexecution_status: voidLifecycle bar shows a single red "Void" state; banner above body explains who voided and when
Supersededexecution_status: supersededBanner links to the superseding document; body is read-only

Implementation

Source: apps/app/app/(authenticated)/documents/[id]/page.tsx. Server component; document data fetched server-side. The lifecycle bar reads Document.execution_status and maps to the SlidingPill items. SignatureStack hydrates from Document.signing_envelope.recipients[].

Source

apps/app/app/(authenticated)/documents/[id]/page.tsx

On this page