Curated

curated.cocontributed by Samuele Ongaro

YES

Replaceable in one session with an AI coding agent.

A tool for link-roundup newsletters: you collect links as you find them, write a line about each, and it assembles the issue and sends it.

Promptfree, for everyone, and the only version there is
Build me a link-roundup newsletter tool that replaces Curated: file a link the moment I see it, and let the issue assemble itself.

STACK
- Node 20+ with Fastify, server-rendered HTML
- SQLite through better-sqlite3, WAL mode
- SMTP for sending, through a provider set in .env
- Caddy in front

THE DATA MODEL
- links: id, url, canonical_url, title, description, author, site_name, image_path, note_md, category_id, status, source, added_at, used_in_issue_id
- categories: id, name, position, blurb — the sections an issue is built from
- issues: id, number, subject, preheader, intro_md, outro_md, status, scheduled_for, sent_at, web_slug
- issue_items: id, issue_id, link_id, category_id, position, note_override
- subscribers: id, email, token, confirmed_at, unsubscribed_at, source, ip_hash, created_at
- deliveries: id, issue_id, subscriber_id, sent_at, bounced_at, opened_at, complained_at
- clicks: id, issue_id, link_id, subscriber_id, created_at
- Every issue keeps the note as it was sent. Editing a link later must never change an issue already delivered

FILING A LINK, WHICH IS THE HABIT BEING SOLD
- A bookmarklet: one click on any page files it, with the title and description already filled from the page
- An inbox address: forward an email or send a URL and it appears in the queue
- A paste box that accepts a list of URLs at once
- Every capture fetches the page once, politely, and stores the title, description, author, site name and preview image locally — never hotlinking somebody else's image into my newsletter
- Duplicate detection on the canonical URL, and a warning if the link went out in an earlier issue, with the issue number

BUILDING AN ISSUE
- The queue on one side, the issue on the other, drag to place, sections in order
- Write a line about each link — that line is the product, so the editor is a plain textarea with Markdown and nothing that gets in the way
- Reorder, move between sections, drop back to the queue
- A preview that matches what will be sent, at phone width and at desktop width
- The subject and preheader written together, with the character counts that actually get truncated shown beside them

SENDING
- HTML built with tables and inline styles, because that is what mail clients render, and a plain-text alternative generated from the same source rather than written twice
- A test send to me first, always, and the interface refuses to send an issue that has not had one
- Batched sending with a rate the provider will accept, resumable, and idempotent per subscriber so a crash halfway never doubles up
- Bounces and complaints consumed from the provider's webhook and acted on: a hard bounce unsubscribes, a complaint unsubscribes and is never mailed again

THE LIST
- Double opt-in, a signup form and an embeddable one, a honeypot, a stored consent sentence with its timestamp
- One-click unsubscribe that needs no login, plus the List-Unsubscribe headers that mail clients use
- Import and export as CSV, complete, with the opt-in dates intact
- Segments by signup date and by engagement, no more

THE ARCHIVE
- Every sent issue on a public page at its own permanent URL, with the same content
- An RSS feed of issues, and one of links if I want it
- Open Graph tags and a generated preview image per issue
- Sitemap and canonical URLs

MEASURING
- Opens, clicks per link, unsubscribes per issue, list growth over time
- Open rate labelled as unreliable, because privacy proxies pre-fetch images
- Click tracking through my own redirect, on by default, switchable off per issue
- No third-party analytics anywhere

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, SMTP_URL, FROM_ADDRESS, INBOUND_SECRET, SESSION_SECRET, HASH_SALT
- Migrations on boot, each once
- SPF, DKIM and DMARC documented in the README; a newsletter that lands in spam is not a newsletter
- Nightly backup off the machine, restore script
- Health endpoint that checks the SMTP connection

WHAT MATTERS MOST
The bookmarklet and the duplicate check. Build capture first and use it for a fortnight before writing the send path — if filing a link is not a one-click habit, the issue never gets written and the rest of the tool is furniture.

Give me the repository, the bookmarklet, migrations, .env.example, a seed with two issues and forty links, and a README with deploy steps behind Caddy and the DNS records to set.

What you lose

  • A bookmarklet and inbox address that let you file a link the moment you see it, which is the habit the product is really selling
  • Issue assembly with categories, reordering and a preview that matches the sent mail
  • A hosted web archive of every issue with its own search

If you would rather not build

  • Buttondown, which handles the sending half
  • A Markdown file and a send script, which is genuinely enough

What it costs

as published on their pricing page

PlanBilled monthlyBilled yearlyLast read
—$25/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

Listmonk

$0

Handles the list and the sending; you write the issue builder.

knadh/listmonkfree · open source

Linkding

$0

Self-hosted bookmarking — the collecting half, with a bookmarklet.

sissbruecker/linkdingfree · open source

Why this verdict

our own opinion · changed only by a person

84/100

Verdict yes at 84. A roundup is a list with comments; the only interesting decision is capturing link metadata at save time so the issue survives a dead URL.

History

tracked since 10 Aug 2026 · nothing is ever overwritten

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

Questions about Curated

answered from the record above

Is Curated free?

No — the plan we track is $25 a month. From around $25/month billed monthly at small list sizes, rising with subscribers.

Can you replace Curated by building your own?

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

How much does Curated cost?

$25 a month on Starter — $300 a year. Recorded 9 Aug 2026.

What do you lose by replacing Curated?

A bookmarklet and inbox address that let you file a link the moment you see it, which is the habit the product is really selling; Issue assembly with categories, reordering and a preview that matches the sent mail; A hosted web archive of every issue with its own search. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Curated?

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

Related entries

same category first, most replaced first

All 33 in Email & newsletters

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