Skip to main content
← All notes
Building

Webhooks do the work so I do not have to

software

When a client buys a mixing package, I do not manually send a confirmation email. I do not open Google Calendar and create an event. I do not update a spreadsheet. A Stripe webhook fires on payment_intent.succeeded, verifies the signature, checks idempotency metadata so duplicate deliveries cannot happen, sends the client a confirmation email through Resend, sends me a notification with a link to the Stripe dashboard, and the confirmation page offers instant calendar booking. When someone signs up for the portal, a Clerk webhook fires, verifies via Svix, and upserts their profile into the database before the redirect even finishes. If a client record already exists from an admin-created project, the webhook links the Clerk account to the existing record instead of creating a duplicate. Two webhook endpoints. Two external services doing the triggering. Zero manual steps between a client action and the system responding. The git log shows these webhooks going in early because they had to. Every feature that came after — notifications, portal personalisation, booking sync — depends on the data these webhooks put in place.

Comments coming soon

Sign in with TikTok to leave a comment. Coming soon.