RSS Feed
The RSS feed makes any RSS or Atom feed searchable. Give us the feed’s URL — a blog, a news site, a podcast, a changelog, a releases page, a job board — and every item becomes a searchable record that stays in step with the source: new items appear on the next sync, with no export, no upload, and no code.
There is nothing to authenticate: RSS and Atom are public, open formats, so the only thing you supply is the URL. This page covers what’s specific to the RSS feed: how to connect one, the fields each item becomes, and how new items are picked up. For how feeds work in general — syncing, binding a list, deleting — see the Feeds reference.
Connect a feed
- Go to Feeds (under Sources in the sidebar), click Connect feed and choose RSS / Atom.
- Give the feed a name and paste the feed URL — the address of the RSS or Atom feed itself (often ending in
/feed,/rssor.xml), not the site’s home page. Choose which media store the synced file should live in (your built-in store by default). - Click Connect. We fetch the feed there and then, so a wrong URL, a page that isn’t a feed, or a feed with no items is caught immediately rather than failing quietly later — and the first sync starts right away.
From here the feed keeps feeds/<name>.ndjson up to date in your media store; point a list at that file with keep-in-sync switched on and the items are searchable — the Feeds page walks through that step.
What ends up in each record
Each item (RSS) or entry (Atom) becomes one record, mapped from the feed’s standard fields — there is nothing to configure:
| Record field | From | Role |
|---|---|---|
| name | the item’s title | the record’s display name |
description | content / content:encoded, else description / summary (HTML stripped to readable text) | searchable & embedded |
url | the item’s link | resource (the page to open) |
published_at | pubDate / updated, normalised to ISO-8601 UTC | facet (filter & sort by date) |
categories | the item’s category tags, comma-joined | searchable |
author | author / dc:creator | facet |
source_title | the feed’s own title | facet (filter by source in a multi-feed group) |
The item’s guid (or its link, if it has no guid) is used as the record’s stable identity, so an item that’s edited updates in place rather than creating a duplicate.
A feed is a rolling window
An RSS feed lists only its most recent items — older ones scroll off the end. So the RSS feed is additive: each sync adds new items and updates changed ones, and items that have scrolled out of the feed are kept in your search, not removed. This is deliberate — it means your searchable archive grows over time even though the source only ever shows the latest handful. (If you want a record gone, delete it from the list directly.)
How new items are picked up
On each poll we fetch the feed and look at the set of item identities and their dates; if nothing has been added or changed, nothing is staged — so feed-level noise like a moving “last built” timestamp doesn’t cause needless work. A new or edited item triggers a fresh sync. Syncing is periodic (as often as every 5 minutes, 30 by default), so a new post becomes searchable within minutes.
The feed URL must be a public, named host — IP addresses, localhost and intranet names are refused. Both http and https are accepted.
A worked example
Say you want your company blog searchable. You connect its feed — https://blog.acme.com/feed.xml — as an RSS feed. The feed mirrors every post into feeds/blog.ndjson in your built-in media store. You create a blog list, import from that file with keep-in-sync on, and now the blog is searchable — publish a new post and it appears within minutes, filterable by date, category and author — with no export, no upload, and no code.