Skip to content

Everything between a URL you found and a page people read.

The engine has been running a real newspaper for years. What follows is what it does, in the order you would meet it.

Most of the work of an aggregator is the part where the feed does not exist.

Getting sources in

Autodiscovery first

Paste a URL and we look for RSS, Atom and JSON Feed, then try the common paths, then detect the platform. WordPress, Ghost, Substack, Craft, Umbraco and others have known patterns and we use them.

Shortcuts for the obvious ones

YouTube channels, subreddits, GitHub releases, Mastodon, Bluesky and Google News topics all resolve straight to a feed without you thinking about it.

A scraper builder for the rest

If there is genuinely no feed, point and click the headline on the page. We work out a selector that survives the site being redesigned, show you what it extracts, and save it as a recipe.

Recipes that repair themselves

When a site redesigns and a scraper stops returning items, we notice, read the new page, propose a fix, and check it against what the feed used to produce before applying it.

Pages with no dates

Some sites publish no timestamps at all. We record the state on the first run and treat anything new after that as new, so the page still orders correctly.

A page is a collection of feeds. A template is the skin it wears. Keeping them separate is what makes both reusable.

Pages and templates

Unlimited private pages

One page per subject, per competitor, per client. Put the same feed on as many as it belongs on. It stays one subscription and one fetch.

Four templates, properly designed

Broadsheet for a publication, River for a dense start page, Board for a noticeboard, Monitor for a watchlist. Each is responsive, dark-mode aware and accessible.

Edit the Twig if you want to

Templates are real templates. Edit them, keep a draft while the live page carries on serving, publish when you are ready, and roll back in one click.

Public, unlisted or private

Per page. A public page is indexed and cached at the edge. A private one needs a login and is never cached.

Filters that actually filter

Include or exclude by keyword, source, category, language or pattern, and set them differently for the same feed on different pages.

Let readers suggest feeds

Optional, off by default. Readers can propose a feed and a title, which lands in a queue for you to accept or reject. Nothing is crawled or published until you say so.

A front page that is stale is just a bookmark folder.

Live, and fast

Real-time push

When something arrives, it appears. No refresh, and no content jumping under your cursor: new items announce themselves and wait to be shown.

Cached at the edge

Public pages are served from Cloudflare, not from one box, and the cache is purged the moment a page changes.

Fetched politely

One shared crawl budget per target site across every customer, robots.txt honoured, and Retry-After respected. A hundred people following the same site does not become a hundred times the traffic.

Summarised once, for everyone. That is what makes it affordable.

Understanding what arrived

Summaries in plain words

A short summary under each headline, written by us rather than lifted from the article.

The same story, collapsed

When five sources cover one story, they become one entry with five source chips rather than five near-identical headlines.

Sorted by what matters

Categorisation, entity extraction and importance ranking decide what deserves the top of the page.

Translation

Follow a source in a language you do not read, and read it in one you do.

The page is the point, but it is not the only output.

Getting it back out

Your own domain

Point a domain at us and we handle the certificate. Your readers never see our infrastructure.

RSS, Atom and JSON Feed

Every page emits a feed, which quietly makes this a feed transformer: merge many, filter, republish as one.

Email digests

Daily or weekly, per page, to you or to a list.

An embeddable widget

One small script that drops a page into a site you already have.

Webhooks, Slack and Discord

A new item matching a filter can post itself wherever your team already is.

A read API

Proper OAuth, so scripts, menu-bar apps and Raycast can all read your pages.

The headline and the link. Never the article.

What we store

We keep the title, the link, the timestamp and the source name. We do not keep a paragraph of anybody's writing, not even a short one, and not even when their feed offers it.

A headline and a URL is exactly what a feed is published to distribute. The summary underneath is written by us, so there is no passage of anyone else's text anywhere in the system.

Every item links out and names its source. Your readers end up on the publisher's site, which is the arrangement that keeps everybody willing to be aggregated.

Start with one URL and see.

Build my page