Subscribe to my RSS feed (and how I implemented it)

Did you know that you can easily send me feedback, by hitting 'Send feedback' in the footer? Anyway, I received feedback for the first time a couple of hours ago. It simply stated:
Your blog seems to be lacking a RSS feed.
I enjoy to learn new things, and improve my website further. So I immediately implemented a RSS Feed. 🤓 You can now subscribe to it, and be updated of new articles: https://tonnygaric.com/blog/feed
If you are curious how I implemented it, read further. Note that I use Kirby as CMS, so the information below only applies for Kirby-flavoured websites.
How to add a RSS feed to your Kirby website
1) Add an invisible feed page
We want our feed to be available at https://tonnygaric.com/blog/feed
, but we do not want it to appear in any menu, or sitemap. So we will keep it invisible.
Note: If a page is visible, Kirby prefixes the folder name with a number. Thus by not adding a number, the page will be invisible, but accessible.
We create a folder called feed
in content/2-blog/
.
Inside the feed
folder, we create a file called blogfeed.txt
,
In our blogfeed.txt
we can add some basic information, for example:
Title: Tonny Garić's Blog
\----
Description: The latest updates from Tonny Garić's blog
\----
Note: I had to escape the ----
, you must not include the \
from the above example.
2) Download and add the feed plugin
Download the feed plugin from GitHub. It is a simple wrapper to make the feed generation easier.
We create a folder called feed
in site/plugins/
, and place the files of the feed plugin inside feed
.
3) Create a template
Inside our feed/blog
folder, we created blogfeed.txt
. Inside site/templates
we will now create a file named blogfeed.php
. By providing this template we make sure that this template will be used instead of the default.php
template when we open https://tonnygaric.com/blog/feed
.
We now need to get the right set of items for our feed, by placing the following in blogfeed.php
:
<?php
// Find blog page, fetch all visible children (articles), flip them to get the
// latest first, limit it to the 10 last articles and call the feed method.
// The feed method is being created by the feed plugin.
echo page('blog')->children()->visible()->flip()->limit(10)->feed(array(
'title' => $page->title(),
'description' => $page->description(),
'link' => 'blog',
));
?>
4) Link our feed
We can now visit our feed at https://tonnygaric.com/blog/feed
. Now, we can add links to it:
Anchor
<a href="<?= url('blog/feed') ?>">
Subscribe to our RSS feed
</a>
Link
We can also add the feed to the header of our website—so browsers and feed readers can automatically detect it.
<link rel="alternate" type="application/rss+xml" href="<?= url('blog/feed') ?>" title="<?= html($pages->find('blog/feed')->title()) ?>"/>
That is it! We are done. ✅
Also see
Also see Kirbys cookbook about RSS-Feeds.
PS
I do not know who send me the feedback, but thank you. I appreciate it.