Skip to content

fix(ui): make the site's copy read more naturally - #70

Merged
morsela merged 1 commit into
mainfrom
claude/affectionate-ramanujan-u15bnz
Sep 22, 2026
Merged

morsela merged 1 commit into
mainfrom
claude/affectionate-ramanujan-u15bnz

Conversation

@morsela

@morsela morsela commented Sep 22, 2026

Copy link
Copy Markdown
Owner

A lot of the user-facing text read like the engineering notes behind it. For example: "recorded on a protocol whose distance scale this project had not established at the time, so summing it would invent a number", "is exactly what a retry must never become" and "a guess is not something to aim at a treadmill". The facts were right, but people had to translate the wording before they could use it.

This PR rewrites that copy in plain, conversational English. It uses contractions and shorter sentences, and says "you" where the old text was impersonal.

What changed

  • Landing intro (index.html) and the in-app footer disclaimer. These two are kept in step, as the intro's comment requires.
  • Static pages: compatible treadmills, using a WalkingPad without the app, troubleshooting, and a light pass on the developer protocol page. For example, the heading "It worked yesterday, and today my pad isn't offered" becomes "It worked yesterday. Why do I have to pick my pad again?"
  • App screens: the connect panel, connection sheet, desktop notice, recovery screen, feedback sheet, Now/Today/History, the stickers, streak and goal dialog, the confirm dialogs, and empty states.
  • Status messages that aren't pinned by tests, plus a few that are, with the pinned phrases kept word for word.
  • Two badge hints: "One walk of an hour" becomes "Walk for an hour in one go", and "Meet the goal seven days running" becomes "Hit your goal seven days in a row".
  • README screenshots are regenerated with tools/screenshots.sh, because the Today screen's visible copy changed. The old ones also predated the blueprint drawing on the fun-fact card.

Deliberately left alone

  • Binding parts of the Legal page (terms, warranty, liability, privacy). Rewording them changes what they say, and would mean bumping UPDATED. Only the page's closing line changed.
  • Facts. Every claim still says the same thing: what's left out of totals and why, what the app does and doesn't do for safety, and which browsers work. In one place the new wording is more careful than the old: an unlisted pad from a known family "should just work", where it used to say it "simply works".

Verification

  • npm run check, oxlint: clean
  • npm test: 320 + 146 passing
  • npm run build: succeeds
  • Looked at both regenerated screenshots; the new copy fits its cards at desktop width.

🤖 Generated with Claude Code

https://claude.ai/code/session_017ccS9aFrUGiiz6Pg8FZBJe


Generated by Claude Code

A lot of the user-facing text read like the engineering notes behind it:
"recorded on a protocol whose distance scale this project had not
established at the time, so summing it would invent a number", "is
exactly what a retry must never become", "a guess is not something to
aim at a treadmill". The facts were right, but people had to translate
the wording before they could use it.

This rewrites that copy in plain, conversational English across the
landing intro, the four static pages (compatible treadmills, without the
app, troubleshooting, protocol notes), and the app's own screens, dialogs,
empty states and status messages. Contractions, shorter sentences, and
"you" where the old text was impersonal.

What was deliberately left alone:

- The binding parts of the Legal page (terms, warranty, liability,
  privacy). Rewording those changes what they say, and would need the
  "last updated" date bumped. Only its closing line changed.
- Status messages the connection tests match on. Where a message was
  reworded, the phrases the tests look for ("refused each one", "looks
  asleep", "press + or −", "has not confirmed", ...) are kept word for
  word.
- The facts. Every claim still says the same thing: what's excluded
  from totals and why, what the app does and doesn't do for safety,
  and which browsers work.

The static intro in index.html and the in-app Disclaimer are kept in
step, as the intro's comment requires. The README screenshots are
regenerated with tools/screenshots.sh because the Today screen's visible
copy changed. The old ones also predated the blueprint drawing on the
fun-fact card.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017ccS9aFrUGiiz6Pg8FZBJe
@vercel

vercel Bot commented Sep 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
beltcontrol Ready Ready Preview Sep 22, 2026 6:35pm UTC

Request Review

@morsela
morsela merged commit f2a7573 into main Sep 22, 2026
6 checks passed
@morsela
morsela deleted the claude/affectionate-ramanujan-u15bnz branch September 22, 2026 18:43

This branch was successfully deployed

1 active deployment
Preview — 06fa7eb9 Deployed Sep 22, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants