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
Email send capability for the admin app: newsletters, member notifications, event reminders, group announcements. Requires a transactional email provider decision.
Requirements
Brainstorming → spec under docs/superpowers/specs/.
Pick an email provider during brainstorm: Resend, Postmark, SendGrid, AWS SES, etc. Tradeoffs: cost at member volume (~3,700+), deliverability, bounce/complaint feedback, template management.
Worker-side send adapter (packages/api/src/lib/email/) abstracted from the provider so the choice is reversible.
Template management: stored as code in the repo (PR-reviewed) OR stored in DB (admin-editable). Decision part of brainstorm.
/admin/communications — composition surface, audience selector, send / schedule / preview, send history with delivery status.
Audience model: ad-hoc list (paste emails), saved segment ("all org members of tier X"), event-bound ("all attendees of event Y").
Suppression list integration: respect bounces, complaints, and member-level marketing-consent flag (users.marketing_consent).
Outbound email logged to audit_log for traceability ("who sent what to whom, when").
Context
Foundation must ship first (#1956). This subsystem unlocks event reminders (#1961), election notifications (#1964), and renewal nudges (#1959).
Implementation Notes
Volume-pricing math matters: at ~3,700 members × monthly newsletter, providers price differently across the inflection points.
Compliance: CAN-SPAM, GDPR if any EU members, plus respect marketing_consent. Audit needs to capture the consent state at send time.
Summary
Email send capability for the admin app: newsletters, member notifications, event reminders, group announcements. Requires a transactional email provider decision.
Requirements
docs/superpowers/specs/.packages/api/src/lib/email/) abstracted from the provider so the choice is reversible./admin/communications— composition surface, audience selector, send / schedule / preview, send history with delivery status.users.marketing_consent).audit_logfor traceability ("who sent what to whom, when").Context
Foundation must ship first (#1956). This subsystem unlocks event reminders (#1961), election notifications (#1964), and renewal nudges (#1959).
Implementation Notes
marketing_consent. Audit needs to capture the consent state at send time.