You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Formalize how this repo (email templates used by Datum Cloud) is managed, and train other developers on the workflow, so that maintaining and releasing email templates isn't dependent on tribal knowledge.
Motivation
Currently the process for developing, reviewing, and releasing email templates lives mostly in the heads of a small number of contributors. This issue tracks the work to document that process, produce onboarding material, and get other team members comfortable operating independently in this repo.
Acceptance Criteria
Repo publishes its own kustomize bundle: email-templates builds and publishes its own kustomize bundle (OCI artifact) instead of generating YAML and opening an automated PR against datum-cloud/datum.
infra deploys directly from this repo: infra#3593 (merged) points production/preview at real vX.Y.Z release tags instead of the interim main-build-tag pin used since the bundle cutover; staging still deliberately tracks main builds. Verified with a real release (v1.0.0) actually publishing a matching OCI bundle end-to-end.
This repo is actually versioned: Real releases/tags, cut via a one-click "Publish New Version" workflow anyone on the GTM team can run — no engineering involvement needed. Tested live: found and fixed two bugs in the workflow (#74) — it ignored the chosen bump on a first release, and it wasn't actually publishing a bundle for the release it created. v1.0.0 is now live and confirmed working.
Promotion/review gate defined: The GTM team reviews and merges email content/template changes directly, without needing engineering sign-off — enforced via CODEOWNERS (#30, merged).
Release process documented: RELEASING.md walks through publishing a new version in plain language (which button to click, what patch/minor/major mean, that production rollout takes a few minutes) — no engineering background assumed.
Wiki guides produced: Transactional Emails guide published under Customer Success, covering how to request a change, who reviews/merges it, and how to publish a release — written for a non-technical audience, with links out to CONTRIBUTING.md/RELEASING.md for anyone who wants the engineering detail.
Development environment verified: Brought up .devcontainer from a clean clone and confirmed postCreateCommand, pnpm dev/generate:all/check/screenshot all work. Found and fixed a real gap: react-email and @react-email/ui had drifted to mismatched versions, which made pnpm dev hang on an interactive prompt in any non-interactive environment (#75, merged).
Team training completed: Walk at least one other team member through the full workflow (setup, making a change, previewing, releasing) and confirm they can complete it independently.
Also delivered (beyond original scope)
Non-technical stakeholders can request a change themselves: two issue forms (Content/Wording Change, New Email Template) let anyone describe a request in plain language — no code, no repo access needed.
Requests are drafted automatically: an AI assistant reads the request and opens a ready-to-review PR for template changes, addressing routine requests without engineering having to pick them up.
PRs are reviewable without technical background: PR descriptions and issue updates are written in plain language (before/after wording, what the email says), with implementation detail tucked away for engineers who want it.
Reviewers see the actual email, not just code: a screenshot of the rendered template posts automatically to the PR, so reviewers can judge the real result without running anything locally.
Reference examples for requesters: example issues (#63 for a content change, #64 for a new template) show what a well-filled-out request looks like, linked from the wiki guide.
Known-vulnerable dependencies cleaned up: resolved the ws/esbuild Dependabot alerts (#73) by refreshing the lockfile; the remaining postcss alert is tracked separately, pending an upstream React Email fix.
Summary
Formalize how this repo (email templates used by Datum Cloud) is managed, and train other developers on the workflow, so that maintaining and releasing email templates isn't dependent on tribal knowledge.
Motivation
Currently the process for developing, reviewing, and releasing email templates lives mostly in the heads of a small number of contributors. This issue tracks the work to document that process, produce onboarding material, and get other team members comfortable operating independently in this repo.
Acceptance Criteria
email-templatesbuilds and publishes its own kustomize bundle (OCI artifact) instead of generating YAML and opening an automated PR againstdatum-cloud/datum.infradeploys directly from this repo: infra#3593 (merged) points production/preview at realvX.Y.Zrelease tags instead of the interim main-build-tag pin used since the bundle cutover; staging still deliberately tracks main builds. Verified with a real release (v1.0.0) actually publishing a matching OCI bundle end-to-end.v1.0.0is now live and confirmed working.RELEASING.mdwalks through publishing a new version in plain language (which button to click, what patch/minor/major mean, that production rollout takes a few minutes) — no engineering background assumed.CONTRIBUTING.md/RELEASING.mdfor anyone who wants the engineering detail..devcontainerfrom a clean clone and confirmedpostCreateCommand,pnpm dev/generate:all/check/screenshotall work. Found and fixed a real gap:react-emailand@react-email/uihad drifted to mismatched versions, which madepnpm devhang on an interactive prompt in any non-interactive environment (#75, merged).Also delivered (beyond original scope)
ws/esbuildDependabot alerts (#73) by refreshing the lockfile; the remainingpostcssalert is tracked separately, pending an upstream React Email fix.