Skip to content

site: retire munderdiffl.in/download and send it to harnessmd.com/download - #555

Merged
chaitanyagiri merged 2 commits into
mainfrom
docs/retire-download-page
Sep 17, 2026
Merged

chaitanyagiri merged 2 commits into
mainfrom
docs/retire-download-page

Conversation

@chaitanyagiri

@chaitanyagiri chaitanyagiri commented Sep 17, 2026

Copy link
Copy Markdown
Owner

The merge order block is lifted. It was: do not merge until Kevin's tag is live on harnessmd.com. god verified it on the production page on 18 Sep 2026, not in a PR: AW-18388216863 and the conversion label qnM3CI670_kcEJ_Yl8BE are both in the served bundle at /_next/static/chunks/0z66vbdbkcq9h.js on harnessmd.com/download. It is absent from the page HTML, which is correct, it is a client component gated on Do Not Track. There is no longer a window with no conversion recorded anywhere.

docs/download.html was a second, hand maintained copy of the download page. The version, the published date and all three file sizes were typed into the HTML, with a comment recording that the sizes were checked by HEAD request on 14 Sep. harnessmd.com/download reads the same facts off disk. Both say 0.5.2 today and would disagree the day 0.5.3 ships, so this leaves one page.

What this URL was worth, measured before changing it

Clicks, 3 months 0
Impressions, 3 months 16
Queries producing them munder difflin (9), munderdiffl (4), munder difflin github (1)
Inbound links 0
Ranking keywords 0
In sitemap.xml no
Blog posts linking to it 0

Clicks and impressions from Search Console, 3 month window, page filter on the exact URL. Links and ranking keywords from OpenSEO at exact_url scope. Every query is our own brand name, and the homepage already ranks for all three, so there is no ranking to hand over. The extensionless /download has never appeared in Search Console at all.

Treatment, and why

GitHub Pages cannot serve a real 301, so the stub does it three ways rather than picking one:

  1. <meta http-equiv="refresh" content="0"> is the primary. Google treats an instant meta refresh as a permanent redirect, and it works with JavaScript switched off, which matters because robots.txt explicitly invites the AI answer engines and those are the least reliable at running scripts.
  2. Cross domain rel=canonical names the real URL for anything that ignores the refresh.
  3. location.replace redirects without adding a history entry, so the back button returns the visitor to where they came from instead of bouncing them forward again.

A visible link is the fallback for anyone none of those reaches.

Rejected: a JS only redirect, because it fails with scripts off and is slower to be picked up. Rejected: canonical with the page left in place, because the stale hand maintained numbers would still be sitting there, which is the thing being fixed.

The five homepage buttons now link straight to harnessmd.com/download instead of taking the extra hop through the retired page.

Conversion tracking

docs/download.html was the only page on this site carrying a[download] links, so it was the only page that could fire the Outbound click conversion AW-18388216863/qnM3CI670_kcEJ_Yl8BE.

An earlier revision of this branch carried that conversion over to the homepage, firing on the click out. That has been removed. The tag is going on harnessmd.com/download instead, at the click on an actual installer, so a homepage fire would report the same conversion action twice for one visit and would credit anyone who left for the download page and never downloaded.

It was also covering almost nothing. 22 pages on this site link to harnessmd.com/download; the homepage listener saw one of them. The tag on the destination sees all 22, plus arrivals through the retired URL and any inbound link from elsewhere.

This branch now changes the redirect and the button targets, and touches no analytics. The site wide Google tag in <head> is untouched.

blog/src/posts/your-first-hour-with-munder-difflin.md needed no change: it already points at harnessmd.com/download three times and never linked to the retired page.

Version on this repo stays 0.4.6.

Rebased onto #554

#554 merged after this branch was cut and touched docs/download.html, so this went CONFLICTING. It is rebased onto 77d0ec8, not merged, so the PR stays one story.

What #554 did to this file, and why the redirect keeps it. #554 replaced an Every release link to app.harnessmd.com/releases/, an open directory index of every build back to 0.4.10 that is being switched off, with harnessmd.com/download#whats-new. Redirecting the whole page to harnessmd.com/download carries that intent rather than discarding it: the dying directory is no longer linked from anywhere on munderdiffl.in, and the release notes the link promised are on the page this redirect lands on. The reason is written into the header comment of the stub so the next person does not have to reconstruct it.

