Skip to main content
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


Postmark

Postmark remains responsible for inbound email surfaces such as:
Current Canon status:
Postmark is not the waitlist outbound provider.

Resend

Resend is responsible for Lucia outbound product emails currently recorded in Canon:
Current implementation status:
Live proof:

Sending Domain

Current verified Resend sending domain:
Current sender identity:
Resend receiving is not enabled and is not required for this path.

Guest Verification Email

Current guest verification email behavior:
The verification email must not expose:
The guest-facing chat must not expose the token, magic URL, destination email, or private booking details. See 04 - Guest Verification Email for the full privacy contract.

Runtime Implementation

Current waitlist runtime owner:
Current behavior:
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 values by role:
Secrets must remain server-side only.

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:
This is acceptable for the current waitlist milestone. Add persistence later if/when auditability becomes necessary.

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

See Also