Skip to content

feat(download): point at the live Mac App Store listing (#241)#340

Merged
TemujinCalidius merged 1 commit into
devfrom
feat/mac-app-store-live
Jul 24, 2026
Merged

feat(download): point at the live Mac App Store listing (#241)#340
TemujinCalidius merged 1 commit into
devfrom
feat/mac-app-store-live

Conversation

@TemujinCalidius

Copy link
Copy Markdown
Owner

The FediHome macOS app is out of review and live on the Mac App Store 🎉 — so the download surface should link to it instead of showing "coming soon".

What changed

The /download page already rendered the App Store button whenever macosAppStoreUrl was set, and fell back to a "coming soon" placeholder when empty. It was empty only because the listing didn't exist yet.

So this gives it a real default, exactly the way macosReleaseUrl already defaults to the app's GitHub releases:

macosAppStoreUrl:
  process.env.DOWNLOAD_MACOS_APP_STORE_URL ||
  "https://apps.apple.com/app/fedihome/id6790605091",

There is one FediHome macOS app, and every instance that enables the download page should point at it. macosEnabled stays false by default, so the blast radius is only opted-in instances — i.e. the demo.

On the URL

Region-neutral on purpose — dropped the /au/ and the legacy ?mt=12 from the raw listing link. This default ships worldwide, so a country-locked URL would land every visitor in one country's storefront first; the region-neutral form lets Apple redirect each person to their own store, resolving to the same app.

Copy cleanup

The "coming soon / until the listing is approved" wording is now stale, so it's updated everywhere it appeared: the page comment, .env.example, and docs/configuration.md. The placeholder branch stays in the page — harmless — for anyone who explicitly clears the URL.

Verification

Check Result
npx tsc --noEmit clean
npx eslint . 0 errors
npx vitest run 690 passed (74 files)
npm run build clean
stale "coming soon"/id0000 copy none remaining
changelog sync

The render path is {macosAppStoreUrl ? <App Store link> : <coming soon>} and the value is now a non-empty constant, so the link branch renders. A live curl check wasn't possible here — the download page requires setup to be completed, and the local dev instance isn't — so visual confirmation belongs on the demo after it picks this up.

Rolling it out

Two ways, no waiting required:

  • Now: set the App Store URL in Admin → Site settings → Download on the demo (it overlays the default live, no restart).
  • On next update: the new default flows through automatically on npm run update — no config needed, since the demo doesn't set an empty override.

🤖 Generated with Claude Code

The FediHome macOS app is out of App Store review and live, so the download
surface should link to it instead of showing "coming soon".

The page already rendered the App Store button whenever macosAppStoreUrl was
set and fell back to a placeholder when empty — it was empty only because the
listing didn't exist yet. So this just gives it a real default, exactly the way
macosReleaseUrl already defaults to the app's GitHub releases: there is one
FediHome macOS app, and every instance that enables the download page should
point at it. macosEnabled stays false by default, so the blast radius is only
opted-in instances (the demo).

The URL is region-neutral (no /au/, no legacy ?mt=12) so Apple redirects each
visitor to their own storefront — this default ships worldwide, so a
country-locked link would land everyone in one country's store first.

Updates the now-stale "coming soon / until the listing is approved" copy in the
page comment, .env.example and docs/configuration.md to match. The placeholder
branch stays in the page, harmless, for anyone who explicitly clears the URL.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@TemujinCalidius
TemujinCalidius merged commit faea23f into dev Jul 24, 2026
6 checks passed
@TemujinCalidius
TemujinCalidius deleted the feat/mac-app-store-live branch July 24, 2026 05:53
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