Uncategorized

How to Build an Atom Feed for Your Vintage Hair Accessories Blog

When you run a small independent blog about vintage hair accessories—say, a lovingly curated archive of Edwardian tortoiseshell combs or 1950s velvet bows—the last thing you want to think about is a file format. Yet behind every well-organised collection page, every consistent update that reaches your regular readers via feed reader or email digest, there sits a tiny, unassuming XML document: the Atom feed. It does not sparkle like a bakelite slide, and it will never appear in a photograph alongside a Gibson-girl hairpiece, but it quietly ensures that your latest article about the resurgence of the Juliet cap lands on your subscriber’s phone while they sip their morning tea.

Atom is a syndication format—a cousin to the better-known RSS—that uses plain XML to list your blog’s recent posts in a machine-readable way. Developed in the mid-2000s as a more standardised alternative to RSS 2.0, it was designed to handle modern metadata, better date formatting, and clearer content inclusion. For a vintage accessories blog, Atom means you can offer subscribers a clean, predictable feed that works with almost every reader app (Feedly, NetNewsWire, the Apple News backend, and many others). And because it is plain text, it costs nothing to create, requires no server-side scripting beyond what your hosting already provides, and can be written by hand if you are methodical enough.

What Makes Atom Different from RSS?

Most readers will never care about the difference—they just want to see new articles appear. But for the blogger who maintains the feed, the details matter. Atom uses a mandatory <id> element for each entry, which is a permanent, globally unique URI. That means if you later change a post’s title or correct a typo, the feed reader can still recognise it as the same entry and update the stored copy rather than showing a duplicate. RSS 2.0 does not enforce this; many guides still recommend using the permalink URL as a surrogate, which breaks when you move to a different domain or reorganise your archive. Atom also requires an explicit <updated> date, so your readers never guess whether a post is fresh or just re-promoted.

Another quiet advantage is Atom’s handling of content. With RSS, you often see <description> as a short summary and <content:encoded> as full HTML—but that second element is not part of the official spec and behaves differently across readers. Atom provides a simple <content type="html"> element that is part of the standard. If you want your feed to include the full text of your article about Victorian hair jewellery, including the <em> tags and the photograph captions, Atom makes it unambiguous.

Building an Atom Feed for Your Vintage Accessories Blog

You do not need a plugin or a content management system to create an Atom feed. A single XML file saved with a .xml or .atom extension and uploaded to your server is all it takes. Below is a minimal working template. Replace the example details with your own blog name, links, and entry data.

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns=";
  <title>The Hairpin Archive</title>
  <link href="; rel="self"/>
  <link href="; rel="alternate"/>
  <updated>2025-03-27T10:00:00Z</updated>
  <author>
    <name>Eleanor Webb</name>
    <email>[email protected]</email>
  </author>
  <id>urn:uuid:8a9c7e2f-1d43-4b5a-9e6f-7c8b9a0d1e2f</id>
  <entry>
    <title>The Edwardian Comb Revival: Tortoiseshell Substitutes in the 1920s</title>
    <link href="; rel="alternate"/>
    <id>urn:uuid:3b4c5d6e-7f8a-9b0c-1d2e-3f4a5b6c7d8e</id>
    <updated>2025-03-26T14:30:00Z</updated>
    <summary>A close look at the materials that replaced genuine tortoiseshell after the 1914 ban, from cellulose nitrate to early casein plastics.</summary>
    <content type="html">
      &lt;p&gt;The comb you see in every vintage market display case from Portobello Road to Spitalfields is rarely what it seems…&lt;/p&gt;
    </content>
  </entry>
</feed>

Generate a fresh urn:uuid for the feed itself and for each new entry. Many free online tools create these in one click. Keep the <updated> timestamp in UTC (the trailing Z), and always include both <link rel="self"> (pointing back to the feed file) and <link rel="alternate"> (pointing to your main blog page). This helps feed readers validate the source and prevents confusion if someone copies your feed URL.

