- The ~1,800-word "our fork adds" paragraph becomes seven titled groups
(Calls & Voice, Messaging, Media & Links, Privacy & Security, Look &
Feel, Desktop App, Rooms & Moderation), one short line per feature,
with a link to LOTUS_FEATURES.md instead of duplicating the changelog.
- The comparison table lives in landing/data/comparison.json (converted
losslessly: all 71 rows render with identical cell text) and the
feature groups in landing/data/features.json. landing/build.py renders
them between <!-- BEGIN/END --> markers; everything else stays
hand-edited.
- CSS moved to landing/style.css and inlined by build.py (the LXC 139
deploy copies index.html only, so a linked stylesheet wouldn't ship).
The fork paragraph's 16 repeated inline styles are gone.
- Visible "Client comparison last reviewed <date>" stamp from
comparison.json, replacing the stale "June 2026 (latest)" title.
- CI: `landing-fresh` fails if index.html doesn't match its sources.
Page is ~1,850 px shorter on desktop and ~2,500 px on phones; no
horizontal overflow at 1280 px or Pixel 7.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPmy3tPq869XDW4njjVaKA