Headway

headwayapp.cocontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

Changelog as a service with an editor, a public page and a notification widget, aimed at teams who want release notes without touching their own site.

Promptfree, for everyone, and the only version there is
Build me a changelog that replaces Headway: what shipped, told to the people using the thing that shipped, without them going looking.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode
- One small widget script for the in-app badge, under 8KB
- Caddy in front

THE DATA MODEL
- entries: id, slug, title, body_md, kind, published_at, created_at, author_id, cover_path, is_major
- kinds: new, improved, fixed. Three, not seven — a taxonomy nobody can apply consistently is noise
- tags: id, name, colour; entry_tags joining table
- readers: id, key_hash, last_seen_entry_id, first_seen, last_seen — who has seen what, without an account
- subscribers: id, email, verified_at, unsubscribed_at, digest_kind
- views: id, entry_id, reader_key_hash, created_at, source — page, widget or email
- reactions: id, entry_id, reader_key_hash, kind — a small set, and one per reader per entry

WRITING
- Markdown, images pasted in, a preview beside the editor
- Draft, scheduled, published. A scheduled entry appears at its time without anybody being awake
- An entry can be marked major, which is the only thing that triggers the widget's badge — otherwise every typo fix nags the whole user base
- Templates for the three sentences you always write

THE PUBLIC PAGE
- Reverse chronological, one entry per block, filterable by kind and tag
- Permalink per entry with its own OG card
- RSS and JSON feeds, both complete rather than truncated
- Fast and readable without JavaScript

THE WIDGET
- A script that renders a badge on a trigger element the host page already has
- The badge counts entries newer than the reader's last seen, and only major ones if the host asks for that
- Clicking opens a panel with the recent entries, rendered from a payload fetched once
- The reader is identified by a hash the host application supplies, or by localStorage when it does not. No cookie
- The panel must not trap focus, must close on Escape, and must be reachable by keyboard
- Fails invisibly: if the changelog is down, the host page shows no badge and nothing else happens

TELLING PEOPLE
- Email subscription with double opt-in, per kind: everything, or major only
- A digest option — weekly, monthly — so somebody can hear about it without a message per release
- Every email carries the entries in full, not a teaser and a link
- One-click unsubscribe that works without logging in

WHAT THE TEAM SEES
- Views per entry, split by page, widget and email
- Reactions per entry
- Reader reach: how many distinct readers saw an entry within a week of publication
- The entries nobody read, which is usually a titling problem

INTEGRATIONS THAT ARE NOT A PLATFORM
- A webhook out on publish, so Slack or Discord get it without this project knowing what those are
- An API to create an entry, so it can be published from a release script
- Import from a Markdown folder, because most teams already have CHANGELOG.md

THE INTERFACE
- Writer: list, editor, schedule. Nothing else
- Public: one column, generous type, dates on the left on desktop
- Dark and light, one accent

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SMTP_URL, WIDGET_ORIGINS, HASH_SALT
- Migrations on boot, each once
- The widget payload endpoint is cached with an ETag and served from memory
- Nightly backup off the machine plus restore
- Health endpoint

WHAT MATTERS MOST
The widget and the major-only rule are the product. Build the entry model, the public page and the badge first, and put the badge on a real application — then ship five entries in a week and see whether the badge is useful or irritating. That answer decides the defaults.

Give me the repository, the widget script, migrations, .env.example, a seed with ten entries, and a README with deploy steps behind Caddy.

What you lose

  • A web editor so marketing can publish a release note without a pull request
  • A hosted page, a widget and analytics on who read what
  • Scheduled publishing, so a note goes out with the release rather than before it

If you would rather not build

  • A static changelog in your repository
  • Changefeed, for the hosted version
  • GitHub releases with a feed

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$29/mo——

Their pricing page is where these came from. Seeing a different price? Tell us.

The escape hatch

open source · no votes, no paid placement

Astro

$0

Content collections plus a Node adapter cover both the page and the admin.

withastro/astrofree · open source

Ghost

$0

Overkill for a changelog, but gives a non-developer an editor immediately.

TryGhost/Ghostfree · open source

Why this verdict

our own opinion · changed only by a person

90/100

Verdict yes at 90. The one design decision is scheduled publishing by cron rather than by a person; everything else is a list and a feed.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 1/day
views0130 Aug4 Sept9 Sept14 Sept19 Sept24 Sept28 Sept
— views— prompt copies none yet— votes none yet

Questions about Headway

answered from the record above

Is Headway free?

No — the plan we track is $29 a month. Around $29/month billed monthly for the standard plan with a custom domain.

Can you replace Headway by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 90 out of 100, build time one session. Read what you lose before you decide.

How much does Headway cost?

$29 a month on Standard — $348 a year. Recorded 10 Aug 2026.

What do you lose by replacing Headway?

A web editor so marketing can publish a release note without a pull request; A hosted page, a widget and analytics on who read what; Scheduled publishing, so a note goes out with the release rather than before it. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Headway?

Yes: Astro, Ghost. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 56 in Dev tools

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc