Problem
Every listener-facing link from wxyc.org into wxyc.info becomes a dead link at the 2026-08-31 cutover (WXYC/wiki#93). Full inventory, verified against origin/main @ a148ac2 on 2026-08-08:
This is the last step of Phase 4's D3 work: the three successor pages must exist first, then the nav points at them, then wxyc.info can go dark.
Desired end state
No wxyc.info link remains anywhere in website. Header, dropdown, and the programming page point at the three new local pages. A listener who used to reach the live playlist, the show archives, or airplay search from wxyc.org still reaches an equivalent page.
Where
The five sites in the table above. Whatever paths the three page tickets actually landed are the targets — read them off main, do not assume the suggested filenames.
Constraints
- All three successor pages must be merged before this lands, or the nav points at 404s. That is the blocking relationship, and it is the whole reason this is a separate ticket.
content/page/programming.mdx is TinaCMS-managed content. Editing the file in the repo is correct here, but check whether TinaCMS will treat it as a conflict on next CMS edit; note anything surprising in the PR body.
- Links become relative internal links (
/playlist, …) — use next/link where the surrounding code does, not bare <a href> to an absolute URL.
- website#93 ("Reconfigure top site nav", opened 2025-07-13) proposes a broader nav restructure and contains a "Recently Played" entry still pointing at
wxyc.info. It predates the turndown and is not this ticket. Do not implement its full restructure here; do reference it, and flag in the PR body whether it should be closed as superseded — that call belongs to a human.
- Deploying
main publishes to the live public site.
Acceptance criteria
Related
Blocked by
All same-repo; each must be merged before the nav can point at it. Both remaining blockers became startable 2026-08-10, when their shared upstream WXYC/Backend-Service#2061 was confirmed deployed (PUBLIC_READ_ORIGINS set; api.wxyc.org returns Access-Control-Allow-Origin: https://wxyc.org).
Note on the grep acceptance criterion. As of origin/main it returns six hits, not the five inventoried above: the sixth is pages/playlists/archive.jsx:23, a docblock reading "the successor to wxyc.info/playlists/radioWeek, which dies at the 2026-08-31 tubafrenzy cutover." That is accurate provenance prose and should not be deleted to satisfy a grep — narrow the AC to link sites (href= / markdown links) or exempt comments explicitly.
Problem
Every listener-facing link from
wxyc.orgintowxyc.infobecomes a dead link at the 2026-08-31 cutover (WXYC/wiki#93). Full inventory, verified againstorigin/main@a148ac2on 2026-08-08:components/Header.jshttp://www.wxyc.info/playlists/recentcomponents/DropdownMenu.jshttp://www.wxyc.info/playlists/recentcontent/page/programming.mdxhttp://wxyc.info/playlists/radioWeekcontent/page/programming.mdxhttp://wxyc.info/playlists/searchPlaylistspages/playlist.jsThis is the last step of Phase 4's D3 work: the three successor pages must exist first, then the nav points at them, then
wxyc.infocan go dark.Desired end state
No
wxyc.infolink remains anywhere inwebsite. Header, dropdown, and the programming page point at the three new local pages. A listener who used to reach the live playlist, the show archives, or airplay search fromwxyc.orgstill reaches an equivalent page.Where
The five sites in the table above. Whatever paths the three page tickets actually landed are the targets — read them off
main, do not assume the suggested filenames.Constraints
content/page/programming.mdxis TinaCMS-managed content. Editing the file in the repo is correct here, but check whether TinaCMS will treat it as a conflict on next CMS edit; note anything surprising in the PR body./playlist, …) — usenext/linkwhere the surrounding code does, not bare<a href>to an absolute URL.wxyc.info. It predates the turndown and is not this ticket. Do not implement its full restructure here; do reference it, and flag in the PR body whether it should be closed as superseded — that call belongs to a human.mainpublishes to the live public site.Acceptance criteria
grep -rn "wxyc\.info" --include="*.js" --include="*.jsx" --include="*.mdx" .(excludingnode_modules) returns zero hits.main.npm run lintandnpm run testgreen. (npm run check-formatfails on 19 files already dirty onmain— leave them.)Related
websitepage tickets.Blocked by
feat: public historical-archive page (wxyc.info /playlists/radioWeek successor) #213 — historical-archive page— MERGED 2026-08-10 aspages/playlists/archive.jsx. Its target path is therefore settled:content/page/programming.mdx:54points at/playlists/archive.All same-repo; each must be merged before the nav can point at it. Both remaining blockers became startable 2026-08-10, when their shared upstream WXYC/Backend-Service#2061 was confirmed deployed (
PUBLIC_READ_ORIGINSset;api.wxyc.orgreturnsAccess-Control-Allow-Origin: https://wxyc.org).Note on the
grepacceptance criterion. As oforigin/mainit returns six hits, not the five inventoried above: the sixth ispages/playlists/archive.jsx:23, a docblock reading "the successor towxyc.info/playlists/radioWeek, which dies at the 2026-08-31 tubafrenzy cutover." That is accurate provenance prose and should not be deleted to satisfy a grep — narrow the AC to link sites (href=/ markdown links) or exempt comments explicitly.