Skip to content

feat(river): warn mobile visitors that Freenet is desktop-only#65

Merged
sanity merged 1 commit into
mainfrom
feat/mobile-desktop-only-notice
Jul 4, 2026
Merged

feat(river): warn mobile visitors that Freenet is desktop-only#65
sanity merged 1 commit into
mainfrom
feat/mobile-desktop-only-notice

Conversation

@sanity

@sanity sanity commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Problem

A mobile visitor could land on /river, tap Install Freenet & Join River, and hit a dead end. Nothing on either page said Freenet is desktop-only, and the /quickstart installer made it worse: its os-install shortcode auto-selects an OS tab by device and maps iPhone/iPad → the macOS download and Android → the Linux install — so a phone user was shown a desktop download button that does nothing.

Approach

Be upfront on the landing page, and stop the installer from handing mobile users a broken download.

  • /river hero — a platform line under the CTA, visible to everyone (so mobile users see it before tapping): "Runs on Windows, macOS, and Linux. No mobile app yet."
  • /river "Where River is today" alpha box — an honest bullet: "Desktop only (Windows, macOS, Linux); no mobile app yet".
  • /quickstart os-install shortcode — detect phones/tablets (including iPadOS 13+, which masquerades as desktop Mac, via maxTouchPoints) and replace the bogus desktop download with a clear notice: open the page on a computer, no mobile app yet. Includes an "On a computer? Show the install options" safety valve in case a desktop is misdetected. Desktop behavior is unchanged (detectOS / activateTab / tab handlers are byte-for-byte identical; the only removed line, activateTab(detectOS()), is preserved verbatim in the new else branch).

Phrased as "no mobile app yet" — honest about the current state without promising a timeline.

Testing

Verified end-to-end with Playwright:

  • iPhone /quickstart: desktop tabs hidden (display:none), honest notice shown; the safety-valve button restores the tabs and re-runs detection.
  • iPhone /river: platform line renders under the CTA with the correct text.
  • Desktop /quickstart (control): tabs visible, notice hidden, correct OS tab auto-selected — unchanged from before.

Hugo build clean; no em-dashes.

Review

  • Codex (external): clean — no functional regressions or discrete bugs.
  • Adversarial read: clean — no false positives for Windows-touch laptops / Surface / MacBooks (the Mac+touch branch is gated on navigator.platform, and real Macs report maxTouchPoints === 0); isMobile() can't throw; safety valve verified. Three edge-case NITs (keyboard focus after the safety-valve click; a brief pre-hide tab flash; no-JS mobile falls back to the Linux default — pre-existing), all dismissed as not worth blocking.

Copy-only + progressive-enhancement JS; no high-risk surface.

[AI-assisted - Claude]

Mobile users could land on /river, tap "Install Freenet & Join River",
and hit a dead end: the /quickstart installer auto-selects an OS tab by
device and maps iPhone/iPad -> the macOS download and Android -> the
Linux install, so a phone visitor was shown a desktop download button
that does nothing. No page said Freenet is desktop-only.

- /river hero: platform line under the CTA, visible to everyone —
  "Runs on Windows, macOS, and Linux. No mobile app yet." Sets the
  expectation before the tap.
- /river "Where River is today" alpha box: bullet "Desktop only
  (Windows, macOS, Linux); no mobile app yet".
- /quickstart os-install shortcode: detect phones/tablets (incl. iPadOS
  13+ masquerading as Mac via maxTouchPoints) and, instead of a bogus
  desktop download, show an honest notice: open the page on a computer,
  no mobile app yet. Includes an "On a computer? Show the install
  options" safety valve in case a desktop is misdetected. Desktop
  behavior is unchanged.

Verified with Playwright: iPhone hides the tabs and shows the notice;
the safety valve restores the tabs; desktop /quickstart is unaffected.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q5nGtN2vVKqYABT5sosrAB
@sanity sanity merged commit e482474 into main Jul 4, 2026
3 checks passed
@sanity sanity deleted the feat/mobile-desktop-only-notice branch July 4, 2026 15:27
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