Plainwork / Catalogue / Mailroom Kit
14 finished SaaS emails, HTML and plain text
Verify, reset, receipt, failed payment, new sign-in and nine more, with a command that builds them from one brand file, fills them with your data and checks them. No npm.
- 14 emails: verify address, magic link, sign-in code, password reset, welcome, team invite, receipt, payment failed, trial ending, subscription canceled, new sign-in alert, email changed, usage limit reached, data export ready
- Each as table-based HTML (Outlook ghost table and VML button, light and dark colour schemes) and a plain-text twin that carries the same links
- The mailroom command: list, build, render, preview, check and test. Zero npm dependencies; Node 18 or newer
- Placeholders in your style: Mustache or Handlebars {{name}}, Go {{.name}} (Outlook comments kept with a one-line raw() helper, tested with real Go) or JS ${name}, all three pre-built
- One brand.json for name, colours (light and dark, checked for contrast), logo and address; 172 tests that pass from a fresh unzip
- Docs: the emails and the sentences to confirm before sending, providers, client notes, deliverability set-up, customising; a licence for client work and a changelog
Open the live demo (four of the 14 emails, each with its text version). Below: the receipt email as a mail client draws it (Chromium, 640 px wide, sample data for a fictional company), then the plain-text version the kit builds with it, then the checker's output on the four demo emails.

Receipt for your payment Hi Sam, thank you. Here is the record of what you paid. Receipt number: N-2026-004821 Date: 14 Oct 2026 Plan: Team plan Period: 14 Oct 2026 to 13 Nov 2026 Amount: $48.00 Tax: $9.60 Total paid: $57.60 Paid with: Visa ending 4242 View or download the invoice: https://example.com/billing/invoices/N-2026-004821 Amounts are shown as charged. Tax is included in the total where your region requires it. -- You received this because a payment was made on your Northfield account. Keep this email for your records. Questions? Write to [email protected]. Northfield Software Ltd, 12 Example Street, Sampletown AB1 2CD, United Kingdom
ok login-code.html 6.3 KB, 1 links, 0 errors, 0 warnings ok new-login-alert.html 8.3 KB, 3 links, 0 errors, 0 warnings ok password-reset.html 6.7 KB, 3 links, 0 errors, 0 warnings ok receipt.html 10.3 KB, 3 links, 0 errors, 0 warnings ...
Largest email in the kit: 10.3 KB of HTML, against the roughly 102 KB point where Gmail is reported to clip. Looked at in Chromium only; not in Outlook, Gmail or Apple Mail.
Made for
Who it's for
Finished, with the awkward states
Each email is written, not just laid out: expired links, a failed card with a retry date, a sign-in from a new device with a way to say it was not you, a trial that does not renew by surprise.
Plain-text twin for every email
Built from the same content, so the links cannot drift apart. The checker fails if a link is in the HTML but not in the text.
Checked, not claimed
Size, alt text, links, contrast, leftover placeholders and text parity are measured by script on every email: 14 emails, 0 errors, 0 warnings, 172 tests.
Safe to fill with real data
Every value is HTML-escaped, URLs must be https, and a missing or empty value stops the send with the variable's name, so nobody gets "Hi ,".
Honest about its limits
Looked at in Chromium; not in Outlook, Gmail or Apple Mail. It cannot guarantee inbox delivery. The page, the README and docs/CLIENTS.md say so before you buy.
What's inside
Everything you get
How it works
From checkout to done
Buy
Buy and download the zip, then unzip it anywhere.
Open
Run node mailroom.mjs preview and open preview/index.html; edit brand.json and run it again.
Use
Run node mailroom.mjs build, upload dist/ to your email provider (or fill the emails yourself with render), then run node mailroom.mjs check.
Questions
Good to know
Does it work in Outlook?
The kit uses the documented Outlook patterns (a ghost table for the card and a VML button) and plain table layout. It has not been looked at in Outlook, Gmail or Apple Mail: there was no access to them. It was checked by script and viewed in Chromium at desktop and phone width, in light and dark. docs/CLIENTS.md lists what to test yourself. Send a test to the clients your customers use.
Does it send the emails?
No. It builds the templates and fills them with your data. You send them through your own provider or SMTP server. docs/PROVIDERS.md shows how to pass the subject, HTML and text to Postmark, Amazon SES, SendGrid, Mailgun, Resend and Nodemailer; those notes were not run against live accounts.
Why not react.email or Cerberus, which are free?
They are good. react.email gives you components to write your own emails in React; Cerberus gives you three layouts. This is the emails themselves already written (with the states people forget), a plain-text version of each, and a checker, in plain HTML with no build step. If you already write emails comfortably in React components, you may not need it.
Will my emails reach the inbox?
The kit cannot promise that. Delivery depends on your sending domain and provider: SPF, DKIM and DMARC set up correctly, and a good sending reputation. docs/DELIVERABILITY.md explains what you must do yourself. The emails are plain and specific, with no tracking pixels, shortened links or scripts.
Can I use it for newsletters and marketing mail?
The layout can be reused, but the kit is written for transactional mail, sent because of something the person did, and adds no unsubscribe link. Marketing email needs one, and the rules of your country apply. No legal advice is given.
Some emails state policies, like data kept for 30 days. Are those real?
They are samples. docs/EMAILS.md lists every sentence that describes how a product behaves; change each to match yours before you send.
What is the licence?
Use it in your own products and in products you build for clients, with no limit on emails sent, and edit anything. You may not resell or publish the kit itself. The checker is also published free under the MIT licence as mailroom-check.
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.
Mailroom Kit
Fourteen transactional emails with plain-text twins and a zero-dependency build, render and check command: Mustache, Go or JS placeholders.
More from the catalogue
Other small tools
Foliokit
Seven print-ready document templates and a zero-dependency PDF command: invoice, quote, receipt, statement, letter, certificate and report.
CI OIDC Atlas
11 CI platforms' OIDC token formats, quoted from vendor pages and live discovery documents, with a tested trust-condition builder.
Incident Letter
AI-written customer incident report from your notes. Nothing invented: missing times and causes are marked blanks.