The API already returns specific, honest messages (e.g. 'this course
isn't open for signups yet' for an inactive course) — the frontend was
discarding them and always showing a generic 'something went wrong'.
Both forms nested their status message as a child of the <form>, so
form.hidden = true on success hid the confirmation right along with it —
looked like nothing happened. Contact form now resets and stays usable
(you can send another message) instead of disappearing; enroll form still
hides after signup (no reason to sign up twice), but its confirmation is
now a sibling so it actually stays visible.
Also generalized the privacy policy's language from being anchored on
email courses specifically to covering any use of the site.
- baseof.html: proper header/nav/footer, CSS custom properties for
light/dark, button and form component styles — no external theme
dependency, avoiding the submodule/version churn from the earlier
PaperMod attempt.
- Contact page: real form (honeypot spam protection) posting to the eec
service's new /contact endpoint, replacing the plain mailto CTA.
- Privacy Policy and Terms drafts — grounded in what's actually true here
(self-hosted mail/course infra, no third-party trackers), flagged as
drafts pending review.
- courses/ section with a generic single template driven by front matter
(eec_slug, pitch) and the first course, Find Your Right Readers —
landing page only; the actual course content isn't authored in
eec-courses yet, so enrolling will 404 until that's written.
- Fixed hugo.toml baseURL (was www.reground.org, but Caddy's canonical
host is the bare domain — www redirects to it, not the other way).
PaperMod's opengraph.html calls partial with a redundant "partials/"
prefix that the production Hugo version (0.154.5, from the
hugomods/hugo:exts build image) doesn't tolerate, breaking the build.
Rather than patch a vendored theme, replaced it with plain, dependency-
free layouts (baseof/index/single/list) that render the actual homepage
content directly. Verified building successfully against the exact
Hugo image/version the deploy pipeline uses.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>