Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2.2 KiB
thistleandmoth-eec-courses
Course content for eec, the self-paced
email course engine — this instance served at eec.thistleandmoth.org. Push to
master and CI syncs courses/ straight to production — there's no staging
step, so treat a push here the same as a push to eec itself.
Full reference for course/step file format, course.yml fields, the
readiness step, drip-triggered courses, and sync guardrails lives in the
eec-courses README — the
format is identical, only the target instance differs.
Layout
courses/
reader-magnet/
course.yml
day-0.md
day-1.md
reader-magnet is the funnel for thistleandmoth.org's /gift page (see the
thistleandmoth-site repo). Same shape as michaelferrara.org's: landing page
signup → subscriber added to the thistleandmoth.org Listmonk list immediately
(signup_list_name in course.yml, no click required) → the reader-magnet
file email goes out ({{.CTALink}} in day-0.md is a direct download link,
not a webpage) → a day-1 follow-up email 24h later with no list/conversion
mechanics of its own.
Stub — one thing needs to happen before this goes live
course.yml is active: false. All the content below is a placeholder
(TODO subject lines, TODO body copy, and a redirect_url pointing at a file
that doesn't exist yet in the thistleandmoth-downloads bucket — see
thistleandmoth-site's /gift page, which is the same kind of stub).
Replace the TODOs with real copy once the reader-magnet file and cover art
are ready, then flip active: true.
signup_list_name: "thistleandmoth-list" already exists in Listmonk
(public/single opt-in, matching michaelferrara-list/Two Squirrels Press's convention) — no action needed there.
Deploying
Push to master → .gitea/workflows/sync.yml tars up courses/ and
POSTs it to this domain's eec-thistleandmoth container over the internal
Docker network, authenticated with THISTLEANDMOTH_EEC_SYNC_TOKEN (a Gitea
Actions secret shared with the eec-thistleandmoth Ansible role's copy). No
separate deploy step, no staging — a push here goes live immediately (once
active: true and the Listmonk list exist).