RSS / Atom feeds — pull-style content syndication
Ce contenu n’est pas encore disponible dans votre langue.
Context
Section titled “Context”A reviewer / coordinator wants to know when new content matching a saved search lands. Push notifications (email, Slack, in-app) cover now-active notifications, but RSS/Atom is the format that lets people:
- Subscribe to “everything in Collection X” from their feed reader of choice without juggling another app.
- Wire Artist Alley into Slack / Teams / Discord via the built-in RSS connectors those platforms ship.
- Wire Artist Alley into Zapier / n8n / Make / IFTTT via the standard RSS trigger every workflow tool supports.
- Mirror collections / saved searches to digest emails generated by external tools without Artist Alley shipping a dedicated digest- email subsystem.
The audit (2026-05-30) initially flagged RSS as “low priority — use webhooks.” User override 2026-05-30: yes, ship RSS.
Decision
Section titled “Decision”Add Phase 1.31 — RSS / Atom feeds — as a read-only standard feed surface on top of the existing search + collection model.
URL surface
Section titled “URL surface”GET /feed/collection/{collection-slug}.atomGET /feed/collection/{collection-slug}.rssGET /feed/search/{saved-search-id}.atomGET /feed/user/{user-handle}/uploads.atomGET /feed/tag/{tag-slug}.atomFormat selection by extension. Atom is the primary supported format (better-defined spec, modern); RSS 2.0 is offered for compatibility with feed readers that don’t speak Atom (rare in 2026, but cheap to provide).
Authentication
Section titled “Authentication”Feeds for non-public content use a per-user feed token in the URL:
GET /feed/collection/{slug}.atom?token={feed-token}The feed token is mintable in account settings, single per user, and revocable. Token grants the holder access equivalent to the user’s own — never elevated. This is the pattern that GitHub uses for private feed URLs and it works in any feed reader without HTTP-Basic configuration.
Content per item
Section titled “Content per item”Each entry includes:
id— Artist Alley post URL (stable, hash-based)title— post titlesummary— first 280 chars of descriptioncontent— full description (Atom only; RSS usesdescription)author— author handle + display namepublished/updated— ISO timestampscategory(tags as terms)media:thumbnail— cover thumbnail URL (with feed token if needed)media:content— first asset URL (full media RSS extension)- Custom
aa:sensitivity,aa:workflow-state,aa:asset-countfor feed readers that understand them; ignored by everything else.
Embargo + sensitive content
Section titled “Embargo + sensitive content”Items whose sensitivity is embargo or restricted are filtered out
of feeds entirely — feeds are not authenticated enough to enforce
embargo. A feed-aware operator can opt into “include restricted with
title + thumbnail blurred” if their feed pipeline is private.
Caching
Section titled “Caching”Feed responses are cached server-side per (target, user-token-hash) for 5 minutes. ETag + If-Modified-Since supported for low-cost polling.
Update cadence
Section titled “Update cadence”Feed readers poll on their own schedule. We do NOT push to feeds. Cron / Slack / Zapier / etc. that need shorter cadence use webhooks (notification rules, Phase 1.18) instead.
Consequences
Section titled “Consequences”Positive
- One small surface area unlocks integration with hundreds of external tools that already speak RSS.
- Zero coupling to any third-party platform — RSS is an open standard.
- Feed reader users get a passive “watch this collection” without needing an Artist Alley tab open.
- Cheap to implement: read-only, reuses existing search.
Negative
- Feed-token URL pattern is on-by-default a long-lived credential. Mitigation: tokens are revocable, the issuance + revocation surface lives in account settings.
- Feed crawlers can be aggressive; rate-limit per IP.
Alternatives considered
Section titled “Alternatives considered”- Webhooks only, skip RSS. Original audit recommendation. User override — RSS is the universal lingua franca for “tell me when things change” outside event-driven webhook systems.
- JSON Feed format. Cleaner spec, but less ecosystem support in feed readers. Adopt later as a third format if there’s demand.
- OPML export. A list of feeds, not a feed itself. Out of scope.
Reference
Section titled “Reference”- Phase 1.31 in
docs/roadmap.md. - Saved searches (Phase 1.12 Search 2.0) supply the
/feed/search/{saved-search-id}source. - Webhook notifications (Phase 1.18) cover the push-style equivalent for tools that prefer it.