Skip to content

Prepare the move to arabesque.app - #226

Merged
isc merged 4 commits into
mainfrom
custom-domain-arabesque
Aug 5, 2026
Merged

Prepare the move to arabesque.app#226
isc merged 4 commits into
mainfrom
custom-domain-arabesque

Conversation

@isc

@isc isc commented Aug 5, 2026

Copy link
Copy Markdown
Owner

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

  • The iOS wrapper's PTWebAppURL and its in-code fallback in
    ViewController.swift point at https://arabesque.app/. Forward-looking: the
    wrapper is not usable today anyway (its development provisioning profile
    expired on 27 July).
  • README clone instructions use the repository's future name (isc/arabesque,
    which is free).
  • test/piano_trainer_test.rbtest/arabesque_test.rb, class included — the
    last file still carrying the old name.
  • NAMING.md gains the ordered cutover runbook.

What is deliberately not here

A public/CNAME file. 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 .app domain forces (up
to 24h), then the repository rename, then Supabase's site_url and auth
redirect allow-list — forget those and magic-link sign-in breaks.

Verification

rake test: 66 runs, 0 failures. Vitest: 97 passed. xcodegen generate
produces an Info.plist carrying PTWebAppURL = https://arabesque.app/.

🤖 Generated with Claude Code

isc and others added 2 commits August 5, 2026 15:29
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>
@isc isc changed the title Point the deployment at arabesque.app Prepare the move to arabesque.app Aug 5, 2026
isc and others added 2 commits August 5, 2026 15:53
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>
@isc
isc merged commit cff0109 into main Aug 5, 2026
3 checks passed
@isc
isc deleted the custom-domain-arabesque branch August 5, 2026 14:08
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