Ember Way to implement rss feed through front end only

Hello, I am using Ember 3.0 at the moment. Wrote my first lines of code in ANY language about 1 year ago (I switched careers from something totally unrelated to development), but I quickly took to ember. So, not a ton of experience, but not none. I am writing a multi-tenant site which will include about 20 different sites, all with one Ember frontend and a RubyOnRails backend. I am about 75% done with the front end, now just loading content into it. I haven’t started on the backend yet, one, because I don’t have MUCH experience with backend stuff, and two, because I haven’t needed it yet. My sites will be informational to begin with and I’ll build it up from there.

So. I am trying to implement a news feed on my site. I need it to pull in multiple rss feeds, perhaps dozens, filtered by keyword, and display them on my site. I’ve been scouring the web for days just trying to figure out where to get started. I was thinking of writing a service that parses the incoming xml, I tried using a third party widget (which I DON’T really want to do. Everything on my site so far has been built from scratch and I’d like to keep it that way), but in using these third party systems I get some random cross domain errors and node-child errors which only SOMETIMES pop up. Anyway, I’d like to write this myself, if possible, since I’m trying to learn (and my brain is wired to do the code myself - the only way it sticks with me).

Ultimately, every google result I read says RSS feeds are easy to implement. I don’t know where I’m going wrong, but I’m simply looking for:

1: An “Ember-way” starting point. 2: Is this possible without a backend? 3: Do I have to use a third party widget/aggregator? 4: Whatever else you guys think on the subject.

Any help would be appreciated. Here in New Hampshire, there are basically no resources, no meetings, nothing. Thanks for any help. Ryan

Hi, You can’t implement RSS on any front-end framework because of the way RSS works. So in you case you should use your RubyOnRails backend to generate the RSS feed direct from your backend database. If you have not started with a backend also take a look at CouchDB and ember-pouch. You can start loading content in ember-pouch without a backend and add that later. Adding a RSS feed to CouchDB I would do by running a Nodejs script somewhere that writes de RSS xml file as CouchDB Design Doc or attachment. We run Ember App’s direct from the CouchDB database. See for example https://bloggr.exmer.com/ where you can load the whole Ember App from the database without a webserver. The way this image loads from the database https://martinic.couchcluster.com/bloggr/_design/myapp/_rewrite/android-chrome-192x192.png you can also load a RSS xml file.

So you will always need a backend for RSS.

Ok. Good information. I appreciate the response and I’ll look into those options. I eventually have to start building my backend anyway, so I may just start now, ahead of my scheduled start. Thanks again!

Howdy folks :wave:

I just wanted to reach out to you @RpRoderick that it’s not necessarily impossible to do this in the frontend, although it does change the approach that you would need to do. Depending on what you’re trying to achieve or what the source of the data for the RSS feed you could possibly build an ember addon that generates an RSS feed at build time.

From the sounds of it your sources are too dynamic to achieve this but if you were able to trigger a build and deployment on a cron then it might be possible.

Let me know if that is something that you might be interested in and i will point you in the right direction :+1:

Hello, Thanks for your response as well. I’m going to look at both of these options and see which one makes more sense for me and I’ll respond next week sometime if I need anything. This is one of the things that I love about Ember, the community of people willing to help out. Thanks, really.

2 Likes

Thanks for your kind words @RpRoderick :joy: if you need anything from me you can usually find me hanging out in the #-team-learning channel in the community slack :+1: