Engineering teams and product owners who ship tagged releases on GitHub

Automate release announcements without losing the final say

Tag a release and a draft announcement is waiting in your inbox before the CI badge turns green. SocialHandoff turns GitHub releases into network-ready posts, cites the release in the audit log, and publishes only after a person approves.

Release notes are written for developers who read changelogs, not for the people who follow you on X or LinkedIn. So the announcement becomes a chore that happens a day late, gets written by whoever has time, or never happens at all. Meanwhile the work that went into the release gets no audience.

How to do it

  1. Send releases in Add the socialhandoff-announce-action GitHub Action to your repo, or point a signed webhook at SocialHandoff. Each published release arrives as a trigger event.
  2. Draft per network An agent reads the release body and drafts a thread for X and Bluesky, a single post for LinkedIn, and a Mastodon post that fits 500 characters.
  3. Apply brand memory Voice rules and product names from brand memory keep version numbers, feature names, and tone consistent across every release.
  4. Approve from the inbox The approval.requested webhook pings your team. A reviewer edits inline, approves, or rejects from desktop or the phone swipe stack.
  5. Publish with a citation The post goes out and the audit log records which GitHub release it came from, so anyone can trace a post back to the tag.
v2.4.0 is out. Scheduled exports now run on your own cron, CSV imports handle 10x larger files, and the API returns rate-limit headers on every response. Full notes and upgrade steps in the release. (Drafted from the GitHub release v2.4.0, approved by the maintainer on duty.)

How release announcements work in SocialHandoff

A release is the most reliable content source a software team has. It has a date, a version, a list of changes, and a link. That structure is exactly what an agent needs to write a good post, and exactly why a human still needs to check it: release notes often include internal ticket names, half-finished features behind flags, or breaking changes that need careful wording.

Setup in four steps

  1. Connect the networks you announce on. See connect X and connect LinkedIn.
  2. Add the GitHub Action to your release workflow. The GitHub releases guide shows the YAML, and the GitHub Actions integration covers secrets.
  3. Write brand memory: product name spelling, words you avoid, how you describe breaking changes. See brand memory.
  4. Decide who approves. Owners approve by default; on Pro you can require more than one reviewer.

Permissions to give the agent

Give the release agent a key with draft permission only, scoped to the networks you announce on. It does not need schedule or analytics access to write an announcement. If you later want tagged patch releases to go out on their own, promote the agent on one network through the trust ladder and keep major releases draft-only by policy.

Measuring results

Use per-post metrics where the network returns them to compare which release posts earned clicks and replies. Tag release links with UTM parameters using the UTM builder so your product analytics shows which announcements drove upgrades. Treat best-time suggestions as heuristics, not rules.

Pitfalls to avoid

  • Announcing pre-releases by accident. Filter drafts or reject them in one tap; nothing ships without approval.
  • Pasting raw changelogs. Ask the agent to lead with the user-facing change, not the commit list. The release notes template and changelog thread template give it a shape.
  • Forgetting alt text on screenshots. The alt text guardrail blocks the post until it is added.

Frequently asked questions

Can a GitHub release publish a post automatically?
Yes, but only after you choose that. By default a release creates a draft that waits for approval. You can promote the drafting agent to auto-publish on specific networks once it has a clean approval record.
Do I need the GitHub Action, or can I use a webhook?
Either works. The GitHub Action is the shortest path for repos on GitHub. A signed webhook lets any CI system or release tool send the same event.
How does the post link back to the release?
The draft includes the release link, and the audit log stores the release as a citation, so every published post can be traced to the tag that triggered it.

Let your agents post. Keep the final say.

Connect your first agent in minutes. Every draft waits in your inbox until you approve it.

14 days free. No card required.

The hosted version is opening soon

Leave your email and we will send one message when hosted accounts open, with your 14-day trial ready. Want it today? Self-host it free from the repo.

Start free trial