Skip to content

Point external links at their final URL (no redirect hops) - #64

Merged
oddharsh merged 3 commits into
mainfrom
fix/external-link-hops
Jul 22, 2026
Merged

oddharsh merged 3 commits into
mainfrom
fix/external-link-hops

Conversation

@oddharsh

Copy link
Copy Markdown
Owner

Traced the redirect chain of every outbound link on the site. Each hop is a DNS lookup, TLS handshake and round trip the visitor pays before anything renders, so the fix is to link where they actually land.

Was Now Saved
twitter.com/oddhash x.com/oddhash 2 hops
instagram.com/aadharsh.hif www.instagram.com/aadharsh.hif 1 hop
archetype.fund www.archetype.fund/ 1 hop
creativecommons.org/licenses/by-sa/4.0 .../4.0/ 1 hop
creativecommons.org/licenses/by/2.0 .../2.0/ 1 hop
rfc-editor.org/rfc/rfc5861 rfc-editor.org/info/rfc5861/ 1 hop
linkedin.com/in/<me>/ linkedin.com/in/<me> 1 hop

The Twitter one is the big win: it appears in the desktop icons and in the footer of all 34 garage and LWE pages, and it was costing two hops each time.

Also a dead link fixed: en.wikipedia.org/wiki/Planar_magnetic_loudspeaker 404s. The article is Magnetostatic_loudspeaker. Two links in /lwe/drivers.

Generated links too: serendipity.js builds attendee Instagram URLs from handles, so canonicalizing the base drops a hop from every profile link it emits.

Deliberately left alone

  • song.link is Odesli's cross-platform router. Redirecting is its entire purpose, and the bare-domain hop I traced is only the preconnect target.
  • head-fi and darko.audio only redirect or 403 for bot user-agents. Humans get a direct 200.

Verified

Re-traced every user-facing external link: 0 hops everywhere except the two by-design cases above.

Needs your input (not in this PR)

  • beliapp.com/users/aadharsh 404s (confirmed in a real browser, it serves the generic marketing page). It is your profile, so I cannot guess the right URL. It appears in the desktop icons and every page footer.
  • mkit.makechain.net/streaming no longer resolves (ERR_NAME_NOT_RESOLVED), linked from /garage/chunks. The repo at github.com/officialunofficial/mkit is still up if you want to repoint there.

🤖 Generated with Claude Code

oddharsh and others added 3 commits July 22, 2026 09:52
The homepage grid emits the tile as <a><picture><img alt=...>, so the img's
alt IS the link's accessible name. home.js fell back to alt="" when a stem had
no alt.json caption, which makes the image decorative and leaves the <a>
nameless for screen readers and agents.

12 of 158 stems have no caption yet, and the homepage draws 12 at random, so
this surfaced intermittently: the mobile Lighthouse run drew two of them and
failed both `link-name` (accessibility 93) and `agent-accessibility-tree`
(agentic-browsing 67), while the desktop run drew none and scored 96/100.

Fall back to the stem, matching photos.js:274, so a missing caption can never
produce a nameless link again. Backfilling the 12 captions via
scripts/gen-alt-text.py is the follow-up quality fix.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Current Chrome rejects a bare `focusgroup` attribute with "focusgroup requires
a recognized behavior token (toolbar, tablist, radiogroup, listbox, menu,
menubar)". The demo toolbar carried the bare attribute, so the one page on the
site that exists to demonstrate focusgroup was demonstrating it dead: no single
tab stop, no arrow-key movement, and a console error on every load.

Use focusgroup="toolbar" to match the element's role, and update the copy,
which still described the pre-token syntax.

This was the only site-authored console error across all 53 HTML pages.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Traced every outbound link's redirect chain. Each hop is a DNS + TLS + RTT the
visitor pays before they see anything, so link to where they actually land:

  twitter.com/oddhash            -> x.com/oddhash                  (2 hops)
  instagram.com/aadharsh.hif     -> www.instagram.com/...          (1 hop)
  archetype.fund                 -> www.archetype.fund/            (1 hop)
  creativecommons.org/.../4.0    -> .../4.0/                       (1 hop)
  creativecommons.org/.../2.0    -> .../2.0/                       (1 hop)
  rfc-editor.org/rfc/rfc5861     -> rfc-editor.org/info/rfc5861/   (1 hop)
  linkedin.com/in/<me>/          -> linkedin.com/in/<me>           (1 hop)

Also fixes a dead link: en.wikipedia.org/wiki/Planar_magnetic_loudspeaker is a
404; the article is Magnetostatic_loudspeaker.

serendipity.js builds attendee Instagram URLs, so canonicalizing the base there
drops a hop from every generated profile link too.

Left alone deliberately: song.link is Odesli's cross-platform router, so
redirecting IS its job, and head-fi/darko only redirect for bot user-agents.

Verified: re-tracing every user-facing external link now reports 0 hops except
those two by-design cases.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

Understanding-first review

This is a prompt, not a score or merge gate. Before approving, reconstruct the change:

  • My model: What do I think this PR does?
  • Mechanism: What path or invariant makes that behavior true?
  • Falsifier: What would prove my model wrong?
  • Evidence: What test, trace, dry-run, or live check did I inspect?
  • Residual uncertainty: What remains unproven?

For docs and dependency changes, a compact answer is enough. For behavior or production changes, include the causal path and one concrete counterexample. The author’s claim card belongs in the PR description; this prompt is for the reviewer’s independent reconstruction.

See UNDERSTANDING-REVIEW.md.

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 22, 2026 •

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
aadhar-sh 00efc29 Jul 22 2026, 02:23 PM

@oddharsh
oddharsh changed the base branch from fix/horizon-focusgroup-token to main July 22, 2026 14:23
@oddharsh
oddharsh merged commit b83610e into main Jul 22, 2026
4 checks passed
@oddharsh
oddharsh deleted the fix/external-link-hops branch July 22, 2026 14: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