Implementation recipes

173 recipes. Every one already written.

These are not feature bullets. They are the guides that ship inside the product, on the Implement tab of each module. Each one carries a goal, prerequisites, the full file inventory, ordered steps with real code, verification at every stage, and a definition of done. Below is what each one covers.

The recipes ship in every pack Code and steps unlock with a licence
Recipes
173
Modules covered
60
Advanced
43
Hours of work
151+

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