Plainwork / Catalogue / Release Notes Kit
Release notes for users, developers and your team
Write each release once as a Markdown file. The kit builds a static site with a history page per audience, a page per release and Atom and JSON feeds, and stops on any typo.
- build.mjs: check, build and new commands (Node 18+, no npm install, about 1,000 lines of readable JavaScript)
- A strict Markdown release format with audience sections and change types; errors name the file and line
- A history page per audience, a page per release, 404, sitemap, and Atom 1.0 and JSON Feed 1.1 for every audience
- latest.json and a 2 KB optional script that shows a "New in 2.1.0" link inside your own product
- Two sample projects (a SaaS app with three audiences, a command-line tool with two), three colour themes with light and dark
- tools/test.mjs: 36 tests you can run (formats, feeds, edge cases, contrast), plus a GitHub Action example, writing guide and docs
This is releases/1.3.0.md from the Lantern sample (a made-up product), cut after the Developers section. The build turns it into a page for each audience, a page for the release, and entries in each audience's Atom and JSON feed.
---
version: 1.3.0
date: 2026-04-28
title: Export and import
summary: Take your boards with you as a CSV or JSON file, and import from a CSV.
---
## Users
### Added
- Export a board as CSV or JSON from the board menu.
- Import cards from a CSV file. A preview shows what will be created before anything is saved.
### Security
- Sessions now end after 30 days without use.
## Developers
### Added
- `POST /v1/boards/{id}/import` accepts CSV up to 5 MB.
### Deprecated
- `GET /v1/cards?board=` is deprecated. Use `GET /v1/boards/{id}/cards`. The old route will be removed in 2.0.0.
...What each reader sees, taken from the built pages:
- Users (users/index.html): Added: Export a board as CSV or JSON from the board menu. / Import cards from a CSV file. A preview shows what will be created before anything is saved.
Security: Sessions now end after 30 days without use. - Developers (developers/index.html): Added: POST /v1/boards/{id}/import accepts CSV up to 5 MB.
Deprecated: GET /v1/cards?board= is deprecated. Use GET /v1/boards/{id}/cards. The old route will be removed in 2.0.0. - Team (team/index.html): Export and import answer the top two "can I leave or move?" sales questions. Link prospects to the new help page.
The live demo shows four of the twelve sample releases built this way, with feeds.
Made for
Who it's for
One file, the right words for each reader
Each release has sections for the readers you choose. The writing guide shows the same change in the words a user, a developer and a manager need, and the checker warns about developer wording in customer notes.
Strict instead of forgiving
Unknown headings, an unindented bullet continuation, an unclosed code block, a bad date or a file name that does not match its version are errors with a line number, and the build stops. Nothing you typed is dropped silently. A leftover TODO is an error too.
Feeds that parse
Every audience gets an Atom 1.0 and a JSON Feed 1.1 with stable ids. The tests read them back and check required elements, ids and dates, and an independent feed parser (Python feedparser) read the sample Atom feeds without errors.
Plain output you own
Static HTML and 5 KB of CSS. The built pages contain no script, load nothing from other sites and set no cookies. Contrast is measured for every colour pair in light and dark, and the sample ran clean through axe-core in Chromium at phone and desktop width.
What's inside
Everything you get
How it works
From checkout to done
Buy
Download the zip and unzip it
Open
Run node build.mjs build to see the sample site, then edit site.json and releases/
Use
Upload the dist folder to any static host
Questions
Good to know
Do I need Node on my web host?
No. You need Node 18 or newer on the computer where you run the build, and nothing to install with npm. The result is plain files that any static host can serve.
Does it write the notes from my git commits or pull requests?
No, on purpose. You write each release by hand, which is where the plain wording for users comes from. If you want a first draft from commits, a tool such as git-cliff can produce one to paste in. The kit does not send email or Slack messages either; readers subscribe to the feeds.
What Markdown can I use?
A small subset: bullets, paragraphs, code blocks, and inline code, bold, italic and links. Images, nested and numbered lists, quotes and rules are errors that name the line, so they cannot vanish from the page. Tables and raw HTML (including comments) are not rendered: they are shown as plain text and the check warns about them. FORMAT.txt lists every rule.
How was it tested, and what was not?
The kit's own 36 tests pass on Node 22, and the sample pages were run through axe-core in Chromium at 375 and 1280 pixels in light and dark. I did not test Node 18, Windows, Safari, Firefox, screen readers, or specific feed readers. The GitHub Action in DEPLOY.txt is an example that was not run against a live repository.
Can I use it for client work or several products?
Yes. The licence lets you publish release notes for products and projects you own, run or maintain, including for clients and employers. You may not resell or redistribute the kit itself.
How do I get the files?
After payment you are sent straight to a download page for release-notes-kit-v1.0.1.zip. Refunds and support are covered by the policies linked in the footer.
What if it doesn't work for me?
If it doesn't work as described or you can't access it, email us within 14 days and we'll fix it or refund you. See the refund policy for details.
Release Notes Kit
Zero-dependency Node and plain HTML/CSS kit: one Markdown file per release, a page and feeds for each reader.
More from the catalogue
Other small tools
CV Sheets
6 single-file HTML CV templates, A4 and Letter, one column, no JavaScript. Print straight to PDF.
Price Teardown
Competitor pricing and packaging teardown from live public pages, delivered in 24 hours. Sourced, dated, honest about unknowns.
Hillband
Free printable pace band; $5 pass turns any GPX course into hill-adjusted splits, computed in your browser.