Sonarist project

Sonarist / Design system

Documentation v1.0.0 · Work in progress · UI prototype with separate server foundations

Design system contents

Foundations

Conversation and relationship model

Keep queue state, sender review, work type, sales stage, ownership and product relationships as separate dimensions.

On this page

Conversation states

Conversation states
StateMeaning
new-sendersPending screening shown inside Needs reply
needs-replyA team response is needed
waitingA reply has been added; waiting for the next response
follow-upA planned outreach date exists
referenceKept for reference outside active queues
closedInactive; reopen before composing
junkInactive; restore before composing

Independent fields

Independent fields
FieldValues / boundary
WorkTypeSupport / Sales / General
SalesStageNew / Contacted / Interested / Won / Lost
assigneeIdOptional active teammate; distinct from copied participants
participantIdsAdded internal teammates; not the customer contact
senderReviewpending / approved / reference / junk; retained decision history
Contact.relationshipsCustomer or Prospect per product; optional stage and follow-up
ScopeAll / company / product / inbox; distinct from permission enforcement
Message.deliveryStatussending / sent / delivered / deferred / failed / blocked

Lifecycle rules

Needs reply includes pending new senders in its count. The list sorts needs-reply items by waitingMinutes descending; other queues preserve their source order. Reviewing a sender changes conversation state but the senderReview field remains, so review history can still be navigated.

Contacts can be customers of one product and prospects of another. Assignment is responsibility for a conversation; a relationship owner manages the person record; work classification is a teammate’s role label. None should be treated as a substitute for authenticated authorization.

Source references

Source references
FileResponsibility
lib/types.tsTyped states and records
lib/helpers.tsLabels, scope matching and identity lookup
components/inbox/conversation-list.tsxQueue filtering and sort

Examples from the app

Actual Sonarist components with fictional conversations, people, example.com addresses and simulated operational states. Captured at 2× resolution or higher. Select an image to inspect it full size.

Inbox · Screen · Light · Desktop · 2880 × 2000 px
Sender Review · Screen · Light · Desktop · 2880 × 2000 px
Person Profile · Screen · Light · Desktop · 2880 × 2000 px

Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0