The experience
You open the reader. You see your friends’ posts from today — photos, a few words, a sketch, whatever they felt like sharing.
Everything is sorted by time. No recommendations, no suggested content, no ads. Just a quiet scroll through the day of people you actually know.
You close it when you’re done. Nothing tries to pull you back.
The principles
- You own your domain. Your content lives on your site, not on a platform.
- Your audience is people you chose. Not followers — friends.
- No likes, no views, no metrics. Sharing without performing.
- No algorithm decides what you see. Time is the only order.
The stack
For the technically curious.
Each person runs their own site on their own domain. The site publishes an RSS feed — a standard format since 1999. A custom reader fetches all your friends’ feeds, merges them, and sorts by date. That’s the whole architecture.
const friends = [
{ name: "Marco", feed: "https://marco.xyz/rss.xml" },
{ name: "Sofia", feed: "https://sofia.site/feed" },
]
// fetch all feeds in parallel
const posts = await Promise.all(
friends.map(f => parser.parseURL(f.feed))
)
// merge and sort by time — that's the whole algorithm
const stream = posts
.flat()
.sort((a, b) => new Date(b.date) - new Date(a.date))“A small audience of people you actually care about is more meaningful than a large audience of strangers.”
The web was personal once. It can be again.