Goal
Add a new sendgrid provider so Lunogram can send email through SendGrid, following the same provider model as existing modules (e.g. resend).
Scope
- New provider module under
modules/providers/sendgrid/
- Email channel support only (
providers.ChannelEmail)
- Config schema for required credentials (at minimum SendGrid API key)
- Send implementation mapping Lunogram email payload -> SendGrid API request
- Provider validation for required config
- (If feasible) webhook handling for delivery events mapped to canonical provider webhook events
Implementation notes
- Mirror structure and conventions from
modules/providers/resend/
- Expose standard exports:
manifest, send, validate, and optionally webhook, init, destroy if webhook lifecycle is implemented
- Include provider metadata (id, title, icon/color, website, rate limit)
Acceptance criteria
- Provider appears in provider metadata/list endpoints with module id
sendgrid
- Creating a provider with valid config succeeds
- Email send works end-to-end for HTML/text payloads
- Clear permanent/transient error classification is implemented
- Tests added/updated for core send + validation behavior
Out of scope
- SMS or push support
- Advanced SendGrid features (templates, marketing campaigns, etc.) in first version
Goal
Add a new
sendgridprovider so Lunogram can send email through SendGrid, following the same provider model as existing modules (e.g.resend).Scope
modules/providers/sendgrid/providers.ChannelEmail)Implementation notes
modules/providers/resend/manifest,send,validate, and optionallywebhook,init,destroyif webhook lifecycle is implementedAcceptance criteria
sendgridOut of scope