Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -110,12 +110,13 @@ FEDI_DOMAIN=example.com
# When enabled, a "Download" nav link, a homepage hero CTA, and a /download page
# appear β€” a marketing surface for the FediHome macOS app. Off by default (a
# personal instance isn't advertising an app it may not use). Used by the demo.
# The release URL defaults to the app repo's GitHub Releases "latest" (always
# the newest notarized build). The App Store URL is an empty slot until the
# listing is approved.
# Both URLs already default to the project's own app, so you only need to set
# these to point at a fork/rebuild: the release URL tracks the app repo's GitHub
# Releases "latest" (newest notarized build), and the App Store URL is the live
# listing (region-neutral, so Apple redirects each visitor to their storefront).
# DOWNLOAD_MACOS_ENABLED=true
# DOWNLOAD_MACOS_RELEASE_URL=https://github.com/TemujinCalidius/FediHome-macOS/releases/latest
# DOWNLOAD_MACOS_APP_STORE_URL=https://apps.apple.com/app/id0000000000
# DOWNLOAD_MACOS_APP_STORE_URL=https://apps.apple.com/app/fedihome/id6790605091

# --- Optional: Web Push (PWA phone notifications) ---
# Lets you install the site to your phone's home screen and receive push
Expand Down
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
- **Documented what actually happens when you change your domain** (#326) β€” `docs/fediverse-setup.md` gains a **Changing Your Domain** section. ActivityPub has no rename: your identity is a URL, and every server that has seen you stores it. The network's answer is an alias on the new account plus a `Move` from the old one β€” which only works while **the old domain is still serving**, because remote servers verify the move by fetching both ends. Move first and lose the domain later and your followers can still be brought across; lose the domain first and they can't, by anyone, ever. FediHome doesn't implement that handshake yet, so for now the guidance is to treat your domain as permanent, and the recommended shape of a move (new instance alongside the old, then decommission slowly) is written down.

### Changed
- **The FediHome macOS app is on the Mac App Store** β€” it's out of review and live, so the download surface now links straight to the [App Store listing](https://apps.apple.com/app/fedihome/id6790605091) instead of showing "coming soon". The link is region-neutral, so Apple sends each visitor to their own storefront, and it's the default now (alongside the existing direct GitHub download) for any instance that turns the download page on β€” no configuration needed. Still overridable via env or the admin panel.
- **Setting up on an address the Fediverse can't reach is now a deliberate choice** (#326) β€” the wizard used to let you finish on `localhost` or a private-network address with nothing but a warning. That bakes an identity nobody can follow into your ActivityPub actor, and because posts store their full URL, into everything you publish before you move. It's still allowed β€” testing locally is a perfectly reasonable thing to do β€” but you now have to tick a box confirming that's what you're doing. Setting up on a real domain is unchanged.

### Fixed
Expand Down
6 changes: 3 additions & 3 deletions docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,13 @@ Set any of these to `false` to hide that section from the navigation. The corres

## macOS App Download

FediHome has a native menu-bar Mac app. When enabled, a **Download** nav link, a homepage hero CTA, and a `/download` marketing page appear. It's **off by default** β€” a personal instance isn't advertising an app it may not use β€” and is intended for the public demo.
FediHome has a native menu-bar Mac app, [live on the Mac App Store](https://apps.apple.com/app/fedihome/id6790605091). When enabled, a **Download** nav link, a homepage hero CTA, and a `/download` marketing page appear. It's **off by default** β€” a personal instance isn't advertising an app it may not use β€” and is intended for the public demo.

| Env var | Default | Purpose |
|---------|---------|---------|
| `DOWNLOAD_MACOS_ENABLED` | `false` | Show the Download link, hero CTA, and `/download` page. |
| `DOWNLOAD_MACOS_RELEASE_URL` | the app repo's GitHub Releases `latest` | Primary download β€” always the newest notarized build. Prefer `releases/latest` over a pinned tag so it auto-tracks new versions. |
| `DOWNLOAD_MACOS_APP_STORE_URL` | *(empty)* | Optional Mac App Store listing. When set, a "Download on the Mac App Store" button appears alongside the GitHub download; until then that slot shows a "coming soon" placeholder. |
| `DOWNLOAD_MACOS_RELEASE_URL` | the app repo's GitHub Releases `latest` | Direct download β€” always the newest notarized build. Prefer `releases/latest` over a pinned tag so it auto-tracks new versions. |
| `DOWNLOAD_MACOS_APP_STORE_URL` | the live Mac App Store listing | The "Download on the Mac App Store" button. Region-neutral, so Apple redirects each visitor to their own storefront. Both URLs already point at the project's app; only override to point at a fork/rebuild. Clearing it shows a "coming soon" placeholder instead. |

All three are also editable at runtime from **Admin β†’ Site settings** (they overlay the env defaults, no restart).

Expand Down
13 changes: 9 additions & 4 deletions site.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,15 +87,20 @@ export const siteConfig = {
// Native-app downloads (#241). When DOWNLOAD_MACOS_ENABLED=true, a "Download"
// nav link, a homepage hero CTA, and a /download page appear β€” a marketing
// surface for the FediHome macOS app. Off by default so a personal instance
// isn't advertising an app it may not use; the public demo turns it on. The
// release URL tracks GitHub Releases "latest" (always the newest notarized
// build); the App Store URL is an empty slot until the listing is approved.
// isn't advertising an app it may not use; the public demo turns it on. Both
// URLs default to the project's own app (there's only one FediHome macOS app):
// the release URL tracks GitHub Releases "latest" (the newest notarized build),
// and the App Store URL points at the live listing. Region-neutral on purpose,
// so Apple redirects each visitor to their own storefront. Override either via
// env or the admin panel.
download: {
macosEnabled: process.env.DOWNLOAD_MACOS_ENABLED === "true",
macosReleaseUrl:
process.env.DOWNLOAD_MACOS_RELEASE_URL ||
"https://github.com/TemujinCalidius/FediHome-macOS/releases/latest",
macosAppStoreUrl: process.env.DOWNLOAD_MACOS_APP_STORE_URL || "",
macosAppStoreUrl:
process.env.DOWNLOAD_MACOS_APP_STORE_URL ||
"https://apps.apple.com/app/fedihome/id6790605091",
},

// Visual theme (#250). Selects a built-in theme preset (see src/lib/themes).
Expand Down
4 changes: 2 additions & 2 deletions src/app/(public)/download/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ export default async function DownloadPage() {
</a>
)}

{/* Mac App Store slot β€” the official badge + link drops in here once
the listing is approved (set DOWNLOAD_MACOS_APP_STORE_URL). */}
{/* Mac App Store link. Defaults to the live listing; the "coming
soon" fallback only shows if an instance clears the URL. */}
{macosAppStoreUrl ? (
<a
href={macosAppStoreUrl}
Expand Down
Loading