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:
- A folder for the files.
- A schema describing their fields.
- A card to show them in the feed.
- One line registering them.
- 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.