source-cooperative / source-cooperative/source.coop
[Proposed Feature] Add published_at field and publish action to RSS feed
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 26
- Forks
- 9
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 42
Description
Background
An RSS feed exists at /feed.xml but currently includes all public products sorted by created_at. Since products are set to visibility: "public" at creation time, the feed surfaces empty products immediately — before any data has been uploaded or the owner considers them ready.
Proposed solution
Add a published_at timestamp to the product schema. Owners explicitly publish a product via a button in the product edit UI, which sets published_at once and never overwrites it. The feed is updated to:
- Only include products where
published_atis set - Sort by
published_at - Use dynamic base URL (fixing the existing hardcoded
https://source.coop)
Open question
This would require us to change our product creation flow to some extent. Publishers would create a product, describe it, upload content to it, and then decide to publish it. We currently allow this passively through the "unlisted" option, but it's not quite the same. I think one way to think about this is that it's similar to the process of publishing a video on YouTube in which one uploads the content, creates a title and description for it, and then decides when to "publish."
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the /feed.xml entry point, the product schema, and the product edit UI. Trace the current creation and visibility flow, then define the publish action and its interaction with product data. Done means products publish explicitly, the feed filters and sorts by published_at, and its base URL is dynamic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100