diff --git a/.gitignore b/.gitignore
index 7ce894f7..50b32c7e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -20,3 +20,6 @@ codesign.p12
!/.claude/skills/
/scripts/l10n/missing-translations.json
/ai/output/
+# alt-tab-free [depaywall]: the Sparkle feed is published OUT OF TREE to the gh-pages branch by
+# scripts/update_appcast.sh; the in-tree appcast.xml is removed (PLAN §3.3).
+/appcast.xml
diff --git a/Info.plist b/Info.plist
index 9f9bfbbf..120c2619 100644
--- a/Info.plist
+++ b/Info.plist
@@ -64,8 +64,8 @@
Auto-checks stay off (below) until DOMAIN serves a real appcast host. -->
1YfoCJDk/T8GQx1Gpf3O4ApFgDkBiN6oe/z/Kfnxs/M=
SUEnableAutomaticChecks
-
- false
+
+ true
SUScheduledCheckInterval
604800
diff --git a/appcast.xml b/appcast.xml
deleted file mode 100644
index 227bd582..00000000
--- a/appcast.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
- alt-tab-free
- en
-
-
diff --git a/config/local.xcconfig b/config/local.xcconfig
index 65f7e5ab..e52222fe 100644
--- a/config/local.xcconfig
+++ b/config/local.xcconfig
@@ -30,16 +30,13 @@ PRODUCT_BUNDLE_IDENTIFIER = com.koftwentytwo.commandtabfree
CURRENT_PROJECT_VERSION = 0.0.0
// --- Hosts (overrides base.xcconfig :20-21) ---
-// OWNER-OVERRIDABLE-BEFORE-PUBLISH: fork-owned hosts.
-// TODO: replace fork.invalid with the fork's real web host. DOMAIN must serve
-// https:///appcast.xml (Sparkle feed) and /support, or update checks /
-// the in-app Support affordance 404. fork.invalid is a deliberately NON-routable
-// placeholder (RFC 6761 reserved .invalid TLD) so nothing phones home before publish.
-DOMAIN = fork.invalid
-// TODO: API_DOMAIN drives the user-feedback POST (FeedbackWindow). The activate
-// fingerprint POST is closed separately at the handleCustomUrl handler (§2/§3.4),
-// so this may be made ROUTABLE for feedback without re-arming exfiltration.
-// Decide feedback strategy at bootstrap (§3.4 option a/b/c).
+// DOMAIN serves the Sparkle appcast at https:///appcast.xml. Set 2026-06-16 to the repo's
+// GitHub Pages site (gh-pages branch, published by scripts/update_appcast.sh). A kof22.com custom
+// domain can be added later — GitHub redirects the github.io URL, so shipped builds keep updating.
+// (/support still 404s here — harmless until a support page exists.)
+DOMAIN = koftwentytwo.github.io/CommandTabFree
+// API_DOMAIN drives the user-feedback POST (FeedbackWindow) — left NON-routable: feedback is deferred
+// (§3.4). The activate fingerprint POST is closed separately at the handleCustomUrl handler.
API_DOMAIN = fork.invalid/api
// --- Code signing (overrides release.xcconfig :5) ---