A Practical Workflow for Regular Updates

If you add a new post once a week, you have two choices: edit the Atom file by hand, or generate it automatically with a small script. For a blog with fewer than 200 entries, hand-editing is perfectly viable. Open the file, duplicate the most recent <entry> block, update the title, link, id (new UUID), date, and content, then save and re-upload. Always validate the feed with a free online validator before announcing the update—one missing closing tag can break the entire feed for all subscribers.

For larger archives, consider a simple static-site generator or a single-line PHP script that reads a folder of HTML files and builds the feed. Because you already maintain a collection page using plain HTML—a method we covered in Build a Vintage Collection Page with Simple HTML: No Code Needed—you can apply the same principle to the feed: write a small loop that extracts the title and date from each post file and outputs valid XML. No databases, no dynamic server overhead, no privacy-invasive analytics.

a blogger editing a feed file at a small desk with tea and reference books

Metadata That Matters for Vintage Content

Atom lets you attach categories, which are a wonderful way to help readers filter your feed by era or material. Add a <category term="Edwardian" /> or <category term="Bakelite" /> inside each entry. Many feed readers display these as tags, allowing subscribers to see only the posts about Art Deco barrettes if that is what they collect. To implement this cleanly, decide on a controlled vocabulary beforehand—terms like “Victorian”, “1920s”, “celluloid”, “tortoiseshell”, “velvet”, and “silver” cover most ground without becoming chaotic.

You can also link to related pages within your own blog. For example, if the feed entry discusses a specific 1930s hair slide that you have catalogued in your archival section, include a <link rel="related" href="; />. Atom supports multiple link relations, so your feed becomes not just a list of new posts but a small web of interconnected references—very much in keeping with the collector’s spirit of cross-referencing patterns and makers.

Submitting Your Feed and Keeping It Healthy

Once your Atom file lives at, say, , announce it to your readers via a short blog post and add a small “Subscribe via Atom” link in your sidebar or footer. You do not need to submit to any central directory—feed readers discover the file either through autodiscovery (a <link> tag in your blog’s HTML head) or by the subscriber typing the URL directly. For autodiscovery, place this line inside the <head> of every page:

<link rel="alternate" type="application/atom+xml" title="The Hairpin Archive" href="; />

Check your feed every month using a validator. The most common issues are malformed HTML inside the <content> element, incorrect date formatting (use RFC 3339, like 2025-03-27T10:00:00Z), and mismatched UUIDs. If you change your domain name or server path, update the <link rel="self"> first, then set up a redirect from the old feed URL. Some readers cache the feed location and will keep hitting the old URL for weeks—a redirect ensures they are not greeted with a 404 error and an empty screen.

For security, consider adding a small ads.txt file if you ever run display ads on your blog—it keeps your ad inventory transparent and trustworthy, as outlined in Why Your Vintage Accessories Blog Needs an ads.txt File. That file lives next to your Atom feed in the root directory and has nothing to do with the feed itself, but it shows readers and advertisers alike that you run your digital property with the same care as your collection.

a vintage comb resting on a page of handwritten collector notes beside a laptop

A final detail about the <logo> and <icon> elements

Atom supports two optional image elements: <logo> (a larger, banner-style image) and <icon> (a small square, 64×64 pixels, ideal for feed reader avatars). If you care about how your blog appears in someone’s NetNewsWire or Feedly sidebar, upload a clean icon—perhaps your logo mark or a small silhouette of a vintage hairpin—and reference it with an absolute URL:

<icon>;
<logo>;

Keep the icon simple and high-contrast; most feed readers display it at very small sizes, so a detailed photograph of a filigree comb will read as a blur. A solid silhouette or a single letterform works best. Update the <updated> timestamp at the top of the feed when you change the icon, so readers’ apps refresh the stored image. This small touch makes your feed feel as carefully kept as the articles themselves—a quiet signal that someone who loves vintage details is behind the keyboard.