Tyler Pratt← All articles
Product

How Solo Devs Ship a Week of Release Notes in 30 Seconds — Without a Marketing Team

How do I write release notes my customers will actually read?

2026-06-25 · 11 min read
Quick answer

Customers don’t want your commit messages. They want to know what changed and why it helps them. So drop the internal stuff, like dep bumps and refactors. Rewrite each real change to lead with the benefit, not the code. Then put the biggest change first and reshape it for three places: a changelog, an email, and a launch post. The free tool below does all of this from your commit log in one pass.

Key points

Write release notes by hiding the code stuff and leading with the benefit. Then reshape the same facts for three places. Here is a real complaint that says it best: “I don’t want to know what commit messages you’ve written. I want to know a story of what the release is about.”

That one line is the whole problem. Your commit log says what you did. Your customer wants to know what they can now do. Those are two different things.

So every release, you finish the work. Then you write about the work. You turn a wall of feat: and fix: into a changelog, then an email, then a post. Three things to write, every single ship.

It’s a lot, so it slips. The changelog goes stale. The email never goes out. The post is just a 🚀 with no words. This guide shows you why that happens and how to fix it fast.

Why do auto-changelog tools get it wrong?

They dump your commits on your customers, and commits are written for you, not them. Connect your repo and out comes a list. It groups commits by a feat: or fix: tag and prints them. That sounds helpful. It is not.

A commit log is a record of what the developer did. It is not a record of what the customer can now do. Those are two different documents for two different people.

Take “fix: null check in scheduler.” That is a fine commit message. It is a useless changelog line. Your customer has no scheduler. They have due dates that used to be wrong and now work.

Turning the code line into the customer line is the real job. A scraper can’t do it, because the benefit is not in the commit. It’s in your head. So the old advice was “just write it by hand” — three times, every ship.

Why is writing release notes such a drag?

Because one release turns into three pieces of writing, and each one needs a different shape. You write all three from the same pile of commits.

The changelog is the record. It is grouped, short, and lives on a docs page. The email is a nudge. It leads with the one biggest thing and stays short. The launch post is a hook. It has one star feature and a question that gets replies.

Same facts, three different jobs. Do that every week and writing about the work becomes a part-time job nobody asked for.

So two of the three get skipped. The release ships with no story. The fix is not more willpower. The fix is to automate the boring part and save your brain for the one choice that matters: what to build next.

What goes into a good release story?

Four things, in order. Notice how few of them need the commit log at all.

  1. Cut the internal stuff. Dep bumps, refactors, logging, CI, test-only changes, anything tagged chore: — none of it belongs in customer text. Your first job is to decide what to drop.
  2. Lead with the benefit. Rewrite each kept line to say what the user can now do. “add recurring tasks with custom RRULE support” becomes “set a task to repeat on any schedule.”
  3. Group it and order it. Use New, Improved, and Fixed. Put the biggest item first so a quick skim still gets the headline.
  4. Keep the real numbers. “2.3x faster” beats “performance improvements.” Vague words make people stop trusting you.

Three of those four steps are pattern work. You classify, you rewrite in a set voice, you sort by impact. A model is good at that, line five or line fifty.

Only one step truly needs you: the final read. You check that nothing internal leaked and the story matches what you shipped. That is the idea the tool below is built on.

How does the tool do all this in one pass?

It takes your raw changes and runs them through the same steps every time, then hands you all three pieces at once. You can paste merged PRs, a commit log, or plain bullets.

  1. Paste your changes. PRs, commit messages, or bullets. Whatever you’d glance at before writing.
  2. Group and translate. It tags each line as Feature, Improvement, or Fix. It drops the internal chores. It rewrites each kept line in plain, benefit-led words.
  3. Write the story. A grouped changelog, an email that leads with the biggest item, and a short launch post with a hook.
  4. Show a dashboard. Copy-ready blocks for each channel, stamped with the version and date. It also lists every line it hid, so you can check nothing real got dropped.

You go from a five-line commit log to three ready-to-publish pieces. Then you spend your energy on the final read, not three cold starts.

What does the real output look like?

Here is the actual output from the sample run. The input is five raw lines from Tablane v2.4. One of them is #430 chore: bump deps, internal logging cleanup, which should never reach a customer. Watch what happens to it.

Changelog — v2.4, customer-facing
## v2.4

**New**
- **Recurring tasks** — set a task to repeat daily, weekly, or on any custom schedule. No more re-creating the same to-dos.
- **@mentions in comments** — tag a teammate and they get an email so nothing slips.

**Improved**
- Boards now load **2.3x faster**, even on huge lists.

**Fixed**
- Due dates no longer shift by a day if you're outside UTC.

Why it works: the internal #430 dep-bump is dropped, every line leads with the benefit, and “2.3x faster” stays.

What's-New Email — to customers
Subject: Recurring tasks are here (+ faster boards)

Hi {first_name},

A few things we just shipped to make Tablane smoother:

• Recurring tasks — stop re-creating the same weekly to-dos. Set it once, it repeats.
• @mention teammates in comments — they get notified by email instantly.
• Boards load 2.3x faster on long lists.
• Fixed a timezone bug that nudged due dates by a day.

That's it — go give recurring tasks a try.

— The Tablane team

