Foundations
Content, names and time
Write useful subjects, restrained metadata and explicit feedback without overstating prototype behavior.
On this page
Writing rules
- Subjects identify the customer’s problem or next decision.
- Snippets summarize the latest content without duplicating all metadata.
- Use Needs reply, Waiting, Follow up, Reference, Closed and Junk consistently.
- Status messages distinguish local preparation from delivery or persistence.
- Error text explains what failed and which action can recover.
- Keep sender names and addresses visible where email identity matters.
Time and feedback
| Source expression | Limit |
|---|---|
| waitingAge and waitingMinutes | Fixture-readable age plus numeric sort value; not calculated from a live clock here |
| lastActivity and sentAt | Display strings; locale and timezone are not normalized DTOs |
| Follow-up date | Intl month/day from selected date at noon; year is omitted |
| Draft saved | 500ms local fingerprint timer, not durable storage |
| Toast | 3200ms local message; no proof of provider success |
| Message original | Synthesized source view from fixture fields, not an archived raw MIME email |
Fictional evidence
Preserve realistic paragraph lengths, varied relationships and conversation states. All addresses in capture copies use example.com. Product names remain source labels, but their sample descriptions are fixture content and must not be treated as factual descriptions of those products.
Source references
| File | Responsibility |
|---|---|
| lib/mock-data.ts | Sample content |
| components/inbox/follow-up-dialog.tsx | Date presentation |
| components/inbox/composer.tsx | Draft feedback |
| components/helpdesk-app.tsx | Toast duration |
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.
Related topics
Source audit: 2026-10-08 · Revision 10f45d1377b5 · Documentation v1.0.0