Prepare the move to arabesque.app - #226
Merged
Merged
Conversation
Prepares the move to a custom domain, which has to happen before the repository is renamed: GitHub redirects repository URLs and git operations after a rename, but explicitly not GitHub Pages project sites — the old address 404s. Serving the site from a domain of our own makes the rename a non-event for the public URL, instead of a second URL migration through the iOS wrapper and Supabase. - public/CNAME claims the domain (the workflow publishes public/ as-is). - The iOS wrapper's PTWebAppURL and its in-code fallback follow. - README clone instructions use the repository's future name. - test/piano_trainer_test.rb becomes test/arabesque_test.rb (class too). - NAMING.md gains the ordered cutover runbook: DNS records first so the switch doesn't take the site down, then this PR, then the certificate wait that a HSTS-preloaded .app domain requires, then the rename, then Supabase. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This repository publishes Pages from a custom Actions workflow, and in that mode GitHub neither creates nor reads a CNAME file — that behaviour belongs to branch-based publishing. The file would have looked like it configured the domain while doing nothing, which is worse than not having it. The cutover is therefore a manual step in Settings → Pages, not a merge. The runbook says so, with the reference. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The Resend sender for feedback notifications still read "Piano Trainer". The file is the reference but is applied by hand — editing it changes nothing in production until it is re-run against Supabase, which the runbook now says. Also records what the DNS zone declares about mail: arabesque.app neither sends nor receives (null MX, SPF -all, DMARC p=reject), which costs nothing today since both mail features send from onboarding@resend.dev. The note flags what has to change the day the domain is verified in Resend so magic links can come from it — and why the DMARC alignment was deliberately left relaxed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The first four steps ran today: the domain is registered, the DNS points at GitHub Pages, the custom domain is declared and the certificate is issued, so the site serves from https://arabesque.app. Only the repository rename and the Supabase settings are left. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Repo-side preparation for serving the app from its own domain. Safe to merge
at any time — nothing here switches the live site.
Why a domain before the repository rename
GitHub redirects repository URLs and git operations after a rename, but
explicitly not GitHub Pages project sites
— the old address returns a 404. Renaming first would mean migrating the URL
twice: once now and once again later, each time through the iOS wrapper and
Supabase's auth settings, which live outside this repo. Serving the site from
our own domain makes the rename a non-event for the public URL.
What changes
PTWebAppURLand its in-code fallback inViewController.swiftpoint athttps://arabesque.app/. Forward-looking: thewrapper is not usable today anyway (its development provisioning profile
expired on 27 July).
isc/arabesque,which is free).
test/piano_trainer_test.rb→test/arabesque_test.rb, class included — thelast file still carrying the old name.
NAMING.mdgains the ordered cutover runbook.What is deliberately not here
A
public/CNAMEfile. It was in the first version of this PR, and it was wrong:this repository publishes Pages from a custom Actions workflow, and in that
mode GitHub neither creates nor reads a CNAME
— that is branch-based publishing behaviour. The file would have looked like it
configured the domain while doing nothing.
The cutover is a manual step in Settings → Pages → Custom domain, once DNS
resolves. The runbook covers the rest: DNS records first so there is no outage
window, then the certificate wait that a HSTS-preloaded
.appdomain forces (upto 24h), then the repository rename, then Supabase's
site_urland authredirect allow-list — forget those and magic-link sign-in breaks.
Verification
rake test: 66 runs, 0 failures. Vitest: 97 passed.xcodegen generateproduces an Info.plist carrying
PTWebAppURL = https://arabesque.app/.🤖 Generated with Claude Code