UtilityKit

500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.

RSS Atom Generator

Generate RSS 2.0 and Atom XML feeds from metadata and entry rows.

About RSS Atom Generator

RSS / Atom Feed Generator on UtilityKit builds a valid, publication-ready XML feed from your article metadata in seconds. Enter your channel title, site URL, description, and language, add up to twenty article entries with title, link, publication date, author, and optional description, then choose RSS 2.0 or Atom 1.0 output. The generator produces standards-compliant XML that validates against the W3C Feed Validator — correct namespace declarations, encoded entities, RFC-822 dates for RSS, RFC-3339 dates for Atom, and the self-referencing `<atom:link rel="self">` element validators require. RSS and Atom remain the universal standard for content syndication, powering podcast apps, news aggregators, Slack integrations, and RSS readers. Use this tool to prototype a blog feed, generate sample XML for integration testing, or learn RSS vs Atom structure without writing XML.

Why use RSS Atom Generator

W3C-Valid Output

Generated XML passes W3C Feed Validator checks out of the box — correct date formats, namespace declarations, entity encoding, and required elements for both RSS 2.0 and Atom 1.0.

RSS 2.0 and Atom 1.0

Switch between formats with one click. RSS 2.0 dominates podcast apps and legacy aggregators; Atom 1.0 is preferred for its cleaner spec and better content model.

No Backend Needed

Generates feeds entirely in the browser from your typed or pasted data — no server, no CMS plugin, and no hosting required to produce the XML.

Prototype and Test Feeds

Quickly generate sample feeds to test RSS reader integrations, API consumers, or automation workflows without publishing real content first.

Entity Encoding Handled

Special characters in titles and descriptions (ampersands, angle brackets, quotes) are automatically escaped to valid XML entities, preventing feed-breaking syntax errors.

Learn the Format

Side-by-side RSS and Atom output with inline comments makes this tool an excellent reference for developers implementing feed generation in their own applications.

How to use RSS Atom Generator

  1. Enter your feed channel details: title (your site or blog name), site URL, description (one to two sentences), and language code (e.g. `en-US`).
  2. Choose the output format: RSS 2.0 for maximum compatibility with aggregators and podcast apps, or Atom 1.0 for stricter standardisation and better support for full-content entries.
  3. Click Add Article and fill in the title, permalink URL, publication date, author name, and an optional summary or full HTML content for each entry. Add up to twenty articles.
  4. Optionally upload or paste an existing feed XML to parse and edit it rather than building from scratch.
  5. Click Generate Feed to produce the XML. Review the output in the syntax-highlighted preview pane.
  6. Copy the XML to your clipboard or download the `.xml` file. Host it at a stable URL on your domain (e.g. `https://yourblog.com/feed.xml`) and submit to your preferred feed directories.

When to use RSS Atom Generator

  • When building a static blog or documentation site that does not have a CMS-generated feed and you need a hand-crafted RSS or Atom XML file.
  • When testing an RSS reader integration, feed aggregator API, or automation (IFTTT, Zapier, n8n) and need a valid sample feed with realistic data.
  • When learning the structural difference between RSS 2.0 and Atom 1.0 formats and want to see both outputs side by side from the same data.
  • When adding a podcast feed to a static site and need valid RSS 2.0 with correct `<enclosure>` metadata for audio files.
  • When quickly validating that your backend's feed output structure matches what aggregators like Feedly or NewsBlur expect.
  • When prototyping a new content channel (newsletter archive, changelog, job board) and want a working feed XML to share with early subscribers before building the full CMS.

Examples

Simple RSS 2.0 blog feed (2 items)

Input: Title: My Dev Blog, URL: https://mydevblog.com, Format: RSS 2.0, 2 articles

Output: <?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"> <channel> <title>My Dev Blog</title> <link>https://mydevblog.com</link> <description>Dev articles and tutorials</description> <language>en-US</language> <atom:link href="https://mydevblog.com/feed.xml" rel="self" type="application/rss+xml"/> <item> <title>Getting Started with Docker</title> <link>https://mydevblog.com/docker-intro</link> <pubDate>Mon, 07 May 2026 10:00:00 +0000</pubDate> </item> </channel> </rss>

Atom 1.0 feed

Input: Title: My Dev Blog, URL: https://mydevblog.com, Format: Atom 1.0, 1 article

Output: <?xml version="1.0" encoding="UTF-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <title>My Dev Blog</title> <link href="https://mydevblog.com"/> <link href="https://mydevblog.com/feed.atom" rel="self"/> <updated>2026-05-07T10:00:00Z</updated> <id>https://mydevblog.com/</id> <entry> <title>Getting Started with Docker</title> <link href="https://mydevblog.com/docker-intro"/> <id>https://mydevblog.com/docker-intro</id> <updated>2026-05-07T10:00:00Z</updated> <author><name>Jane Dev</name></author> </entry> </feed>

RSS with full HTML content

Input: Title: Changelog, Format: RSS 2.0, Article with HTML body

