How to Write Compelling Release Announcements

2025-06-2514:226848refactoringenglish.com

Effective writing for software developers

A release announcement showcases how the user’s experience is better today than it was yesterday. That sounds obvious, but most release announcements seem to forget that there’s a user at all.

So many release announcements just enumerate new features in a way that’s totallly divorced from how real people use the software. The announcement is essentially just a changelog with better writing.

For example, here’s a “changelog” style of announcing a new feature:

  • Added “duplicate” button to the event menu.

Don’t just tell the user that there’s a new button. Tell the user what they can do with that button.

When you create a new event, chances are that the first thing you do is copy/paste information from an existing event. Creating events this way is tedious and slow, so we’re sparing you this toil with the new Duplicate feature.

When you need to create a new event based on an existing event, go to the existing event, and select Options > Duplicate. Duplicating events is 10 times faster than copy/pasting fields.

Note that the example doesn’t boast about what the software can do. It tells the user what they can do with the software. It speaks directly to the user, describing what happens when “you” create events.

The second screenshot draws the reader’s focus more clearly by using a tighter crop and adding an arrow indicator to identify the relevant part of the UI.

Keep animated demos short and sweet🔗

Good news: modern browsers support media formats for playing high-quality screen recordings. We’re long past the days of washed-out, pixellated GIFs and clunky YouTube embeds.

  • Animated images: WebP and AVIF image formats can show GIF-like animated images, and they enjoy wide browser support.
  • Embedded videos: H.264 and WebM-encoded videos play natively in the browser with a simple <video> tag. No third-party client library required.

Aim to keep demos under five seconds. 15 seconds should be the maximum. This is both for the sake of respecting the reader’s time and your server’s bandwidth. Nobody wants to sit through a two-minute video about a dialog box.

Plan your release announcement during development🔗

At my last company, I was in charge of both release planning and release announcements.

I once dedicated an entire release to overhauling our product’s self-update feature. The update code was so messy that it took five months to replace it, twice the turnaround of our typical release.

When I finally wrote the release announcement, I realized I’d screwed up: nothing in the release benefitted our users. Sure, future releases would be faster and less error-prone, but the user’s experience today was no better than it was yesterday.

I awkwardly tried to explain to our users why we made them wait five months for a release that essentially did nothing for them. I promised that they’d benefit from these changes soon, as the new update system would accelerate development (and it did), but I was embarrassed that the release primarily made life better for our developers rather than for our users.

From then on, I always considered the release announcement early in release planning. Given the tasks I planned for a sprint, I identified the ones that would be exciting and valuable enough to the user to include in the release announcement. By planning the announcement early, I thankfully avoided ever writing another uncomfortable explanation of a release that offers nothing to the user.

Real-world examples of compelling release announcements🔗

Gleam JavaScript gets 30% faster🔗

The release announcement for Gleam 1.11 puts the flagship feature right in the title: a 30% performance improvement. The title makes it crystal clear that the announcement focuses on what the user cares about.

The Gleam release announcement describes every feature in terms of how it makes life easier for their users. They never bore the reader with a dry list of changes. The announcement accompanies every change with code snippets showing how each change in the language and toolset has made life better for Gleam developers.

Figma is a design tool that earned a strong reputation for its relentless focus on user experience. This same focus is evident in their release announcements.

Figma’s UI3 release announcement presents each feature in terms of the user’s experience. Rather than saying, “This button is now here, and we added this dialog,” they tell the user “You can now do X to achieve Y.” They don’t just explain what changed; the showcase how the change benefits the user.

My only criticism is that Figma’s release announcement bizarrely uses 8 MB GIFs (yes, multiple) to show 5-second demo animations.

  • Highlight new features and changes that excite the user.
    • The exhaustive accounting of every change belongs in the release notes, not the release announcement.
  • Describe changes in terms of what improved rather than what is no longer bad.
  • Leave out vague descriptions like “various improvements and bugfixes.”
  • Use screenshots that make the new feature obvious even if the reader doesn’t zoom in or read the surrounding text.
  • Include animated demos, but keep them under 15 seconds.

“Chez Développeuse” illustration by Piotr Letachowicz.


Read the original article

