bookshop already supports this: ALLOWED_ORIGIN + CORS on POST
/arc/{code} exist specifically so a page on the brand's own domain can
call it cross-origin. There was no reason for bookshop to also render
the marketing/landing page itself — that put book copy inside a
generic, brand-agnostic Go template shared across every brand instead
of under normal editorial control like every other page on this site.
/books/neon-tan/ is now a plain Hugo page (content/books/neon-tan.md,
no longer draft-only/metadata-only — it's rendered for real via the new
layouts/books/single.html) with a small JS form
(layouts/partials/arc-redeem-form.html, mirroring the existing
course-enroll-form.html pattern) that POSTs form-encoded straight to
shop.michaelferrara.org/arc/neon-tan. bookshop's GET /arc/{code} page
rendering is no longer used for this campaign; only the POST redemption
and the download/Kindle/read/checkout endpoints still are.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neon Tan now ships via shop.michaelferrara.org/arc/neon-tan (bookshop's
ARC giveaway: single email field, gated download, tracked redemptions)
instead of these EEC-course-driven pages, which required first name as
well as email and served the epub from an ungated public bucket URL.
Old /gift and /gift-thanks paths still work via Caddy's path_redirects
(reground-infrastructure), so any existing bookmarks/emailed links keep
resolving to the new page instead of 404ing.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Matches the gift.<domain> vanity redirect's own name instead of a
different word for the same page.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>