Making an RSS reader: Part 1
Building projects to showcase on a portfolio is important, but it can be difficult to figure out what kind of project to devote the time to building. For a front-end developer, it’s a good idea to have projects that show off the different sub-disciplines within front-end development. This means you’ll want good examples of things like static sites (like this site), an app or site that fulfills all of the basics of CRUD (Create, Read, Update, Delete), and something that works with external APIs.
An RSS reader can fulfill two of those skills at the same time. Pulling data from multiple RSS feeds is a great example of working with external APIs, while implementing the basic features of an RSS reader — subscribing to feeds, marking posts as ‘read’, favoriting posts, adding tags, etc. — are all achieved using all the techniques necessary for a CRUD app.
So, I’m building an RSS reader. Along the way I’ll write about the process and, with any luck, it will be helpful and interesting enough to other developers who want to build something similar.
It’s a good idea to have some goals in mind before starting a project, so let’s lay some out in writing before getting started.
To start off I want to make sure to have the basic functionality of an RSS reader — to subscribe to and display the content of multiple RSS feeds.
Accessibility should be a main priority, and all content should be presented to users in a way that allows them to use the app fully. This means that things like keyboard/alternate device navigation should work flawlessly and present the user with controls and information in a sensible way.
Once I have that done I can move on to adding additional features like favoriting, tagging, marking as ‘read’ etc.
It should look really cool.
This is a front-end application. There are so many frameworks and approaches to this that the mind boggles.
Still, there’s nothing happening in the app that requires one framework over another, so I’m going to go with what I’m already familiar with — Svelte. I’ll be using SvelteKit, the framework built on top of Svelte for making apps. I’ve been using Svelte for a while now but I haven’tt built anything that’s not essentially a static site with SvelteKit. So this should allow me the comfort of using familiar technology while also learning about how to make a full-featured app work with SvelteKit.
For persistence I’ll be using SupaBase. SupaBase is a new real-time alternative to Firebase that’s built on PostgreSQL. I could choose to go with almost any database layer for this project but, honestly, I don’t know all that much about working with SQL of any kind and I’d like to get my toes wet before I start my Database Management class in the upcoming fall semester. (Also, I like the fact that someone’s making a good alternative to Firebase. Firebase is great and all, but I don’t want to use it for everything.)