Skip to content

Name all nine paid features, and cut a fifth of the landing prose - #30

Merged
datlechin merged 1 commit into
mainfrom
landing-paid-features
Aug 25, 2026
Merged

Name all nine paid features, and cut a fifth of the landing prose#30
datlechin merged 1 commit into
mainfrom
landing-paid-features

Conversation

@datlechin

Copy link
Copy Markdown
Member

The defect

ProFeature.swift gates nine features. This site named four of them and said so out loud — "A license adds four things" — in the pricing lede and again in faqs.ts.

Starter (7) Team (2)
Compare & Sync, Query Insights, Result Charts, iCloud Sync, Linked Folders, Encrypted Export, Environment Variables Team Catalog, Team Library

Compare & Sync, Query Insights, Result Charts and Linked Folders appeared nowhere on the domain. The first three are the ones DataGrip and Navicat charge most for. The SoftwareApplication featureList was missing them too, so the structured data described a smaller app than the download page ships.

What changed

A new #license section between Safe Mode and Pricing carries the paid surface as one twelve-row Free/Starter/Team matrix, one short line per feature. It reads from a new resources/js/data/license.ts — the mirror of the Swift enum, since nothing here can read the enum itself — and pricing.tsx derives its card counts from the same data instead of typing them.

It replaces the six-row "Compare plans" table that used to close Pricing, so "what do I lose by not paying" is answered while the reader is still deciding rather than after they have scrolled past the cards.

The prose diet

Measured on the SSR output, before and after:

Before After
Prose (<p>/<dd> in <main>) 1,363 1,093 (−20%)
Longest paragraph 59 words 31
Paragraphs ≥28 words 16 1
Header stacks 12 11

Migration absorbed the comparison table: adjacent sections making one argument over the same four competitors, each paying an eyebrow, a two-line H2, a lede and four rules for it. #compare survives as an anchor on the H3, which still carries the competitor names.

Tests

181 pass, tsc and pint clean. Three assertions were updated deliberately rather than deleted — the retired Free means permanently free needle, the section running order, and the paid-surface ceiling.

LicenseFeaturesTest is new and fails if the list stops being nine split seven/two, if a name drifts from ProFeature.displayName, if a one-line detail passes fourteen words, if a feature is named twice on the homepage, or if the page grows back past a prose budget.

One thing this PR cannot fix

There is no Compare & Sync screenshot. docs/images/compare-sync-window.png in the app repo is a grey "Screenshot pending" placeholder in both themes, and query-insights.png is real but shows 5 queries at 1 ms, which argues against the feature. Neither is a 1216pt marketing capture, so the License section is typographic. A real capture of the Compare & Sync window is the highest-value asset the paid pitch is still missing.

https://claude.ai/code/session_01FzeQoMd7Y5bhujQeshGQgd

`ProFeature.swift` gates nine features. This site named four of them and
said so out loud — "a license adds four things" — in the pricing lede and
again in faqs.ts. Compare & Sync, Query Insights, Result Charts and Linked
Folders appeared nowhere on the domain, and the first three are the ones a
competitor charges most for. The SoftwareApplication featureList was missing
them too, so the structured data described a smaller app than the one on the
download page.

A new `#license` section between Safe Mode and Pricing carries the whole paid
surface as one twelve-row matrix, reading from `data/license.ts` — the mirror
of the Swift enum, which is the only thing this repository can hold, since it
cannot read the enum itself. It replaces the six-row "Compare plans" table
that used to close Pricing, so the answer to "what do I lose by not paying"
arrives while the reader is still deciding rather than after they have
scrolled past the cards. The pricing cards derive their counts from the same
data instead of typing them.

The prose diet, measured on the SSR output:

  words in <p>/<dd> inside <main>   1,363 -> 1,093
  longest paragraph                    59 -> 31
  paragraphs of 28 words or more       16 -> 1
  header stacks                        12 -> 11

Migration absorbed the comparison table. They were adjacent sections making
one argument over the same four competitors, and each paid an eyebrow, a
two-line H2, a lede and four rules for it. `#compare` survives as an anchor
on the H3, which still carries the competitor names.

Three assertions were updated deliberately rather than deleted: the retired
"Free means permanently free" needle, the section running order, and the
paid-surface ceiling. `LicenseFeaturesTest` is new and fails if the list stops
being nine split seven/two, if a name drifts from `ProFeature.displayName`, if
a one-line detail grows past fourteen words, if a feature is named twice on
the homepage, or if the page grows back past a prose budget.

Claude-Session: https://claude.ai/code/session_01FzeQoMd7Y5bhujQeshGQgd
@datlechin
datlechin merged commit c09b83d into main Aug 25, 2026
5 checks passed
@datlechin
datlechin deleted the landing-paid-features branch August 25, 2026 02:28
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