SaaS Changelog and Release Notes Guide | Coding Capybaras
A SaaS changelog is a retention channel disguised as a maintenance chore. How to structure it, how often to publish, and where to put it so customers read it.
· Justin Boggs

Photo by Glenn Carstens-Peters on Unsplash
A SaaS changelog is a running, public record of what you've shipped — and it's one of the highest-leverage retention tools a solo founder has, because it's the cheapest way to keep proving the product is alive and getting better. Most founders treat it as a maintenance chore, a file they update grudgingly or not at all. That's the mistake. Every entry is a small message to paying customers that says "you bet on something that's still moving." This guide covers what a changelog is, how it differs from release notes, what to write in each entry, how often to publish, and where to put it so people actually read it.
TL;DR
- A changelog is a cumulative, reverse-chronological log of all notable changes. Release notes are a per-release snapshot written for the customer. You want both, and they serve different jobs.
- Changelogs are for humans, not machines — the single most useful rule from the Keep a Changelog convention.
- Group entries by type (Added, Changed, Fixed, Removed), newest first, with an ISO date on every version.
- Cadence beats volume. A dependable rhythm customers can trust matters more than a long entry once a quarter.
- The changelog is a retention channel: it reduces "is this thing abandoned?" churn and turns shipping into marketing at zero extra cost.
What a changelog is (and how it differs from release notes)
A changelog is a curated, chronologically ordered list of notable changes for each version of a product. That definition comes straight from the Keep a Changelog project, which is the closest thing the software world has to a shared standard. The emphasis is on curated and notable: a changelog is not a dump of your commit history. It's the human-readable story of what changed and why it matters.
People conflate changelogs and release notes, and the distinction is worth getting right because it changes how you write. A changelog is cumulative — one growing document that records every version over the product's life. Release notes are a snapshot of a single release, usually written in a warmer, benefit-focused voice and distributed to customers when that release ships. The changelog is the archive; the release notes are the announcement.
Here's the split in practice:
| | Changelog | Release notes | | --- | --- | --- | | Scope | All versions, cumulative | One release | | Audience | Users and developers | Customers, mostly non-technical | | Voice | Terse, factual, grouped | Warm, benefit-led, narrative | | Lives at | A single running page or file | Email, in-app, blog post | | Job | System of record | Get people to notice and adopt |
For a solo SaaS, you don't need heavy tooling to run both. The changelog can be a page on your site backed by a simple data source; the release notes can be an occasional email or in-app note that pulls from the same shipped-this-week list. The point is that one feeds the other. You write down what you shipped once, then decide which of those entries is worth actively announcing.
If you only have energy for one to start, start with the changelog. It's the lower-effort habit, it compounds, and it becomes the raw material for everything else — release notes, build-in-public updates, and even the "what's new" beats in your onboarding flow.
Why the changelog is a retention channel
The quiet killer of early SaaS isn't a competitor. It's the customer who signed up, didn't hear from you for two months, assumed the product was abandoned, and cancelled. A changelog is the cheapest possible defense against that assumption, because every entry is dated proof that the product is alive.
Think about what a prospect or a wavering customer does when they're deciding whether to trust a small SaaS. They look for signs of life. An empty or stale changelog reads as "this founder gave up." A changelog with a fresh entry every week reads as "this is being actively cared for" — without you saying a word. For an indie product where the founder is the trust signal, that's not decoration; it's a core part of the pitch.
The connection to churn is direct. As I covered in churn analysis for non-tech founders, a lot of early churn is passive — people drift away, not because the product failed them but because it faded from their attention. A changelog fights that drift. It gives customers a reason to come back, a place to see that the feature they asked for shipped, and evidence that their subscription is buying ongoing improvement rather than a frozen snapshot.
There's a compounding benefit too. When a customer sees a feature they requested land in the changelog with their fingerprints on it, something shifts — they stop being a user and start being an advocate. That's the payoff for closing the loop publicly: the change wasn't just shipped, it was shipped where they could see it happen. It's the same dynamic behind learning to say no to feature requests — being visible and honest about what you build, and don't build, earns more goodwill than silence ever does.
None of this requires the changelog to be clever. It requires it to be consistent. Which brings us to the two things founders most often get wrong: what to write, and how often.
What to write: the categories that keep it readable
The reason most changelogs are useless is that they're either commit logs in disguise or vague marketing gruel ("various improvements and bug fixes"). The fix is structure. The Keep a Changelog convention groups every entry into one of six types, and adopting them is the single biggest upgrade you can make:
| Category | Use it for | | --- | --- | | Added | New features | | Changed | Changes to existing functionality | | Deprecated | Features that will be removed soon | | Removed | Features now gone | | Fixed | Bug fixes | | Security | Vulnerabilities addressed |
Grouping does two things. It lets a reader jump straight to what they care about — a developer scans Security and Changed, a casual user scans Added — and it forces you to actually think about what each change is, which is where the vague entries die. "Various improvements" is what you write when you haven't sorted your changes into buckets. Once you have the buckets, the entries write themselves.
A few rules from the convention that punch above their weight:
Newest first. The latest version goes at the top. Nobody scrolls to the bottom to find what changed yesterday.
Date every version, in ISO format. Write 2026-08-10, not 08/10/26. The ISO format sorts correctly, reads unambiguously across regions, and is, as Keep a Changelog notes, an international standard for exactly this reason.
Keep an "Unreleased" section at the top. This is the trick that makes the habit sustainable. You jot changes into an Unreleased block as you ship them, and when you cut a version, you rename the block with a version number and date. The note-taking happens continuously; the "writing the changelog" step becomes almost free.
Be consistent, or the changelog lies. Keep a Changelog is blunt about this: "A changelog which only mentions some of the changes can be as dangerous as not having a changelog." If customers learn that some changes never appear, they stop trusting the whole document. The changelog only works if it's the reliable single source of truth.
Here's what a single well-formed version looks like when you put the rules together — grouped, dated, newest-first, and readable at a glance:
## [1.4.0] - 2026-08-10
### Added
- Team accounts: invite teammates and manage their roles.
- CSV export on the reports page.
### Changed
- Search now ranks recent items higher.
### Fixed
- Fixed a case where the billing page showed a stale plan name after an upgrade.
Notice it pairs naturally with version numbers. If you tag releases with semantic versioning — the MAJOR.MINOR.PATCH scheme — the category of your changes signals the bump: a Removed or breaking Changed means a major bump, a new Added feature is a minor bump, and a release that's only Fixed is a patch. You don't have to adopt SemVer to keep a changelog, but the two habits reinforce each other, and stating which one you follow at the top of the file tells readers how to interpret every entry.
One thing to avoid: dumping your git history in. Commit messages are notes to yourself about steps in the code; a changelog entry is a note to a human about a difference that matters to them. Those are different audiences. If a change doesn't affect what a customer can see or do, it probably doesn't belong in the changelog at all.
Cadence: how often to publish
The question I get most is "how often should I post?" The honest answer: pick a rhythm you can actually sustain, and never break it. Consistency is the entire game. A changelog customers can set their watch by builds trust; a sporadic one that goes quiet for six weeks and then dumps a wall of updates does the opposite.
For a solo founder shipping continuously, the practical pattern is to batch. If you deploy several times a week, you don't need a public entry per deploy — that's noise, and it fragments attention. Collect changes in your Unreleased section and publish a grouped update on a regular beat: weekly is a strong default for an active early-stage product, biweekly if your pace is steadier.
The batching rhythm maps cleanly onto the changelog-vs-release-notes split. The changelog can update continuously — you add lines to Unreleased as you ship. The announcement — the release notes email or in-app note — goes out on the batch cadence, bundling the week's or fortnight's shipped work into one thing worth a customer's attention. That way you're never spamming, and you're never silent.
Match the cadence to your actual pace, not an aspirational one. Committing to "a big update every Monday" and missing three Mondays is worse than committing to "a roundup on the first of the month" and hitting it every time. The medium is the message here: a dependable changelog says dependable founder. Set the promise where you can keep it.
Where to publish it so people read it
A changelog nobody sees can't retain anyone, and this is where distribution matters as much as the writing. A single page buried at /changelog that you never link to is a diary, not a channel. The goal is to put the update where customers already are.
The layered approach that works for a small SaaS:
A canonical changelog page. One stable URL that always has the full, current history. This is your system of record and the thing you link back to from everywhere else. It also does quiet SEO work — a regularly updated page of real product changes is exactly the kind of fresh, specific content that helps a SaaS site's search footprint.
In-app notification. The highest-intent place to surface "what's new" is inside the product, where an engaged user will actually see it. A small badge or a dismissible "new since your last visit" note catches people at the moment they're using the thing you just improved.
A periodic email. For bigger releases, the batched release-notes email pulls customers back in. This is a natural companion to your broader lifecycle email — the changelog gives you a steady supply of genuine, non-salesy reasons to land in someone's inbox.
The rule underneath all three: pick your places and keep them current, so customers learn where to look and trust that those spots are maintained. Scattered, unreliable distribution breaks the habit you're trying to build. Better to run two channels consistently than five sporadically.
Whatever you publish, write it in customer language, not developer language. "Fixed a race condition in the webhook handler" is a changelog line; "Payments now confirm instantly, even under heavy load" is what a customer understands. The changelog can carry both registers — terse for the archive, warm for the announcement — but the version a customer sees should always answer "what does this do for me?"
Frequently asked questions
What's the difference between a changelog and release notes?
A changelog is one cumulative, reverse-chronological document covering every version of the product, written to be a reliable record. Release notes are a per-release snapshot, usually warmer and benefit-focused, written to get customers to notice and adopt a specific update. The changelog is the archive; release notes are the announcement drawn from it.
How often should a solo founder update the changelog?
Pick a cadence you can sustain and never miss it. For an active early product, a weekly or biweekly batched update is a strong default — collect changes as you ship and publish them on a dependable rhythm. Consistency matters far more than length; a reliable small update beats an unpredictable big one.
Do I need a dedicated changelog tool?
Not at first. A single changelog page backed by a simple data source, plus an occasional email, covers a solo SaaS completely. Dedicated changelog tools add in-app widgets, subscriber management, and analytics that become worth it once you have real volume and want to measure what customers read — but they're an optimization, not a starting requirement.
Should the changelog be public?
For most indie SaaS, yes. A public changelog is a trust and marketing asset — it shows prospects the product is actively developed and gives customers proof their subscription buys ongoing improvement. Keep genuinely sensitive internal changes out of it, but default to public. The visibility is most of the value.
What should I not put in a changelog?
Skip commit-log noise, internal refactors customers can't see, and vague catch-alls like "various improvements." Every entry should describe a change that affects what a customer can see or do, written in language they understand. If a change has no user-visible effect, it probably doesn't belong in the customer-facing changelog at all.
How do I write changelog entries customers actually understand?
Lead with the outcome, not the mechanism. Translate "fixed a null check in the billing sync" into "subscriptions now update immediately when you change plans." Group entries by type so readers can scan to what they care about, and keep the tone plain. The technical version can live in a developer changelog if you keep one; the customer version answers "what changed for me?"
Wrapping up
The changelog is the rare founder task that's genuinely low-effort and genuinely high-return, which is exactly why it's so easy to neglect. Treat it as a retention channel, not a chore. Keep it curated and human, group entries by type, date every version, and publish on a rhythm customers can rely on. Put it where people already are — a canonical page, an in-app note, a periodic email — and write the customer-facing version in plain language. Do that consistently and a maintenance file quietly becomes one of your best arguments for why someone should keep paying.
I write about the unglamorous operational side of running a SaaS every week on the Coding Capybaras blog — the boilerplate itself is free if you want to see how the whole thing is built, changelog and all.