Why it works: the subject names the biggest item, the bullets are easy to skim, and there is one simple nudge.

Launch Post — X / LinkedIn
Shipped Tablane v2.4 🚀

The one you asked for most: recurring tasks. Set a to-do to repeat on any schedule — daily, weekly, or a custom rule.

Also in this drop:
→ @mention teammates in comments
→ boards load 2.3x faster
→ squashed a nasty timezone bug

What should we build next?

Why it works: one star feature in the hook, fast bullets for the rest, and a question that gets replies.

Same five commits, three different pieces. And the internal chore never got out the door. That is the part that used to take an afternoon.

How do I turn a commit into a benefit?

Make each line answer one question: what can the reader now do, or what stopped hurting? That is the whole skill, and it is more mechanical than it feels. Here is the procedure the tool runs on every line. You can run it by hand to check the tool’s work.

  1. Find the verb the user cares about. The commit verb is for you: add, fix, refactor. Swap it for the user’s verb: what they can now do (“set a task to repeat”) or what now works (“due dates stay right in any timezone”).
  2. Cut the code details. “custom RRULE support,” “by virtualizing long lists,” “null check in scheduler” — the how is noise to a customer. Keep the what and the result.
  3. Keep every real number. Numbers are why people believe you. “2.3x faster” stays. “Various performance improvements” means you didn’t measure.
  4. Ask: would I show this to a customer? If the answer is no — a dep bump, a CI tweak, a log cleanup — it gets dropped, not rewritten.

Run those four checks on every line and the changelog writes itself. The point of writing them down is simple. Translation is a repeatable step, not a flash of marketing magic. That is why it is safe to hand to a model that never gets bored on line forty.

What mistakes make release notes worse than nothing?

Bad release notes teach customers to ignore you. Four mistakes do most of the damage, and all four are easy to fix once you can name them.

  1. “Various bug fixes and improvements.” The most common line in software, and the most useless. It tells the reader nothing and teaches them to skip your changelog. If you fixed something, say what.
  2. Leaking internal noise. An email with a PR number, a commit hash, or “bumped the logging library” looks careless. It also buries the one feature that mattered.
  3. Treating every change the same. When every line looks equal, the reader can’t find the headline. The biggest thing has to come first and look bigger.
  4. Reusing one piece everywhere. Pasting your changelog into an email and a post gives you three weak pieces. Each channel needs a different shape.

Each one is a habit, and a steady system fixes habits. The tool drops internal noise by default, puts the biggest item first, and reshapes the same facts for each channel. So you stop relearning these lessons one bad release at a time.

How do I make this a habit, not a chore?

Keep a running list as you ship, then run the tool once at release time. That turns release notes from a heroic effort into a quick routine. Here is a light cadence that adds no meetings.

  1. At merge time, jot it down. Don’t rebuild the release from git history later. Drop each change into one running note as you merge it. The tool takes plain bullets, so this list is your input.
  2. At release, run once and read once. Paste the list, get all three pieces, and do the human step: skim the hidden items so nothing real got dropped, and skim the changelog so the story matches what you shipped.
  3. Same day, publish all three. Changelog to the docs page, email to the list, post to X or LinkedIn. They are already written, so shipping and announcing stop being two jobs.
  4. After, read the replies. The post ends with “what should we build next?” on purpose. Your announcement is also cheap customer research. Pull the replies into your next sprint.

Run this for a few releases and the dread fades. The job that used to need a fresh afternoon of writing now needs a paste and a read.

How do I get the tool and run it?

The tool comes as one Claude Code build-prompt. You paste it in once and it builds a working dashboard. It comes pre-filled with the Tablane sample, so it works on the first run.

It also has a Settings panel for your own API key, so you can run it on your real releases every ship, for as long as you keep shipping.

It’s free. Drop your email below and the prompt lands in your inbox in about two minutes. Paste it into Claude Code, swap in your own commit log, and let it write the release.

Can you turn this into a side hustle?

Yes — and it is one of the simplest ways to make money with AI. You do not have to use this tool only for your own work. You can run it for other people and charge for it.

Here is the model. Small software teams. need release notes and changelogs, but they do not have the time or the skill to do it well. You do. So you run the tool, hand them a finished result, and charge for the service. Many people charge $300 to $600 a month per team for work like this.

The best part is the cost to start: $0 to start — just the free prompt. The tool does the heavy lifting in minutes, so your margin is high and you can take on more clients without more hours. To get your first client, reach out to a few small software teams you already know. Do one for free, show them the result, and ask who else needs it.

FAQ

Will it hide things my customers should see?

It only drops items it is sure are internal, like chores, dep bumps, refactors, and CI. It also lists every line it hid in one panel. So you can check that nothing real got cut before you publish.

Do I need to be technical to use it?

No. You paste one prompt into Claude Code and it builds the whole tool for you. It comes with a working example. Then you paste in your own changes — PRs, commits, or plain bullets all work.

How is this different from an auto-changelog tool?

Auto-changelog tools just dump grouped commits. This one drops the internal noise and rewrites each line to lead with the benefit. Then it makes three pieces — a changelog, an email, and a post — not one raw list.

Can I use it on every release?

Yes, that is the point. Enter your API key once and run it again on every new version. It is a reusable app, not a one-time output.

Written alongside the free Release Notes Writer · More AI tools & articles