Practice sandboxTry anything: add, edit, record and send. Do not enter real people, children, gifts or contact details until we move to the launched production system. Changes stay in this browser only, and nothing sends, charges or posts.Practice only. No real data.
Legacy ChurchStaff Sandbox

Capture mode: nothing leaves this browser

Every send here goes through the sandbox stand-in for @church/outbound with OUTBOUND_MODE=capture, so it lands in the captured outbox instead of reaching anyone. In production the same messages go out through @church/outbound in live mode: email through Amazon SES and texts through Twilio, on separate senders for announcements and for operational traffic. Non-production environments only ever hold sandbox credentials.

The captured outbox is empty

Send something from the composer, text STOP from a person's consent page, or submit a form on the website preview. It lands here, and nothing leaves this browser.

How live sending works

Not built in this demo; this is the path the composer will use in production.

  1. A send writes one outbox row per contact point, with a unique key on message, contact point and channel, so a retry never sends twice (COM-025).
  2. The relay in packages/jobs re-checks consent and quiet hours just before dispatch, then calls @church/outbound.
  3. @church/outbound sends email through Amazon SES and texts through Twilio, or captures them when the environment is not production. It refuses live credentials anywhere else.
  4. Delivery receipts and STOP replies come back through signed webhooks and write to the consent record within a minute (COM-014, COM-024).