Skip to content
Brand & UX guide
Brand

Writing and copy

Voice, the words we use and avoid, locked strings, and patterns for errors, empty states, and handoffs.

#Voice

Write as a sharp ops lead would: calm, direct, specific. Write from the owner’s side of the screen.

Numbers first, adjectives last“Revenue rose 12%” beats “Great week!”.
Short, active sentencesButtons say what happens. Errors say what went wrong and how to fix it.
The owner’s wordsStores, weekly pack, connect your store. Not tenants, ingestion, or OAuth.
Concrete over cleverNo brochure language. If a line could sit on any SaaS site, rewrite it.

#Say

storesweekly packweekly reportstore pageMonday digestrevenueorderssessionsweek over weekthis week’s actionfirst pack freefounding price

#Don’t say

dashboardWeekwright ProShopifyStripeshopsportalAI-poweredAI insightsgenerativeintelligentplatformsuiteecosystemwhite-glovetailoredbespokecustomizableunlocksuperchargeleverageempowerseamlessrevolutionarynext-gencutting-edgeagency of recordfull-service
The four that are enforced by tests

dashboard, Weekwright Pro, Shopify, and Stripe must never appear in UI strings. The app fails its tests if they do. Internal code and comments may name vendors. Buttons, headings, nav, emails, and empty states may not.

The weekly view is a store page and the report is a weekly report. The one place “dashboard” belongs is an answer that refuses the category: the product is a weekly pack, not another dashboard to check.

#Locked strings

These are fixed. Use them exactly. If a string you need is not here, add it here first and then to the product.

StringJob
Continue to secure checkoutLeave Weekwright briefly to pay
Connect your storeLeave briefly to approve store access
Manage billingPlan, payment method, invoices
This week’s actionThe fixed label on the recommended action. Not “Do this Monday”
Waiting for first report · Connected · Ready · FailedThe four status lines
Weekwright or FoundingThe plan label. Never Pro
Profile · Billing · Store connection · SupportSettings sections, in this order

The full list is in copy/ui-strings.md.

#Patterns

#Handoff lines

Handoff copy
  • You’ll leave Weekwright briefly to approve access, then come back.
  • You’ll leave briefly to pay, then come back.
  • Payment details are entered on a secure checkout page. We never ask for your card on Weekwright.
Code
<ul class="checklist" style="margin:0">
  <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg> You’ll leave Weekwright briefly to approve access, then come back.</li>
  <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg> You’ll leave briefly to pay, then come back.</li>
  <li><svg class="icon" viewBox="0 0 24 24" aria-hidden="true"><path d="M5 12.5l4.5 4.5L19 7.5"/></svg> Payment details are entered on a secure checkout page. We never ask for your card on Weekwright.</li>
</ul>

No SPA, API, or OAuth jargon on screen.

#Errors

Three parts, in order: what went wrong, what to do, and, only if it helps, where to get help. No apology, no blame, no error codes on screen.

Do

That email and password don’t match. Check them and try again.

We couldn’t reach your store. Reconnect it in Settings.

Don’t

Oops! Something went wrong. Sorry about that.

Error 401: invalid OAuth token.

#Empty and waiting

One status line, honest about timing. No sample numbers, no placeholder charts.

Do

Queued · first pack Monday

Don’t

Your insights are being supercharged!

  • Verb plus noun: Connect your store, Open store →. No “Submit” or “OK”.
  • Cancel is Cancel. Do not invent alternatives.
  • Sentence case everywhere. No Title Case Buttons, no ALL CAPS except the small .label style, which is set in CSS.

#Numbers, money, and dates

TypeFormatExample
MoneyCurrency symbol, thousands separator, no decimals when whole$18,420 · $59.50
ChangeArrow, one decimal, percent↑ 12.4% · ↓ 3.1%
Change in running textSign and real minus+12.4% · −3.1%
Week rangeShort month, en dashSep 14–20 · Sep 28–Oct 4
Short dateShort month, daySep 28
CountsThousands separator9,840
Never sum across currencies

If a total would mix currencies, show each separately and say so where totals appear.

#Sample copy

MomentWords
SignatureWeekwright. One pack. Same sections. Every week.
They ask for a custom layoutNo. The pack is the product. Same sections, every week. Numbers first. One action.
They ask if it is AIIt’s a weekly pack. Same sections, on time. Not another dashboard to check.
Before the first packWaiting for first report. One status line. No sample numbers.
Weekwright brand & UX guide v1.0.0 Components rendered from app @ bd6c1f4 · build d2e1ef8