Feed twin - RSS 2.0
Four articles of a fictional publication as RSS 2.0, with a self-referential atom:link, non-permalink tag: GUIDs, RFC 822 dates and full HTML bodies in content:encoded. One of three twins carrying identical content, so a feed converter can be diffed against a known answer.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Example Dispatch</title>
<link>https://www.example.com/blog/</link>
<description>A fictional publication shipped in three feed formats with identical content.</description>
<language>en</language>
<lastBuildDate>Thu, 01 Jan 2026 12:00:00 +0000</lastBuildDate>
<atom:link href="https://www.example.com/feeds/dispatch.rss" rel="self" type="application/rss+xml"/>
<item>
<title>Sitemap shards, explained</title>
<link>https://www.example.com/blog/sitemap-shards-explained</link>
<guid isPermaLink="false">tag:example.com,2026:dispatch-004</guid>
<pubDate>Thu, 01 Jan 2026 12:00:00 +0000</pubDate>
<description>Why a 50,000-URL ceiling exists and what a sitemap index actually buys you.</description>
<content:encoded><![CDATA[<p>A sitemap index is a list of lists. Sample article body.</p>]]></content:encoded>
</item>
<item>
<title>Crawl budget notes</title>
<link>https://www.example.com/blog/crawl-budget-notes</link>
<guid isPermaLink="false">tag:example.com,2026:dispatch-003</guid>
<pubDate>Thu, 01 Jan 2026 09:30:00 +0000</pubDate>
<description>Notes on crawl budget for a fictional catalogue of 500 items.</description>
<content:encoded><![CDATA[<p>Crawl budget is a scheduling story, not a quota. Sample article body.</p>]]></content:encoded>
</item>
<item>
<title>Reading robots.txt like a parser</title>
<link>https://www.example.com/blog/reading-robots-txt</link>
<guid isPermaLink="false">tag:example.com,2026:dispatch-002</guid>
<pubDate>Thu, 01 Jan 2026 08:15:00 +0000</pubDate>
<description>Group merging, longest-match precedence, and the fields nobody implements.</description>
<content:encoded><![CDATA[<p>Most robots.txt bugs are precedence bugs. Sample article body.</p>]]></content:encoded>
</item>
<item>
<title>Hello from the Example Dispatch</title>
<link>https://www.example.com/blog/hello</link>
<guid isPermaLink="false">tag:example.com,2026:dispatch-001</guid>
<pubDate>Thu, 01 Jan 2026 08:00:00 +0000</pubDate>
<description>The first entry of a fictional publication used as a feed fixture.</description>
<content:encoded><![CDATA[<p>Nothing here is real. Sample article body.</p>]]></content:encoded>
</item>
</channel>
</rss>
Specifications
- Seed
- 70400
- Site
- example.com (fictional)
- Format
- RSS 2.0
- Items
- 4
- Namespaces
- atom, content
- Guid Perma Link
- false
- Date Format
- RFC 822
Testing contract
Expected to pass- Scenario
- Convert this feed to Atom or JSON Feed and compare with the twins shipped beside it.
- Expected result
- Four items round-trip with matching ids, links, titles, summaries and bodies; the RFC 822 pubDates map to the same instants as the RFC 3339 timestamps in the twins.
What is a .rss file?
RSS (Really Simple Syndication) is an XML-based web feed format that publishes a channel of items with titles, links, descriptions, and publication dates. It lets readers and aggregators track updates to blogs, news, and podcasts. It is a long-established syndication standard.
How to use this file
Use an example RSS file to test feed parsers, item and metadata extraction, and aggregator or podcast-client ingestion logic.
How to use this file for testing
“Feed twin - RSS 2.0” is a deterministic Novus Examples fixture for Web assets, Feed parsing, Conversion testing. Favicons, web app manifests, service workers, robots and sitemap files, Open Graph images, and .well-known resources — for testing web tooling, crawlers, PWA installers, and asset pipelines.
Documented properties for this file: seed 70400 · RSS 2.0. Compare results against paired or grouped companions on this page when present (clean↔damaged, searchable↔scanned, or format twins) so scores stay reproducible across runs.
Download the file once, keep the path stable in CI or local scripts, and treat the spec table as the contract: dimensions, seeds, field lists, and roles are intentional. Corrupt or invalid samples are labelled as such — expect parsers to fail loudly rather than silently accept them.
Web-platform fixtures are standards-compliant samples against fictional example.com data. Test crawlers, PWA installers and manifest validators, favicon/icon pipelines, service-worker registration, or .well-known parsers against the documented structure.
Code examples
import feedparser # pip install feedparser
feed = feedparser.parse("dispatch.rss")
print(feed.feed.get("title"))
for e in feed.entries[:5]:
print(e.title, e.link)Related files
- icoFavicon (multi-size ICO)A multi-resolution favicon.ico bundling 16, 32, 48, and 64 px images of the brand mark — for testing favicon parsers, ICO decoders, and multi-image icon handling.

- svgFavicon (scalable SVG)A scalable SVG favicon of the brand mark — the modern crisp-at-any-size icon format, for testing SVG favicon support and vector-to-raster favicon pipelines.
- pngPNG icon sprite (5-icon strip)A 320×64 PNG icon sprite (five 64×64 cells) — the raster twin of the SVG sprite, for testing background-position sprite techniques and sprite slicers.

- svgSVG icon sprite (symbol sheet)An SVG sprite sheet defining five reusable icons as <symbol> elements referenced by <use href='#id'> — for testing SVG sprite pipelines and icon systems. Paired with a PNG sprite twin.
- otfOTF — CFF (Cubic) OutlinesThe same design in CFF outlines: cubic Type 2 charstrings with no glyf and no loca. The half of the pair that catches code assuming every OpenType font is TrueType-flavoured. Original typeface, free to use.

- otfOTF — Colour Font, COLR Layers over CFF OutlinesCOLR and CPAL over CFF rather than glyf outlines. COLR is outline-agnostic by specification, but plenty of tooling assumes colour fonts are TrueType-flavoured — this is the file that finds out. Original typeface, free to use.

Generated by generation/web_p7.py. Free for any use, no attribution required — license.