Turn your Vercel deploys into a product update email
Your deploys already say what you shipped. Turn a week of Vercel deploys into one product update email, by hand or with Kicklace gathering them for you.
The short answer
Do not email people on every deploy. Gather a week of them, pick what a customer would notice, and send one short update to the people who asked to hear from you.
With Kicklace, connect Vercel and your production deploys are collected for you. A Product updates list can send on a schedule, with a variable in the email that fills itself from your deploys. You read the email before it goes, and a week with nothing deployed sends nothing.
The plain way
- Once a week, open your Vercel deployments, or run
git log, and look at what went to production. - Keep the changes a customer would notice. Drop the refactors and the fixes nobody saw.
- Write three or four lines in plain words.
- Send them to a list of people who agreed to get product updates.
Vercel can call a webhook of yours when a deploy succeeds. Its events include deployment.succeeded, and the payload says whether the target was production. As of October 2026, Vercel's account webhooks are on its Pro and Enterprise plans. A webhook is handy for collecting deploys in one place, but you still choose the words.
The hard part is not the sending. It is remembering to do it, every week, while you are busy building.
With Kicklace
- Go to Connections → Vercel → Add Kicklace in Vercel. Vercel asks which projects Kicklace may reach. Pick them, come back, and choose your workspace. Kicklace writes its keys into those projects and makes the deployments webhook itself. Redeploy each project once so it picks up the new variables.
- Every production deploy now becomes a release in Kicklace, named after its commit. Previews and failed builds are ignored.
- Optional: connect GitHub. Then a release also carries the pull requests its commits name.
- Make a Product updates list. People join it with a form on your site, and Kicklace keeps the exact sentence each person agreed to. With the tag on your site, a form like this is enough, with your list's own slug in
data-kl-list:
<form
data-kl-list="product-updates"
data-kl-consent="Send me product updates. I can unsubscribe with one click."
>
<input type="email" name="email" required />
<button>Sign up</button>
</form>
- On the Lifecycle map, open the list. Its regular email goes every week, every other week or every month at 9:00, and its news can come from a variable filled from your deploys: one dated line for each, with the commit and pull request titles where GitHub is connected.
- An email with a variable is read before it goes. Its words wait on Home, under Needs you, as the email will arrive. Approve it and it goes. Decline it and that time is skipped.
Nothing is sent because you deployed, and Kicklace never talks back to Vercel. Email to a list goes only to people who joined it. Deployments from Vercel has the detail, and the demo shows it on your own site with no sign-up.
Because the lines come from your titles, write commit and pull request titles a customer could read.
What the email should say
Lead with what changed for the reader, in their words, and keep it short.
Subject: What's new in [your app]
Hi {{first_name}},
This week we shipped:
- [Date]: [what changed, in a customer's words]
- [Date]: [what changed, in a customer's words]
Something you wish we would build next? Reply to this email.
[Your name]
More in product update emails and the product update email template.
FAQ
Does every deploy send an email?
No. Only the list's scheduled email goes out, and a week with nothing deployed sends nothing.
Do I need GitHub?
No. Without it the lines come from each deploy's title, the first line of its commit message. GitHub adds the pull request titles.
What does it cost?
Kicklace is free up to 1,000 contacts, sending from its own address with your name on it. Your own domain is part of Starter, $25 a month. See pricing.
Free up to 1,000 contacts.