Lucia uses separate email services for distinct jobs: Postmark for inbound operational/system email intake, and Resend for outbound waitlist and guest verification emails.
Current Service Roles
| Service | Role | Status |
|---|---|---|
| Postmark | Inbound operational/system email intake | Active / existing infrastructure |
| Resend | Outbound waitlist welcome email | Implemented / configured / tested live |
| Resend | Guest booking verification email | Implemented in live-development |
Postmark
Postmark remains responsible for inbound email surfaces such as:Resend
Resend is responsible for Lucia outbound product emails currently recorded in Canon:Sending Domain
Current verified Resend sending domain:Guest Verification Email
Current guest verification email behavior:Runtime Implementation
Current waitlist runtime owner:visitor submits waitlist formCloudflare Pages Function validates email server-sidesignup is inserted into Supabase table lucia_waitlist_signupsif insert is new, Resend welcome email is sentif insert is duplicate, signup returns ok:true duplicate:true and no email is resentif Resend send fails after storage succeeds, signup remains saved and response reports welcome_email.sent:false
Storage remains the source of truth. Email delivery must not control whether the waitlist signup succeeds once storage has accepted the record.
Environment Variables
Current Cloudflare Pages environment variables:Current Known Gap
The endpoint currently returns the Resend message id in the JSON response after a successful send, but it does not yet persist the Resend message id or welcome-email status back into Supabase. Current truth:Implementation Status Checklist
- Resend domain configured
- Resend domain verified
- Sender identity approved
- Environment variables added to Cloudflare Pages runtime
- Waitlist signup record storage implemented
- Resend send path implemented
- Success path tested live
- Duplicate path tested live
- Duplicate signup does not resend email
- Canon current-state docs updated after proof
- Resend message id persisted to Supabase
- Send status persisted to Supabase

