which I did make one, but still.
That URL gives 404 error though; please update it to point to the one on your new site, so people could actually read that.
Atom feeds are just not popular at all from what I've seen.
there's a surprising lack of anything that talks about Atom feeds or explains how to make one
One big part of the reason is because people often conflate "web feed" with "RSS feed" (effectively burying Atom in their conversation); and
I had to remind them every time that they are not the same thing.
RSS, while being the first, is also the hackiest one-- and definitely not the one you should choose by default when making a new feed for reasons I'll get to below.
to figure out the weird format you have to use for the date
Not for me: I live in 24-hour-time country, and ISO 8601/RFC 3339 (especially its space-separated "YYYY-MM-DD HH:mm:ss +ZZZZ" variant
(0) ) is actually
my preferred date-time format for all computer-related works.
create a specific type of ID
It is actually a feature, not a bug. The requirement of unique ID is actually what makes many Atom feeds avoid the most basic "beginner's mistake" plaguing many RSS feeds
(1); and I would argue that shoehorning "tag:" URI there, like in your article, is basically repeating RSS' mistake.
Use real opaque UUID instead (the `urn:uuid:`-prefixed one). As I live on
path of the Free and use GNU/Linux, I simply run `uuid -v4` on command line, and copy-paste whatever it output as a UUID of my new entry. I actually configured my preferred graphical text editor to have a hotkey to insert such value too.
Do you prefer RSS or Atom?
When creating feed and I have choice, I
always use Atom;
always.
And
if you hand-craft your feed, I will even go as far as saying:
you must use Atom, else you would end up hating yourself down the line. All feeds I have on my websites are hand-crafted; I say it from experience.
RSS is full of pitfalls and hackiness. Its hackiness would come to bite you
(1) as soon as you started doing anything more advanced than bare-minimum headings+dates. Because you know:
RSS cannot distinguish between summary-only feed and full-content feed.The official RSS spec, even the latest 2.0 one, supports just summary-only feed. As a result, there is no real facility to support full in-feed content; let alone rich text/HTML content there. Absolutely none, I'm serious. There was nothing to say that the entry's "summary" was actually a summary or rather full content; and nothing to distinguish that the inside was actually text, HTML, or any other exotic thingamajig.
Yet, people have long abused it by shoehorning not just full text content, but full HTML content in there (
complete with XML entities escape "fun"); and feed reader had to do heuristic "guess" which kind of content type the entry was supposed to have, in order to parse and display. Doesn't that horror sound familiar?
(2)And with nothing differentiating summary vs. full content in RSS: this deficiency leads to UI compromises in feed readers down the line, like always having to show button offering to "Load full content" when the feed was RSS, even in the occasion that what's displayed was already a full content that webmaster shoehorned in. Feed readers will also have to provide a per-feed configuration toggle for user to manually choose between displaying in-feed entry as-is or always load and display from permalink URL, because the feed reader was none the wiser when the feed was RSS.
This also lead to confusion and mental toll on user's side too; because for every in-feed RSS entry he sees in the feed reader, he can't always be sure if what's displayed was a actual content: he had to scroll to the end of entry to check; every, single, time.
In Atom? If you wanna tease, write `<summary>`. If you wanna throw full content, write `<content>`; and not just explicitly-declared text and HTML: there are even proper way to include binary content of arbitrary MIME type, in-feed, or via external payload file. If you wanna let user decide which one to view in-reader, write both; behaviors are defined, predictable; allowing feed readers to Do the Right Thing (TM) with sane defaults.
And remember what I said about:
complete with XML entities escape "fun"? I will argue that this is the part that makes a lot of people absolutely
hate handcrafting RSS feed (and ultimately lead to them omitting feed from their sites); because writing in-entry content/summary with entity-escapes (or even CDATA hacks) is just gnarly. Validation also can only be checked with specialized tool that specifically handled RSS, and editor's syntax highlighting won't work with the escaped/CDATA'd payload.
It's just terrible to write non-bare-minimum RSS by hand.But in Atom? You just declare XHTML as entry content type, put in `<div>` with a correct `xmlns=` attribute, and then type or paste your HTML body content
(3) in as-is. Regular XML validation tools, as well as your editor's syntax highlighting will also continue to work with Atom, down to the inside of each entry's content.
And if you ended up editing your page, you just copy-paste new HTML body content into the feed entry (replacing the old one); update timestamp of the entry and the feed; save and upload. No lengthy re-escaping work.
Choosing Atom means doing away with those nastiness and hacks in RSS; and developers of every feed reader software
will thank you for doing so.
Also, niche area: have you ever offered extra downloadable goodies in your feed entry? I have.
Both RSS and Atom support file attachment in feed entry (called "enclosure" in the literature). If you use RSS however, there is another catch:
RSS only officially supports maximum 1 attachment per entry. The support was even there at all just to allow attaching audio/video file for podcasting.
There is no such limitation in Atom; you can add any number of extra DLC you want to a single feed entry, and this is exactly what I do on my art site. If your feed was an audio/video podcast, it meant you could provide multiple audio/video formats too, without having to provide separate feed for each of them. This is another area that Atom is just simply better.
(0) And this (YYYY-MM-DD HH:mm:ss) is the date format I actually hacked MelonLand forum to show whenever I logged in. I said hacked, because it's not officially supported, and I had to go under the hood to add that in as my own PHP `date()` escape string.
(1) RSS' hackiness would even bite you long before adding in-feed content/summary, if you renamed any entry/page and its associated SEO-friendly URL that is/was previously appeared in your feed. Unlike Atom; RSS doesn't force you to put a real unique ID in the feed, so feed reader couldn't track that this was the same old entry that was simply renamed-- such renamed page would simply appear to your followers as a brand-new RSS entry; wasting time and killing anticipation of everyone involved.
(2) In the olden days of late 1990s-2000s, web server assigning wrong MIME type to HTTP response was a relatively common occurrence; so browsers (especially Internet Explorer) would guess the actual MIME type from the file data in response body and disregard what the server said in the HTTP header. It goes without saying that eventually, cracker crooks got ideas to start exploiting these guessworks.
https://www.adambarth.com/papers/2009/barth-caballero-song.pdf
(3) You have to write to HTML page with XHTML tag-closing style though (which HTML5 does allow), in order to use this least-effort copy-paste shortcut.