Publish product updates as a changelog page, a feed and a What's new bell

Write a release note in Markdown, schedule it, and it appears on a public page, in an Atom and a JSON feed, and in a small bell you drop into your app with one script tag. It runs on your own server with the data in one file, so there are no tiers, no seat fees and no entry caps. Read the source or deploy it below.

Try the writer sample data

This runs the same Markdown renderer the server uses, in your browser. Nothing you type is uploaded and the page makes no network requests.

What readers see

Why use this instead of what you do today

TodayCatchChangelog Keeper
Headway, Beamer, LaunchNotes, Canny changelog and similarMonthly fees that climb with tracked users or seats; your release history lives with themUnlimited entries and readers, one JSON file you own, no fee
A Notion or GitHub Releases pageNo in-app widget, no unread badge, no schedulingBell with unread count, scheduled posts, drafts
Nothing (updates only in tweets)Customers never learn what shipped; churn followsOne page and a feed customers and RSS readers can follow

Honest limits: no email sending of its own, no per-user "seen" tracking on the server, no image upload (link to images you host), one admin key rather than per-user logins, and no analytics on who read what.

Run it yourself

git clone https://github.com/Duncan-Haywood/oss-monorepo && cd oss-monorepo/ventures/changelog-keeper
ADMIN_KEY=$(openssl rand -hex 16) PUBLIC_URL=https://changelog.example.com COMPANY_NAME=Acme node server.mjs

# page:    https://changelog.example.com/changelog      (write entries at /admin)
# feeds:   /feed.xml  and  /feed.json
# bell:    <script src="https://changelog.example.com/embed.js" defer></script>

One-click Render deploy and Docker are in the README.

Related tools

Pair with Feedback Board to collect requests, Churn Radar to find at-risk accounts, Testimonial Keeper for proof, and Sign Keeper to get agreements signed.

Questions

Where does the data live?

In one JSON file on the server you deploy in your own account. The author runs nothing in between and never sees your entries or your readers.

Can I schedule a release note?

Yes. Give an entry a future publish date and it stays hidden, in the page, the feeds and the widget, until that moment. Drafts are never public.

Can an entry inject markup into my site?

No. Entries support a small Markdown subset that is escaped first and allows only http(s) links, and the embed renders inside a shadow root using textContent only.

Does it email my users?

Not yet. People subscribe with the Atom or JSON feed, and you can set a webhook to post each new entry to Slack or another chat tool. Sending email needs a provider and consent handling, so it is left out of this version.

Does it track my readers?

No. The bell remembers the newest entry a visitor opened in their own browser's local storage and sends nothing back.