Skip to content

/compare that sells, Echo in the posts, and /pro becomes /plans - #215

Merged
xuelink merged 3 commits into
mainfrom
claude/compare-page-design-conversion-383590
Sep 23, 2026
Merged

xuelink merged 3 commits into
mainfrom
claude/compare-page-design-conversion-383590

Conversation

@xuelink

@xuelink xuelink commented Sep 23, 2026

Copy link
Copy Markdown
Member

Three commits, one PR, because the second and third depend on the first.

1. /compare: a landing page that asks, hooks and shows. The page most people arrive on from a search for another app opened on a long title and a table. Now: the yellow ask beside the chat replica; five figures between hairlines; an app picker (one chip per app, the chosen one head to head with LangX in six rows, a verdict built from competitors.ts, ?vs=hellotalk deep links, plain links before hydration); the matrix as a picture (every app's icon in every row, lit where it has the thing, counted at build time); a chapter with the Discover screen and a second yellow; the map, the full matrix with a sticky first column, the posts in two columns, twelve real Google Play reviews with the reviewers' own photos, a FAQ with FAQPage data, and the closing call. Shared pieces: data/compare.ts, data/echo.ts, data/reviews.ts (the homepage reads the first six), compare/Cell.svelte; FAQ takes items, FinalCta a title.

2. Echo in the comparison posts. Eleven posts said LangX had no lessons, flashcards or spaced repetition. Echo (eighteen free packs in six languages, read aloud, plus cards from your own chats — langx/docs/echo.md) makes that false, so each line now says what is there and what still is not (no lesson path, no grammar course, a far smaller library than Memrise's). Tables and roundups name Echo; the Memrise post gets a section.

3. /pro becomes /plans. Every link follows (header, footer, FAQ, welcome-back, fifty-odd posts) and static/_redirects 301s /pro and /pro/. The page is rebuilt on the same grammar: the ask beside the paywall replica, the four things every plan keeps, three cards with five lines each (highlights in plans.ts), the limits as bars (limits in plans.ts), a plans FAQ, the closing call. It ships the client now. Pricing.svelte and PlanUsageCard.svelte are gone.

Every number on both pages comes from plans.ts, competitors.ts, echo.ts or PRODUCT.md; nothing is invented. svelte-check: 0 errors. vite build passes; the prerendered /compare carries the picker, the FAQ schema and the photos. Checked in the browser at 1280px and 375px, light and dark.

After merge: request indexing for /compare and /plans in Search Console.

🤖 Generated with Claude Code

xuelink and others added 3 commits September 23, 2026 15:19
The page most people arrive on from a search for another app opened on a
long title and a table. It now sells, in the order a visitor decides:

- Hero: the ask (yellow, with the outlined pill under it) beside the chat
  replica playing a correction; the H1 counts the apps from competitors.ts.
- Figures between two hairlines: unlimited corrections, 5 chats a day, 182
  languages, 18 free Echo packs, 0 ads.
- The hook, `AppPicker`: one chip per app, and the chosen one next to LangX
  in six rows, with a verdict built from the data rather than written per
  app. Before hydration the chips are links to the posts; `?vs=hellotalk`
  opens on that app. The two heads sit on the same columns as the cells.
- `CheckRows`: the matrix as a picture — every app's icon in every row, lit
  where it has the thing, counted from competitors.ts at build time.
- A chapter ("the difference is a person.") with the Discover screen and
  the second yellow, the kinds map (LangX under Courses too, for Echo), the
  full matrix with a sticky first column, the posts in two columns, twelve
  real Google Play reviews with the reviewers' own photos where they have
  one, a FAQ with FAQPage data, and the closing call.

Shared pieces: `data/compare.ts` (marks, kinds, LangX's row, the verdict),
`data/echo.ts` (Echo as the site may describe it, from langx/docs/echo.md),
`data/reviews.ts` (the reviews, which the homepage now reads too, first six),
`compare/Cell.svelte` (a mark and a word). FAQ takes `items`, FinalCta a
`title`. Photos are in static/images/reviews with a README on their source.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Eleven posts said LangX had no lessons, flashcards, spaced repetition or
course. Echo — eighteen free packs of phrases in six languages at three
levels, read aloud, plus a card for any message a partner corrects — makes
those lines false, so each is rewritten to say what is there and what still
is not: no lesson path, no grammar course, a library far smaller than
Memrise's. The Lessons row in the Babbel, Busuu, Memrise, Praktika and
Speak tables, the Structured lessons row in the social Duolingo post, the
free-apps table and setup, and the best-apps roundup all name Echo now; the
Memrise post gets a section on it, since Memrise is the closest thing to it.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The plans page moves to the address the header link already said. Every
link on the site follows (the header, the footer, the FAQ, the welcome-back
page and fifty-odd posts), and static/_redirects sends /pro and /pro/ to
/plans with a 301, since the old path was published everywhere.

The page itself is rebuilt on the compare page's grammar: the ask beside
the paywall replica, the four things every plan keeps between two
hairlines, three cards that show five lines each instead of eleven
(`highlights` in plans.ts, a subset of the record), the limits as bars in
the plans' three colours (`limits` in plans.ts), the questions people ask
before they pay with FAQPage data, and the closing call. It ships the
client now, like the other pages, so the questions open and the header
steps back while the page's yellow is on screen. Pricing.svelte and
PlanUsageCard.svelte had no other reader and are gone.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@xuelink
xuelink merged commit d131a97 into main Sep 23, 2026
1 check passed
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.

1 participant