Skip to content

Formalize email template repo process and train team on workflow #18

Description

@scotwells

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

  • 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.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Fields

Priority

None yet

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions