Blog

The shape of a feed

When I sketched this site, the hard part wasn’t the look — it was making sure that next year’s idea for a new kind of content wouldn’t mean tearing things apart.

The trick was to stop thinking in pages and start thinking in one normalized list. Every kind of content — posts, links, photos — gets reduced to the same small shape:

interface FeedItem {
  type: 'blog' | 'commentary' | 'photos';
  title: string;
  date: Date;
  url: string;
}

Both the home page and the RSS feed read from that one list. They can’t drift apart, because there’s only one source of truth.

The test I held myself to

Adding a new kind of content should cost about five small steps:

  1. A folder for the files.
  2. A schema describing their fields.
  3. A card to show them in the feed.
  4. One line registering them.
  5. A page, if it deserves one.

If a future idea can’t fit that pattern, the design has leaked — and that’s the signal to fix the foundation rather than bolt something on the side.

It’s a small discipline, but it’s the difference between a site I’ll still be adding to in five years and one I’ll quietly abandon.