The three direct installer links on the old page also pointed at app.harnessmd.com/releases/. They go with the page. #554 established that installers still serve by exact filename, so nothing broken is left behind, and the destination lists all three anyway.

docs/index.html had no conflict. #554 did not touch it, and it carries no app.harnessmd.com/releases link, so there was no second intent to preserve. Confirmed by grep: after this branch, the only occurrences of that host anywhere in the repo are the two in the explanatory comment above.

docs/sitemap.xml needs no change. #554's only edit to it was the root <lastmod>, 16 Sep to 17 Sep. That field is {{ build.date }} in blog/src/sitemap.njk, stamped by the Eleventy build, not hand maintained. download.html is not listed in the sitemap and #554 did not add it. Hand editing the date would also pull docs/sitemap.xml into this PR and trip the blog gate, which rebuilds and fails on any difference.

Before

docs/download.html as it stands on main at 77d0ec8, with the typed version, date and file sizes. Re-shot: #554 changed a visible line on this page after the first capture, so the earlier image showed a sentence that is no longer there.

before

After

Visitors land on harnessmd.com/download. The card below is the fallback, shown only if both the meta refresh and the script are blocked, captured from a copy with the auto redirect removed so it could be photographed at all:

after

Both images were re-taken on top of 77d0ec8. The no visual change waiver is not being used here.

🤖 Generated with Claude Code

https://claude.ai/code/session_01DKhjmRPTpdrv1ewjdnhar3

chaitanyagiri and others added 2 commits September 18, 2026 00:30
…nload

docs/download.html was a second, hand maintained copy of the download page:
version, published date and all three file sizes were typed into the HTML.
harnessmd.com/download reads the same facts off disk. Both say 0.5.2 today and
would disagree the day 0.5.3 ships, so this leaves one page.

Measured before changing anything, 17 Sep 2026. The URL gives up nothing:
0 clicks and 16 impressions in three months (Search Console, 3 month window),
from three queries, all of them our own brand name, on which the homepage
already ranks. No inbound links and no ranking keywords (OpenSEO, exact URL
scope). It was never in sitemap.xml, and no blog post links to it.

GitHub Pages cannot serve a 301, so the stub redirects three ways: a meta
refresh, which crawlers treat as permanent and which survives JavaScript being
off; a cross domain canonical for anything that ignores the refresh; and
location.replace, so the back button does not bounce the visitor forward again.
A visible link is the fallback for anyone none of those reaches.

The five homepage buttons now link straight to harnessmd.com/download rather
than taking the extra hop.

Carries over the Google Ads conversion. download.html was the only page on this
site with a[download] links, so it was the only one that could fire the
"Outbound click" action. The homepage now fires it on the click out to the
download page instead. That counts one step earlier in the funnel, reaching the
download page rather than picking an installer; the accurate fix is the same
tag on harnessmd.com/download, which lives in the server repo.

Version on this repo stays 0.4.6.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKhjmRPTpdrv1ewjdnhar3
…stination

Kevin is putting the Google tag and the conversion listener on
harnessmd.com/download, at the click on an actual installer. Keeping the carry
here would report the same conversion action, AW-18388216863/qnM3CI670_kcEJ_Yl8BE,
a second time on the way out, for one visit.

It was also covering almost nothing: 22 pages on this site link to
harnessmd.com/download and this listener saw one of them, the homepage. The tag
on the destination sees all 22, plus arrivals through the retired URL and any
inbound link from elsewhere.

The redirect and the five repointed homepage buttons are unchanged. Version
stays 0.4.6.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DKhjmRPTpdrv1ewjdnhar3
@chaitanyagiri
chaitanyagiri force-pushed the docs/retire-download-page branch from 311f310 to 6fe785e Compare September 17, 2026 19:01
@chaitanyagiri
chaitanyagiri merged commit c7c8921 into main Sep 17, 2026
4 checks 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