Add Ghost-specific RSS source setup and presentation #36

Open
opened 2026-09-30 04:24:08 +00:00 by Michael Westergaard · 0 comments
Owner

Goal

Let a user enter a Ghost publication or author archive URL and subscribe through RSS, including sites without usable ActivityPub support.

Acceptance

  • Resolve verified Ghost publication URLs to /rss/ and author archives to /author/name/rss/; support hosted and custom-domain sites through verified discovery.

  • Preserve publication-versus-author scope. Do not silently import every author when the user entered one author archive.

  • Preserve ActivityPub account detection when available. Handle private sites and unavailable feeds explicitly; import only publicly exposed feed content.

  • Present blog posts with original links, titles, author/publication attribution, and available image metadata.

  • Use the existing single add-account/link field and subscription-versus-link confirmation. Show the source name and original URL; public feed access must not imply account ownership.

  • Reuse the source ingestion/publication pipeline and service setup adapter introduced by #30. Preserve the provider in setup results rather than hard-coding YouTube. Use protected external fetches, rate limiting, the configured feed limit, and the configured polling schedule.

  • Add application-specific mocked unit tests to the interoperability suite for resolution, invalid/ambiguous inputs, imports, stable IDs, edits/deduplication, attribution, and rendered/federated links. Keep real-service checks in manual integration. Follow the repository's red/green process.

  • Keep the compatibility matrix, runtime classifications, and interoperability tests synchronized; document actual limitations.

Depends on #27 and #30. Official RSS formats and public/private availability: https://ghost.org/help/where-can-i-find-my-rss-feed/

## Goal Let a user enter a Ghost publication or author archive URL and subscribe through RSS, including sites without usable ActivityPub support. ## Acceptance - Resolve verified Ghost publication URLs to `/rss/` and author archives to `/author/name/rss/`; support hosted and custom-domain sites through verified discovery. - Preserve publication-versus-author scope. Do not silently import every author when the user entered one author archive. - Preserve ActivityPub account detection when available. Handle private sites and unavailable feeds explicitly; import only publicly exposed feed content. - Present blog posts with original links, titles, author/publication attribution, and available image metadata. - Use the existing single add-account/link field and subscription-versus-link confirmation. Show the source name and original URL; public feed access must not imply account ownership. - Reuse the source ingestion/publication pipeline and service setup adapter introduced by #30. Preserve the provider in setup results rather than hard-coding YouTube. Use protected external fetches, rate limiting, the configured feed limit, and the configured polling schedule. - Add application-specific mocked unit tests to the interoperability suite for resolution, invalid/ambiguous inputs, imports, stable IDs, edits/deduplication, attribution, and rendered/federated links. Keep real-service checks in manual integration. Follow the repository's red/green process. - Keep the compatibility matrix, runtime classifications, and interoperability tests synchronized; document actual limitations. Depends on #27 and #30. Official RSS formats and public/private availability: https://ghost.org/help/where-can-i-find-my-rss-feed/
Sign in to join this conversation.
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
klafbang/fediprofile#36
No description provided.