Showing 16 of 173 recipes.
Notificationsintermediate30 min
Notify assignees when a task lands on them
Assign a task and the person it lands on knows. Their bell badge updates in every open tab, the notification respects their mutes and skips duplicates fired within the hour, the item joins their next email digest automatically, and the assignment itself is recorded in the audit trail.
respecting mutes before the write
Notificationsbeginner25 min
Give users a notification preferences screen
A settings screen where users control what reaches them: per-type mute switches grouped by category, a master in-app toggle, and a digest frequency picker, each change saved as it is made. Types every product must deliver — billing, security — stay on even if someone tries to mute them by hand.
new notification types defaulting sanely
Notificationsintermediate35 min
Broadcast an announcement to a whole organization
Maintenance windows and policy changes reach every member of an organization, however large. The announcement is delivered in small batches so no single write blows its budget, individual preferences still apply, a retry can never send anyone the same message twice, and admins see how many people got it versus muted it.
no double-sends when a retry lands
Notificationsintermediate35 min
Pop a toast — and a browser push — the moment a notification lands
A badge only helps someone watching the tab. This adds in-app toasts the moment a notification lands — without replaying old ones after a refresh — plus OS-level browser push for people who opt in, tracked per device so revoking one browser leaves the others working. Muted or duplicate notifications never push.
push permission without nagging users
Notificationsbeginner20 min
Expire read notifications before the table swallows your database
Notification history stays proportional to active usage rather than uptime. A nightly sweep clears read items past a retention window you set in one place, works in bounded batches that can never blow a transaction budget, keeps going until the backlog is gone, and logs what it removed so growth stays observable.
bounded deletes that never time out
Notificationsintermediate30 min
Build a full notification inbox with filters and pagination
Past the bell popover sits a full inbox: scrollable history in server-fed pages, filters by type, an unread-only view, and bulk mark-as-read that clears exactly what the current filter shows — clearing billing never silently clears security. The bell links straight into it, so the popover's cap has an escape hatch.
filtering on the server, not the page
Notificationsintermediate30 min
Email urgent notifications immediately instead of waiting for the digest
A failed payment or a sign-in from a new device should not wait for tomorrow's digest. Each notification type carries an urgency level: urgent ones email immediately through the same Resend delivery path the digest uses, mutes still apply, and the digest knows to skip whatever already went out.
digest skipping what already mailed
Notificationsadvanced45 min
Deliver notifications to Slack and customer webhooks
B2B buyers ask for this in week one. Organizations register a Slack channel or their own HTTPS endpoint, choose which event types get forwarded, and every payload arrives signed so the receiver can verify it. Failed deliveries retry, and admins get a per-attempt delivery log plus a test-send button.
signature verification and retry storms
Notificationsintermediate30 min
Brand the digest email and preview it without waiting for the cron
The digest arrives looking like your product: organization branding, items grouped by category with counts, and a one-click unsubscribe that works without signing in and can only ever mute digests. A development-only preview page renders the template with sample data on every save, so iterating never means waiting for the cron.
unsubscribe links that need no login
Notificationsintermediate25 min
Test notification delivery end to end with convex-test
Notification bugs are quiet ones: a muted type that still writes, a digest carrying another tenant's rows. This suite runs the real notification and digest functions against an in-memory backend with no mocks, covering mute suppression, the dedupe window, cross-tenant isolation, unread counts, and digest windows driven by a controlled clock.
faking the clock for digest windows
Transactional emailintermediate45 min
Ship transactional email from debug to Resend
Transactional mail that works from day one. In development, every send renders as a local preview with no provider key required; once production credentials exist, the same path delivers through Resend. The browser only ever learns whether email is configured — the key itself never leaves the server.
keeping provider secrets off the browser
Transactional emailintermediate45 min
Wire auth lifecycle emails (invite + reset)
Organization invites and password resets go out as your own branded mail, wired through Better Auth's lifecycle hooks into the same transactional pipeline production uses. During development they render as local previews, sandbox rules keep test sends away from real inboxes, and the reset flow never reveals whether an address exists.
test sends escaping to real users
Transactional emailintermediate45 min
Close the loop with Resend delivery webhooks
Know what actually landed. Delivery, bounce and complaint signals from Resend flow back into your records, so every message advances through its real lifecycle instead of stopping at a send-time guess, admins read a per-message event timeline, and events that arrive out of order can never drag a status backwards.
webhook events arriving out of order
Transactional emailadvanced60 min
Suppression list and one-click unsubscribe
Addresses that hard-bounce or report spam are suppressed automatically and never mailed again, category opt-outs are honoured, and bulk mail carries the one-click unsubscribe headers Gmail and Yahoo now require, with no sign-in involved. Critical mail like password resets still goes through, and every skipped send stays on record for support.
critical mail must ignore suppression
Transactional emailadvanced55 min
Send exactly once, retry safely, dead-letter the rest
One event, one email, no matter how many times the request fires. A retried call returns the original send instead of mailing twice, transient provider failures back off and retry a bounded number of times, and mail that still will not go parks in a dead-letter state an admin can inspect and requeue.
double sends across retry windows
Transactional emailintermediate50 min
One template source, HTML and plain text, with a preview route
Every template produces the matched HTML and plain-text pair inboxes and spam filters expect, from a single definition that cannot forget the text part. Templates render in the browser with sample data during development, and a test walks the whole registry — including templates added later — and fails if any loses its text alternative.
missing text part hurting spam scores