Communication
Audience consent, notification orchestration, outbound delivery, durable history, and verified inbound webhooks.
Communication packages separate who should receive a message, what the message means, how it leaves the application, and how provider callbacks return. Applications can adopt each boundary independently or compose the complete path.
Audiences
| Package | Plan | Responsibility |
|---|---|---|
@playstack/audiences | Lists, consent evidence, subscriptions, segments, and signed preference flows. | |
@playstack/audiences-react | Headless subscribe and preference-center state for React. | |
@playstack/nest-audiences | Guarded public and management routes plus remote-list workers for NestJS. | |
@playstack/audiences-resend | Resend Contacts and Segments remote authority. |
Notifications and delivery
| Package | Plan | Responsibility |
|---|---|---|
@playstack/notifications | Typed user-directed notifications across mail and an in-app inbox. | |
@playstack/notifications-react | Headless React inbox state and optimistic mutations. | |
@playstack/nest-notifications | NestJS notification queue-consumer binding. | |
@playstack/delivery | Queued provider dispatch and shared suppression policy. | |
@playstack/delivery-history | Durable provider-neutral delivery timelines. | |
@playstack/nest-delivery | NestJS delivery worker and unsubscribe endpoints. | |
@playstack/webhooks | Verified, idempotent Stripe, GitHub, and custom webhook receipt. |
Composition rule
Audiences resolves recipients but does not compose campaigns. Notifications resolves user preferences and renders typed messages. Delivery applies suppression and selects a provider slot. Webhooks verify provider feedback at the application edge. Keeping these responsibilities separate prevents a mail vendor or framework from becoming part of the product contract.