The more I get comfortable with _emacs_ and _doom_, the more I tend to move things to it. This means that I am getting things done faster, without the need to get bogged down in the weeds of things.
This also means that, sometimes, I get to decommission a service that I host for my own personal use. If I can do it with a _text file_ in _git_, why would I host a full-on service to do it for me ?
You might say, well, then you can access it from anywhere ! Security much ?!
if I don't have my machine, I will not access my passwords. In practice, the reality is that I am tied to my own machine. On one hand, I cannot access my services online without my machine and if I am on the move it is highly unlikely for me to access my _rss_.
Oh yeah ! _rss_ ! That's what we are here for right ? Let's dive in...
<!--more-->
## Introduction {#introduction}
I hosted an instance of _[miniflux](https://miniflux.app/)_ on a _vps_ for my _rss_. _Miniflux_ is a great project, I highly recommend it. I have used it for a number of years without any issues at all; hassle free. I love it !
But with time, we have to move on. I have had my eye on the _rss_ configuration in the _doom_`init.el` since I installed it. Now comes the time for me to try it out.
I will go with my process with you so you can see what I did. There might be better ways of doing things than this, if you know how ping me !
## Doom documentation {#doom-documentation}
The nice thing about _doom_ is that it is documented. The `rss` is a _doom_`module` so we will look in the _doom_`modules` manual.
We can achieve this by hitting `SPC h d m` and then searching for `rss`. The documentation will give us a bit of informaton to get started, like for example that it uses `elfeed` as a package.
## Elfeed {#elfeed}
The creators of [elfeed](https://github.com/skeeto/elfeed) describe it as.
> ... an extensible web feed reader for Emacs, supporting both Atom and RSS.
The project looks well documented, that's very good. It has extensions, _org_ one... wait _org_ one ? What does it do ?
## Elfeed Org {#elfeed-org}
What is this thing [elfeed-org](https://github.com/remyhonig/elfeed-org) ?
> Configure the Elfeed RSS reader with an Orgmode file
Sweet ! That's what I'm talking about. A neatly written _org_ file as configuration.
It is always a good idea to go through documentation, at least quickly. Skim it over, you don't know what you would miss in there. I've been doing this for a long time, there is no way I can miss any... oh wait... I missed this...
### Import/Export OPML? {#import-export-opml}
Whaaaat ?
> Use `elfeed-org-import-opml` to import an OPML file to an elfeed-org structured tree.
Alright, that sounds easy. Let's export from _miniflux_ and import in _elfeed_.
## Configuration {#configuration}
Before we import and whatnot, let's figure out what we are importing and where.
After reading the documentation of both `elfeed` and `elfeed-org`, it says we need to set `rmh-elfeed-org-files` which is a _list_.
In my _doom_ configuration, I think I need to do the following.
This way we can guarantee where the file is, or we can go digging where the default is and copy from there.
This is just another file in my _org_ collection. Nothing special about it, it gets tagged and searched like everything else.
<divclass="admonition note">
<pclass="admonition-title">Note</p>
I added the `(elfeed-org)` in the block to load `elfeed-org` after I had to load it manually a few times. This made it work on my system, I might be doing it wrong so your milage may vary.
The `after!` section is _doom_ specific.
</div>
I also added the following line above the `rmh-elfeed-org-files` line.
```emacs-lisp
(setq elfeed-search-filter "@1-month-ago")
```
I simply wanted to see a span of _a month_ instead of the default _2 weeks_.
_Elfeed-org_ by default **inherits tagging** and **ignores text**. In this way, I can cascade _tags_ and when it's time to sort I can search for `+xkcd` and I get only _xkcd_ posts. I can also do something similar to filter on `+general +europe` for specifically getting _Europe_'s _Reddit news_.
The other reason for the _org_ integration is the documentation aspect for the future. I have only recently migrated to _elfeed_ so the documentation is still somewhat lacking, even for me. Not to worry though, as is the custom with the other migrations so far I ended up documenting a lot of it in better ways.
## The big finish ? {#the-big-finish}
Okay, okay ! That's a lot of babbling let's get to it, shall we ?
Now that everything is configured the way we like. Let's _reload_ everything and try `M-x``elfeed`.
Yeah, I know not very impressive huh ? We didn't add any _hooks_ to update and fetch things. I like to do that manually. The documentation, though, describes how to do that, if you like. For now, let's do it ourselves `M-x``elfeed-update`. You should be greeted with something like this.
There was nothing hard about the setup, whatsoever. It took me a bit to go through the relevant bits of the documentation for _my use cases_ which are, I admit, simple. I can now decommission my _miniflux_ instance as I have already found my future _rss_ reader.