Commit Graph

14 Commits

Author SHA1 Message Date
will 7da665ffaf Add /talk booking page with cal.com inline embed
deploy / deploy (push) Successful in 4s
The gift PDF's closing CTA promises a conversation, so it needs a
landing page to point to. Kept separate from /gift-thanks since the
PDF can be read/forwarded independent of any signup on this site.
2026-07-22 16:09:45 -04:00
will 2a5b1edf19 Add root-wood mark to the site header
deploy / deploy (push) Successful in 4s
Traced from a piece of petrified root wood the user owns, simplified into
a flat currentColor SVG so it matches the header text in both light and
dark mode, plus a bio line explaining the connection.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 13:12:07 -04:00
will 0a8631a0f2 Simplify homepage to a data-free markdown body with headshot
deploy / deploy (push) Successful in 4s
Replaces the hero_heading/subheading/intro param-driven layout with a
plain markdown body (headshot, Creative Help, Technical Help, bio), so
layouts/index.html just renders .Content. Headshot is served from the
Linode bucket (same convention as the freebie PDF) rather than
committed to git. CSS floats the photo left with the first list
wrapping beside it, matching the site's font/color patterns.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-11 16:47:14 -04:00
will 0fded0b845 Removed pitch from eec layout 2026-07-09 09:43:36 -04:00
will ca5c8862fd Restructure course landing page into data-driven sections
Splits the single hardcoded-feeling course template into hero,
credibility, curriculum, and repeat-CTA sections, each rendering only
when its front matter fields are set. The enroll form (and its
EEC-trigger JS) moves into a reusable partial so it can appear more
than once on a page without id collisions.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 08:51:49 -04:00
will 6afa0cdf0d Update signup status copy for the new readiness-email flow
deploy / deploy (push) Successful in 3s
Day one no longer sends immediately on signup — a readiness email
goes out first, and day one only sends once that's clicked. Update
the post-submit status text so it matches what actually happens.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 06:52:09 -04:00
will 39e8cdcd12 Accessibility pass: fix real WCAG contrast failures, add skip link and nav landmarks
deploy / deploy (push) Successful in 4s
Computed actual contrast ratios rather than eyeballing:
- White button text on teal was 3.67:1, fails AA (needs 4.5:1) — darkened
  the CTA color to 007f73, now 4.90:1.
- Rose nav-hover text was 2.50:1 on the header, 1.82:1 on the footer —
  both far below any AA threshold. Rose now shows as an underline instead
  of a text color change, so the accent survives without breaking
  legibility.
- Added a skip-to-content link (hidden until focused, standard pattern),
  aria-label on both nav landmarks (header nav and footer nav previously
  both announced as plain 'navigation' with no way to distinguish them),
  and an explicit high-contrast focus-visible ring — including a
  header-specific override since the default cta-color ring was only
  ~1:1 against the slate blue header background.

All values re-verified in both light and dark mode, not just light.
2026-07-08 19:17:03 -04:00
will 13cd32d878 Apply brand palette and typography
deploy / deploy (push) Successful in 4s
Reconciled two overlapping note sets — kept the intent from both,
resolved contradictions toward the more distinctive option (cream over
plain gray/white background), and fixed a couple of pairings that would
have been genuinely hard to read as written (teal button with taupe
text, rose links on taupe — both too low-contrast) by keeping the color
but swapping in white/higher-contrast text instead.

Slate blue header (firm, confident) with warm cream body (gentle,
breathing room), teal CTAs (clarity/action), dusty rose as the one purely
interactive/decorative touch (hover states), warm taupe grounding the
footer. Headings in slate blue to tie the brand color into the type
hierarchy. Roboto/Open Sans/Source Code Pro per the font pairing brief,
loaded via Google Fonts since that's what was specified.
2026-07-08 19:09:35 -04:00
will 1dcfe25552 Extract inline CSS into assets/css/main.css, loaded via Hugo Pipes
deploy / deploy (push) Successful in 3s
Minified and fingerprinted in production (cache-busting via content
hash), plain link in dev. Sets up for actual styling work — much easier
to find and edit than a <style> block buried in baseof.html.
2026-07-08 18:59:09 -04:00
will 857d863c6f Surface the backend's actual error message instead of a generic fallback
deploy / deploy (push) Successful in 3s
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'.
2026-07-08 18:18:16 -04:00
will cf87ca5658 Fix contact/enroll confirmation being hidden along with the form it lived inside
deploy / deploy (push) Successful in 3s
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.
2026-07-08 18:12:39 -04:00
will 4445da18bb Add nav/footer, contact form, privacy/terms drafts, first course landing page
deploy / deploy (push) Successful in 4s
- 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).
2026-07-08 16:41:47 -04:00
will cd6ba1415c Drop PaperMod theme, use minimal self-contained templates
deploy / deploy (push) Successful in 3s
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>
2026-07-07 22:40:18 -04:00
will 60c0f31118 Bootstrap Hugo site with PaperMod theme and custom homepage
Sets up the ReGround business site: PaperMod theme (v8.0) as a
submodule, pinned Hugo 0.124.1, and a custom homepage hero
overriding the theme's default blog-first layout with editable
front-matter copy.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-07 22:04:45 -04:00