NEWS RELAUNCH CUTOVER: promote the hub to /, feed to /news, go public
The big flip. /home3 (hub) becomes /; the feed lives at /news; both indexable. - PROMOTE: routes/+page.svelte is now the hub (was the interim NewsFeed wrapper); noindex removed; "Read more good news" → /news. routes/home3 + home2 deleted. - routes/+page.js: redirects legacy root-query links (/?view=latest, /?tag, /?source, /?q, /?view=today→highlights) to /news before the hub renders (no flash). - /news: noindex dropped (route meta + Caddy @newsHidden removed); now public. - LINKS: HubBar brand/Home → /, News default → /news; HubShell/art/play back → /; account Following + share.py Explore/Browse/source → /news. - FOOTER: one shared Footer.svelte (motto + Send feedback + slot) across Hub/News/ Play/Art/HubShell/Account/Zen; global layout footer removed (FeedbackModal stays). - SITEMAP: + /news /art /play /word /quote /onthisday; cap 5k→50k; gated on has-summary; paywalled excluded; HEAD now 200 (api_route GET+HEAD). - Head-patcher: /news entry. PWA + shell description broadened to the hub. - Caddy: @newsHidden dropped; @hidden now admin-only (word/quote/onthisday public); /home2,/home3 → / 301. Mirrored to deploy/caddy snapshot. 425 backend + 36 frontend tests green; build clean; Caddy valid. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -46,6 +46,12 @@ upbeatbytes.com {
|
||||
encode gzip zstd
|
||||
|
||||
# Retired prototype routes (promoted/removed at the news relaunch) → the hub.
|
||||
@oldhome path /home2 /home2.html /home3 /home3.html
|
||||
handle @oldhome {
|
||||
redir / permanent
|
||||
}
|
||||
|
||||
# Dynamic API + server-rendered pages (share, digest, sitemap) → FastAPI.
|
||||
@api path /api/* /healthz /docs /docs/* /openapi.json /a/* /today /sitemap.xml
|
||||
handle @api {
|
||||
reverse_proxy upbeatbytes-api:8000
|
||||
@@ -60,15 +66,10 @@ upbeatbytes.com {
|
||||
# Hidden in-progress prototypes — keep crawlers out at the HTTP level (the JS
|
||||
# <meta robots> isn't seen by non-JS bots since the static shell is generic).
|
||||
# Only admin stays out of the index now — news, art, play, and the joy pages are public.
|
||||
header @hidden X-Robots-Tag "noindex, nofollow"
|
||||
@hidden path /admin /admin.html
|
||||
header @hidden X-Robots-Tag "noindex, nofollow"
|
||||
|
||||
# Content-hashed assets never change for a given URL — cache them forever.
|
||||
# noindex (FOLLOW, so link equity still flows) until cutover, when this line is removed
|
||||
# and /news enters the sitemap. Avoids publishing a duplicate indexable feed.
|
||||
@newsHidden path /news /news.html
|
||||
header @newsHidden X-Robots-Tag "noindex, follow"
|
||||
|
||||
# Content-hashed assets never change for a given URL — cache them forever.
|
||||
@immutable path /_app/immutable/*
|
||||
header @immutable Cache-Control "public, max-age=31536000, immutable"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user