Output: <item> <title>v2.1.0 Released</title> <link>https://myapp.com/changelog/v2.1.0</link> <pubDate>Mon, 07 May 2026 09:00:00 +0000</pubDate> <content:encoded><![CDATA[ <h2>What's new</h2> <ul><li>Faster build pipeline</li><li>Bug fixes</li></ul> ]]></content:encoded> </item>

Tips

  • Always include a `<lastBuildDate>` (RSS) or `<updated>` (Atom) element at the channel level. Aggregators use this to decide whether to re-fetch the feed, and omitting it forces a full re-parse on every poll.
  • Use permanent, canonical article URLs in your `<link>` elements — not `/latest-post` but `/blog/2026/05/my-post`. Aggregators deduplicate entries by URL, so changing a URL creates a duplicate in readers.
  • Keep `<description>` entries to plain text or simple HTML. Complex CSS, JavaScript, or inline scripts in feed descriptions break most reader clients and are stripped by aggregators.
  • Submit your feed URL to Google's Feedburner successor alternatives (like FeedHQ or inoreader) and to your Google Search Console sitemap to help crawlers discover new articles faster.
  • Set a `<ttl>` (time to live, in minutes) element in RSS 2.0 feeds to tell well-behaved aggregators how often to poll. A value of `60` (one hour) is standard for daily-updated blogs; use `1440` (24 hours) for slower-moving content.

Frequently Asked Questions

What is the difference between RSS 2.0 and Atom 1.0?
RSS 2.0 is older, simpler, and has broader compatibility with legacy aggregators and podcast apps. Atom 1.0 is a stricter W3C standard with a cleaner XML namespace, better support for full HTML content via `<content type="html">`, and unambiguous date formatting (RFC-3339). For most blogs, either works; for podcasts, RSS 2.0 is the industry standard.
What date format should I use for RSS vs Atom?
RSS 2.0 uses RFC-822 format: `Mon, 07 May 2026 10:00:00 +0000`. Atom 1.0 uses RFC-3339/ISO 8601: `2026-05-07T10:00:00Z`. The generator formats dates correctly for whichever format you choose — you can input dates in any common format.
How do I host my feed so subscribers can follow it?
Upload the generated `.xml` file to any web server or static hosting service (GitHub Pages, Netlify, Cloudflare Pages) and serve it at a stable URL like `https://yourdomain.com/feed.xml`. Ensure the server returns `Content-Type: application/rss+xml` or `application/atom+xml`.
Can I include full article HTML in the feed?
Yes. In Atom 1.0, use the `<content type="html">` element. In RSS 2.0, use the `<content:encoded>` extension element. The generator wraps your HTML in a CDATA section to preserve markup without needing to manually escape every tag.
What is the `<atom:link rel="self">` element?
It is a self-referencing link in an RSS feed that tells aggregators the canonical URL of the feed itself. Feed validators require it in RSS 2.0 feeds using the Atom namespace. It helps readers avoid duplicate subscriptions when a feed moves URLs.
Can I use this to generate a podcast feed?
The core RSS 2.0 feed structure is correct for podcasts, but a full Apple Podcasts / Spotify-compatible feed also needs iTunes namespace elements (`<itunes:author>`, `<itunes:category>`, `<itunes:image>`, etc.) and `<enclosure>` tags with audio file URLs and sizes. The generator outputs the base RSS structure; add iTunes namespace extensions manually for full podcast compatibility.
How many items can a feed contain?
There is no hard limit in the RSS or Atom specs. Most aggregators fetch the full feed on each poll, so large feeds increase bandwidth. Common practice is 10–25 recent items, with older items falling off as new ones are added. The generator supports up to 20 items.
Will the generated feed pass the W3C Feed Validator?
Yes, for standard feeds with text content. The generator follows both the RSS 2.0 spec and the Atom 1.0 spec for required elements and date formats. Feeds with raw HTML in `<description>` fields are wrapped in CDATA sections to prevent parser errors.

Explore the category

Glossary

RSS (Really Simple Syndication)
An XML-based web feed format (version 2.0 is current) for publishing frequently updated content like blog posts and podcasts so subscribers can follow without visiting the site.
Atom 1.0
An IETF-standardised XML feed format (RFC 4287) designed as a cleaner alternative to RSS. Uses RFC-3339 dates, explicit content type attributes, and strict namespace declarations.
Feed aggregator
A client application (e.g. Feedly, NetNewsWire, Reeder) that polls RSS/Atom feed URLs on a schedule and presents new entries in a unified reading interface.
CDATA section
An XML construct (`<![CDATA[ ... ]]>`) that wraps raw content (including HTML markup) so it is treated as character data rather than XML markup, preventing parse errors in feed elements.
Enclosure
An RSS 2.0 element (`<enclosure url="..." length="..." type="audio/mpeg">`) that attaches a media file (audio, video, image) to a feed item — the foundation of podcast syndication.
TTL (Time to Live)
An optional RSS 2.0 channel element specifying the number of minutes a feed can be cached before being re-fetched. Helps reduce unnecessary server load from over-eager aggregator polling.