Changelogs, releases and telling people, written down properly
Free guides for writing a changelog, for the tools between a commit message and a release, for telling people the release happened, and for GTM engineers who want to turn what shipped into a sales signal. Each one answers the question it is named after.
Writing a changelog
How to write the file
Nothing on these pages installs a tool.
- Release notes templateA template to copy, with variants for a GitHub release, a CHANGELOG.md and a Word or Confluence doc.
- Changelog examplesPublic changelogs, and the one habit each of them gets right.
- Changelog formatThe CHANGELOG.md conventions, how a changelog differs from release notes, and how to write an entry.
- Changelog on your own siteHow Pheidi copies its JSON Feed into its own repo, so every entry gets a permanent page.
- Pheidi changelog case studyFive entries shown, 14 hidden, then a rebuild. The numbers from the first sync, and what it costs.
From commit to release
The tooling between a commit and a release
Every setup was run against the real tool, and the version it was checked against is on the page.
- Conventional commitsThe format, every type and its version bump, and a checker for a pasted git log.
- Cheat sheetConventional commits format, types, footers and commitlint’s default rules on one page.
- Semantic versioningMajor, minor and patch, what 0.x means, pre-releases, and npm ranges.
- commitlintSetup, a config file that loads, a commit-msg hook, CI and PR titles.
- CommitizenThe Node and the Python tool that share the name, and setup for both.
- release-pleaseThe release PR, the v5 Action, monorepo config, and a config generator.
- semantic-releaseA tested .releaserc.json, the GitHub Actions workflow, and a config generator.
- ChangesetsVersioning npm packages from changeset files instead of commits.
- standard-versionIt is deprecated. Where to migrate, with an option mapping table.
- git-cliffChangelogs from git history, the default cliff.toml, and --bump.
- Changelog generatorsEight ways to generate a changelog from commits, PRs or changeset files, compared.
Marketing what you ship
Telling people it shipped
For developer tools and B2B SaaS. Every outside example on these pages links to the real thing.
- Developer marketingWhat it is, the channels developers trust, and why your merged PRs are the content.
- DevRelWhat developer relations is, what the job looks like, and devrel for a team of one.
- Product updatesHow to announce a product update, channel by channel, with an announcement template.
- Product update email templateFour product update emails and a list of subject lines, as copy blocks.
GTM engineering
For the people who automate go-to-market
Every number on these pages links to where it came from. Every tool claim was checked against the tool's own site.
- GTM engineerWhat the job is, what they actually build, how it differs from RevOps, and what it pays.
- GTM toolsThe GTM tech stack layer by layer: data, signals, sequencing, CRM, glue, and release signals.
- GTM workflowsFive workflow recipes with the trigger, the steps and the way each one breaks.
- Buying and product signalsBuying signals, intent signals and trigger events, and the first-party signal you already own.
- Closed-lost reactivationA deal was lost over a missing feature. You ship it. The rep hears the same day.
- Content engineeringContent built by systems instead of by hand, with a working example that writes from code.
Free tools
Try something instead of reading
No account needed for any of these.
- Changelog toolChangelog entries drafted from your merged pull requests.
- CutoffPaste a post and see where each network cuts it off. Runs in your browser.
- Try it on a PRPaste a public GitHub pull request and read the posts it would write. Nothing is saved or published.
The release is out. Now tell someone.
You were going to merge the PR anyway.