Orchard Core RSS Feed module
De afgelopen weken heb ik gewerkt aan een Newsfeed‑module: een Orchard Core‑module die RSS‑feeds ophaalt, verwerkt en toont op mijn website. In deze blogpost neem ik je mee door de belangrijkste keuzes, uitdagingen en oplossingen die ik onderweg ben tegengekomen.
Waarom een Newsfeed‑module?
Veel websites willen actueel technieuws tonen zonder zelf artikelen te schrijven. Denk aan feeds zoals:
- NOS Tech
- NU.nl Tech
- Computable
Deze RSS‑feeds zijn ideaal om automatisch content te tonen. Orchard Core heeft geen ingebouwde feed‑reader, dus dit was een mooie kans om een eigen module te bouwen die:
- RSS‑feeds ophaalt via een background task
- items parseert naar een eigen FeedEntry model
- afbeeldingen, auteurs en publicatiedata ondersteunt
- meerdere feedprofielen kan beheren
- snel genoeg is om live op een homepage te draaien
RSS als standaard
Ik merkte dat ondanks er een RSS 2.0 specificatie is er anders om gegaan wordt met het aanbieden van afbeeldingen. Volgens spec zal dit in de enclosure element staan maar ik ben tegengekomen dat dit in de media:content element staat. De parser zal hier rekening mee houden. Tenzij er andere varianten zijn.
Background task
De background task zal periodiek profielen lezen en afhankelijke van de profielconfiguratie de RSS feed ophalen. Daarnaast is er een background task die items opschoond zodra ze de eindtijd gepasseerd hebben. Dit is overigens een softdelete. Ik heb nog niet uitgevonden hoe de items middels een harddelete kunnen worden verwijderd.
ContentParts en -Types
Er zijn een drietal ContentTypes ontwikkeld:
- Feed Overview Page
- Feed Profile
- Feed Item
Een manier om de verschillende items weer te geven is om gebruik te maken van de Feed Overview Page. Dit is als menu-item in te stellen.
Een voorbeeld van contentitem Feed Overview Page:

Een voorbeeld van contentitem Feed Profile:

Feed Items worden automatisch aangemaakt door de background task. Het resultaat is nieuwsfeed.
Wat ik nog wil toevoegen
De module werkt, maar er staan nog uitbreidingen op de roadmap:
- ondersteuning voor Atom‑feeds
- feedprofielen per tenant
- extra configuratie mogelijkheden instellen
- verfraaiing van de frontend pagina
De bedoeling is om de module ofwel contentpart publiekelijk beschikbaar te stellen.