Context
Incident RSS/Atom feeds landed in #(this branch: amondnet/feed, commit 7f43ea5) — /feed.rss, /feed.atom, and the Statuspage-style /history.rss, /history.atom aliases, generated by @statusbeam/core's buildRssFeed/buildAtomFeed.
One deliberate shortcut: because there is no dedicated per-incident page yet, every feed item/entry links to the status-page root (/) rather than a real incident permalink:
- RSS
<item><link> → ${siteUrl}/
- Atom
<entry><link rel="alternate"> → ${siteUrl}/
Entry uniqueness is preserved via tag: URIs (tag:<host>,2005:Incident/<id>), so readers still de-dupe correctly — but the links aren't deep links.
This mirrors how Statuspage.io/incident.io link each entry to /incidents/<id>.
Proposal
Add per-incident permalink pages and point the feed (and the on-page incident cards) at them.
Out of scope / open questions
- Locale-aware feeds — feeds are English-only right now. If we want
/{locale}/feed.atom, that's a separate decision (most status providers keep one canonical, language-neutral feed).
- Incident permalink identifier: numeric
id vs. a stable slug.
Pointers
- Generator + link construction:
packages/core/src/feed.ts
- Endpoints:
apps/web/src/pages/{feed,history}.{rss,atom}.ts, shared handler apps/web/src/lib/feed.ts
- Incident model + helpers:
packages/core/src/incidents.ts
- On-page rendering:
apps/web/src/components/IncidentList.tsx
Context
Incident RSS/Atom feeds landed in #(this branch:
amondnet/feed, commit7f43ea5) —/feed.rss,/feed.atom, and the Statuspage-style/history.rss,/history.atomaliases, generated by@statusbeam/core'sbuildRssFeed/buildAtomFeed.One deliberate shortcut: because there is no dedicated per-incident page yet, every feed item/entry links to the status-page root (
/) rather than a real incident permalink:<item><link>→${siteUrl}/<entry><link rel="alternate">→${siteUrl}/Entry uniqueness is preserved via
tag:URIs (tag:<host>,2005:Incident/<id>), so readers still de-dupe correctly — but the links aren't deep links.This mirrors how Statuspage.io/incident.io link each entry to
/incidents/<id>.Proposal
Add per-incident permalink pages and point the feed (and the on-page incident cards) at them.
/incidents/[id](or/incidents/[slug]) rendering a single incident's timelinebuildRssFeed/buildAtomFeeditem/entry links to the incident permalink instead of/IncidentListto their permalinkOut of scope / open questions
/{locale}/feed.atom, that's a separate decision (most status providers keep one canonical, language-neutral feed).idvs. a stable slug.Pointers
packages/core/src/feed.tsapps/web/src/pages/{feed,history}.{rss,atom}.ts, shared handlerapps/web/src/lib/feed.tspackages/core/src/incidents.tsapps/web/src/components/IncidentList.tsx