Comments

  • By lapcat 2025-06-2516:514 reply

    > In contrast to release notes, which aim to be exhaustive, release announcements include only the most impactful changes.

    No, don't do this. Provide release notes, not release "announcements". Exhaustive is good; exhaustive is helpful to the reader. Let them know their "little" bug is fixed. Or maybe if you accidentally introduced a new bug with your change, or affected the user's workflow in some way, the reader can figure that out too.

    The entire blog post is about how to corrupt release notes with marketing.

    You don't have to sell your software to someone who is already using it. That's just annoying.

    As an indie developer, my users say that they appreciate my exhaustive release notes.

    I remember back when I worked for someone else, my boss always changed "fixed a crash" to "fixed a rare crash" in the release notes (whether or not that was accurate) LOL. Keep management and marketing away from the release notes if possible.

    • By mtlynch 2025-06-2517:082 reply

      Thanks for reading, Jeff!

      >> In contrast to release notes, which aim to be exhaustive, release announcements include only the most impactful changes.

      >No, don't do this. Provide release notes, not release "announcements". Exhaustive is good; exhaustive is helpful to the reader. Let them know their "little" bug is fixed. Or maybe if you accidentally introduced a new bug with your change, or affected the user's workflow in some way, the reader can figure that out too.

      They're not mutually exclusive. You can publish both release notes and a release announcement.

      >You don't have to sell your software to someone who is already using it. That's just annoying.

      I really disagree. I'm guessing you mean "sell" as in "manipulate" but I see it as "get users excited."

      Of the software products I use and pay for, I appreciate it so much more when the vendor takes time to write a release announcement with care and focus on user needs. When I receive release announcements from Tailscale or Fly.io, I don't think, "Oh, boy, they're just trying to sell me something." I think it's cool that they're putting in the effort to showcase their work.

      When vendors just publish a terse changelog, it feels like they don't care much about me and couldn't be bothered to present their work to me in a more accessible way.

      • By saxelsen 2025-06-2621:55

        The company I work at is at a sufficient size that we publish changes internally to other teams.

        We have the concept of Release Announcements that are a quick attention grabber headline, followed on by Tasting Notes that explain in detail what changed and additional release notes.

        That way the people who just want to understand the primary changes and those who want the details are happy.

      • By lapcat 2025-06-2517:201 reply

        > They're not mutually exclusive. You can publish both release notes and a release announcement.

        Where, though? Consider the App Store, for example. You can have releases notes or a release announcement in the App Store along with a new version of your app, but not both.

        The way you present it, with "good" vs. "bad", suggests that you're arguing for one, not for both, for release announcements instead of release notes.

        > I'm guessing you mean "sell" as in "manipulate" but I see it as "get users excited."

        But users don't need to get excited by every software update. That sounds like your need to get users excited about updates.

        > When vendors just publish a terse changelog, it feels like they don't care much about me

        That depends on what you mean by terse. "Bug fixes and performance improvements" is terse and careless. A comprehensive list of changes is not necessarily terse. And in a sense, "release announcements include only the most impactful changes" is terse too.

        • By mtlynch 2025-06-2521:141 reply

          > The way you present it, with "good" vs. "bad", suggests that you're arguing for one, not for both, for release announcements instead of release notes.

          I don't think release notes are bad, but I think adopting a release notes style for a release announcement is bad. Similarly, I think adopting a commit message style in release notes is bad.

          I'll look for ways to clarify this in the article.

          >> When vendors just publish a terse changelog, it feels like they don't care much about me

          >That depends on what you mean by terse. "Bug fixes and performance improvements" is terse and careless. A comprehensive list of changes is not necessarily terse. And in a sense, "release announcements include only the most impactful changes" is terse too.

          When I say "terse" I mean that they describe each individual change tersely. KeePass is an example of a vendor I think publishes release announcements with terse change rundowns, and I think the announcements suffer because of it.[0, 1] When minor changes get the same screen real estate as big new features, it's hard for the reader to recognize the important features because the signal to noise is too high.

          Out of curiosity, what's your opinion of KeePass release announcements?

          [0] https://keepass.info/news/n250304_2.58.html

          [1] https://keepass.info/news/n240601_2.57.html

          • By lapcat 2025-06-2523:151 reply

            KeePass is a free open source project.

            • By mtlynch 2025-06-2523:351 reply

              >KeePass is a free open source project.

              Can you state your point more explicitly? That fact seems unrelated to my question.

              • By lapcat 2025-06-260:02

                My point is that I would give them a break.

                And if the purpose of your blog post were to lecture free open projects, that would make it even worse, indeed repulsive, frankly.

    • By bravesoul2 2025-06-2517:14

      Why not both? I think there are 2 purposes here. One is advertising for sure, and also light entertaining reading for interested users who want to keep up. The other is what power users will read through for their favourite change.

    • By cthor 2025-06-2517:051 reply

      Stopped reading at the graphic. None of those descriptions for dishes sound anything like what a developer would write. Just pure obscurantist nonsense. "Cow secretions" to refer to cheese? Really? Even though that's more ambiguous, wordier, less helpful, and less descriptive? The author tells on their own shoddy writing skills. A developer might be guilty of writing "Pizza - goat's milk mozarella, wood fire oven" instead of "Cheese pizza" but certainly not that nonsense.

    • By lovich 2025-06-2517:30

      I still remember the time I got paged during thanksgiving for a platform wide outage and debugged the issue down to a python library that had been updated a few hours before with the patch notes saying “Nothing Significant”

      I concur, please put all changes in release notes

  • By deanebarker 2025-06-2514:554 reply

    Actually, I don't love this. To me, the examples in red are much more helpful -- they explain, in bare terms, what was actually done. The examples in green feel like a marketing exercise to me. Like they're trying to wrap or obscure clear writing in something to obfuscate it.

    "Added 'duplicate' button to the event menu" is kind of exactly what I want to read.

    I don't know -- maybe have both kinds? A simple, bare-bones set, and then an... "embellished" set?

    • By pimlottc 2025-06-2516:132 reply

      I think there's a middle ground here that would be best. The "bad" example tells you exactly what changed, but not why you might care. The "good" example attempts to give lots of context but takes a while to tell you what actually changed.

      Just a small title change would help a lot: "Create events 10x faster with new Duplicate button"

      • By rao-v 2025-06-2516:46

        Just to add a nit to this, “10x faster” is noise and fluff. Save it for when you actually have a real measured metric that someone might care about. Notice also 10x faster generic event creation is not what the value is! Rather say “Make multiple similar events faster with the new Duplicate button”

      • By mtlynch 2025-06-2516:22

        >Just a small title change would help a lot: "Create events 10x faster with new Duplicate button"

        Thanks, that's a great suggestion! I've just updated the example.

    • By mtlynch 2025-06-2515:161 reply

      Author here.

      Thanks for reading!

      >To me, the examples in red are much more helpful -- they explain, in bare terms, what was actually done. The examples in green feel like a marketing exercise to me. Like they're trying to wrap or obscure clear writing in something to obfuscate it.

      Oh, interesting. That surprises me. I think there are some cases where I want the short version (e.g., if I'm just looking for breaking changes or fixes to minor annoyances), but I generally think the release announcement does a better job at showcasing features.

      Out of curiosity, do you find the example changelog-style announcement[0] more useful than the Figma's example release announcement[1]?

      >I don't know -- maybe have both kinds?

      Yes, absolutely. They're not mutually exclusive.

      Whenever I've published a release announcement, I also link to a changelog, which is the bullet point list of changes. I think the changelog should also be more user-oriented than most currently are, but I think the changelog is the right place for an exhaustive list of anything that users might want to know about the new version.

      [0] https://refactoringenglish.com/chapters/release-announcement...

      [1] https://help.figma.com/hc/en-us/articles/23954856027159-Navi...

      • By Milpotel 2025-06-2515:232 reply

        > but I generally think the release announcement does a better job at showcasing features.

        I'm all in skimming some bullet points on release notes but reading whole paragraphs for trivial announcements (like "Create events 10x faster") is an absolute no-go and wasted developer time in most cases.

        • By JimDabell 2025-06-2515:30

          When I read that, I feel like I am being sold to and I need to decode it to find out what the actual change is.

          I’m generally in agreement that you should write release announcements in terms that relate to what the end-user is trying to accomplish and not just a mechanical diff, but this goes approximately 100% too far.

        • By mtlynch 2025-06-2515:301 reply

          I notice that you said "wasted developer time" rather than "user time" so maybe this is the difference?

          I think too many developers write about their software as if the readers are other developers, especially developers with high context into the software. But for most software, the users are not developers, and they generally have much less context than the developers working on it.

          I can understand how "Add a duplicate event button" is sufficient if I'm communicating with another developer on an open-source project, but I think the typical end-user requires more explanation of why that button is useful and what they can do with it.

          • By tempodox 2025-06-2517:09

            You don't have to ramp up marketing to 11 to write release notes that users can understand. Those are users of software that they already have and use. They will know what the changes mean for them.

    • By lars_francke 2025-06-2515:491 reply

      Agreed. And for me that has nothing to do with announcement vs. notes.

      "We sped up new file creation, so you can now create a new file in under 20ms, a 100x speedup from v1.2."

      No. You had a big bug. You fixed it. Excellent. When I'm affected by the bug I'd search for "deadlock" or "bug " in the announcement and this is hiding it behind marketing speak. I don't think that's honest. So for me the perfect announcements would be the red ones.

      • By mtlynch 2025-06-2516:091 reply

        Thanks for reading!

        >"We sped up new file creation, so you can now create a new file in under 20ms, a 100x speedup from v1.2."

        >No. You had a big bug. You fixed it. Excellent. When I'm affected by the bug I'd search for "deadlock" or "bug " in the announcement and this is hiding it behind marketing speak. I don't think that's honest. So for me the perfect announcements would be the red ones.

        I'm confused about how you'd know to search for those terms unless you were part of the dev team of that product.

        A hang in the UI could just be the backend doing work in a way that's not optimized for UX. It's not necessarily a deadlock or a bug. Those are implementation details. It's not something a typical end-user can perceive just by using the software.

        • By sjsdaiuasgdia 2025-06-2516:38

          While you have a point for "deadlock", I'd say "bug" as a generic term for a software fault is fairly pervasive outside of the tech industry.

          That said, there's an even better word IMO: "fix"

          The wording you used for the new file speed-up feels like you're talking about a feature. The way it is worded you can technically read as a fix or a feature, but the way it's expressed feels like something greater than a bug fix occurred. As an end user, I would be wondering if I was going to experience a completely different flow to create a new file because that whole part of the software has been redone or something.

          If it were up to me to write that entry on a release announcement, I'd probably say something like: "We fixed an issue that could cause a long delay when creating a new file."

          Which is pretty close to your boring/dev-focused version, mostly dropping a few technical terms like "deadlock" and "UI". Calling it a fix makes it clear this isn't new functionality. If I am a user who has been tripping over this bug a lot, I'll recognize the description of the impact because it aligns to my experience of the product.

          I don't need to come up with a contrived metric like "100x speedup". Is that even accurate for the situation being described, outside of edge cases? The boring version:

          "Fixed a thread deadlock that froze the UI for up to two second when creating a new file."

          From that, I take the implication that the problem does not necessarily happen every time a new file is created, and when it does, it does not necessarily take the full 2 seconds. That's being described as the worst-case scenario. For the average end user, are they going to actually experience a 100x speedup? Or are they going to create a new file and notice effectively nothing different, and wonder what the hell you're talking about?

    • By strken 2025-06-2515:10

      They note that you should have both release notes and a release announcement.

      I think a release announcement is targeted at the same people who go to the marketing page for a product instead of the pricing and the docs.

  • By ednite 2025-06-2515:191 reply

    Your article is well done with great advice. I definitely agree that we should focus on how changes benefit the user, not just what was built.

    One positive criticism: in my case (with a small user base of aprx 100), I feel it leans a bit too much into marketing. My users often want to know that a specific bug has been fixed. Release notes aren’t just about excitement, they’re also about trust and value.

    Saying “Saving large files is now 10x faster” is great, but if users were dealing with crashes or freezes, it’s more helpful, and more direct, to combine your idea of clarity with the actual user experience:

    “Saving large files is now 10x faster, no more freezes for files over 100MB.”

    Being transparent about what was broken and now fixed is important.

    Also, not sure if the article is focusing strictly on public-facing release announcements. I find it helpful to maintain a more detailed, separate internal changelog for future reference. That includes technical fixes, implementation notes, and lower-level changes that aren't relevant to users but are valuable to me.

    That said, I mostly agree with your approach, and I think your method works really well for major or long-awaited feature releases.

    Overall it's a good article and please take any of my feedback with a grain of salt, as my experience is mostly limited to a small user base and not large-scale or widely publicized launches.

    Thanks for sharing!

    • By mtlynch 2025-06-2515:35

      Thanks for reading!

      >Saying “Saving large files is now 10x faster” is great, but if users were dealing with crashes or freezes, it’s more helpful, and more direct, to combine your idea of clarity with the actual user experience:

      That's great feedback. I'd like to come up with a better example here.

      I've noticed that when developers improve user experience, they tend to focus on what was bad rather than how it's now better, but I agree that the example is a bit confusing. If the fix is about a bug in a specific scenario, you do lose something in the announcement by not explaining how you fixed that particular bug.

HackerNews