From 857fc2f52c50c9cacf36c65399df7de69bffa372 Mon Sep 17 00:00:00 2001 From: George Mandis Date: Thu, 28 Nov 2019 15:55:38 -0800 Subject: [PATCH] Updated README - More direct instructions - Link to blog post for context --- README.md | 59 ++++++++++++++++++++----------------------------------- 1 file changed, 21 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 2a91522..9fabc63 100644 --- a/README.md +++ b/README.md @@ -1,25 +1,32 @@ # 🦉 Bubo Reader -Bubo is a somewhat irrationally minimalist RSS feed reader you can deploy on Netlify in a few simple steps. It is named after this [silly robot owl](https://www.youtube.com/watch?v=MYSeCfo9-NI) from Clash of the Titans (1981). +Bubo is a somewhat irrationally minimalist RSS and JSON feed reader you can deploy on [Netlify](https://netlify.com) in a few steps. The goal of the project is to generate a webpage that shows a list of links from a collection of feeds organized by category and website. That's it. -I created this one weekend after nostalgically lamenting the [demise of Google Reader](https://killedbygoogle.com/) many years ago. Many RSS feed reader services have sprouted up since then but they all do more than I need. I wanted something that: +It is named after this [silly robot owl](https://www.youtube.com/watch?v=MYSeCfo9-NI) from Clash of the Titans (1981). -- Had an absurdly simple interface that relied almost entirely on default HTML element behaviors and functionality -- Could be themed with CSS or mildly extended using JavaScript, if I wanted (but I decided not to) -- Didn't worry about pulling in the feed content into the reader's interface. I'm happy to read most content on the site it originated from. I just wanted a single dashboard to see when new stuff is published and available. -- Didn't rely on a database to see what I've read or keep an archive of content over time. +You can read more about how this project came about in my blog post '[Introducing Bubo RSS: An Absurdly Minimalist RSS Feed Reader](https://george.mand.is/2019/11/introducing-bubo-rss-an-absurdly-minimalist-rss-feed-reader/)' -## What does "irrationally minimalist" mean? +## Getting Started -Many RSS readers—including the former Google Reader—would pull the contents of a post into your feed so you could read everything in one place. Although I completely understand why someone would want to do that, I decided even that introduced too much complexity for my liking. +How to use Bubo Reader in a few easy steps with GitHub and Netlify: -My goal with Bubo was to be able to see a list of the most recent posts from websites I like in one place with links to read them if I want. That's it. If I want to read something, I'll click through and read it on the publisher's site. If I want to keep track of what I've clicked on and read I can reflect that using the `a:visited` pseudo selector in my CSS. +### Deploying from GitHub to Netlify -Bubo does not store posts in a database or keep track of what I've read. If an item is no longer available in the site's feed then it no longer appears in Bubo. If I miss something, that's just life. I can live with that. +- [Fork the repository](https://github.com/georgemandis/bubo-rss/fork) +- From your forked repository go to and edcit `src/feeds.json` to manage your feeds and categories +- [Create a new site](https://app.netlify.com/start) on Netlify from GitHub -## What about authentication? +The deploy settings should automatically import from the `netlify.toml` file. All you'll need to do is confirm and you're ready to go! -There is no authenticaton required for Bubo. Netlify does offer Basic Authentication under their [Pro plan](https://www.netlify.com/pricing/), which would be an easy solution to implement. You could probably also utilize their [Identity](https://www.netlify.com/docs/identity/?_ga=2.147267447.1334380953.1567004741-1681444902.1549770801) feature to add some authentication. I don't subscribe to any private or sensitive feeds, so at the moment that isn't much of a priority for this project. +### Keeping Feeds Updated + +To keep your feeds up to date you'll want to [setup a Build Hook](https://www.netlify.com/docs/webhooks/#incoming-webhooks) for your Netlify site and use another service to ping it every so often to trigger a rebuild. I'd suggeste looking into: + +- [IFTTT](https://ifttt.com/) +- [Zapier](https://zapier.com/) +- [EasyCron](https://www.easycron.com/) + +If you already have a server running Linux and some command-line experience it might be simpler to setup a [cron job](https://en.wikipedia.org/wiki/Cron). ## Anatomy of Bubo Reader @@ -28,31 +35,7 @@ There is no authenticaton required for Bubo. Netlify does offer Basic Authentica - `src/feeds.json` - a JSON file containing the URLs for various site's feeds separated into categories - `src/index.js` - the script that loads the feeds and does the actual parsinga and rendering -## Adding Feeds +## Support -Find them in the site's source code and add them to the `feeds.json` file. This is the trickiest part of this whole setup I suppose. - -The first version of this project used [Puppeteer](https://github.com/puppeteer/puppeteer) to extract the feeds from a site. This was actually quite cool, but would hang or fail periodicially. I was running this on its own server. It's on my list to look into converting this into a serverless version that could run using Netlify's Functions, but after using my own project for a month I realized it didn't make the thing feel much more usable to me. Builds were slow and there was a lot of work making sure things didn't timeout or use too much memory on the server. Simply parsing a list of known RSS feeds was much simpler and faster. - -## Updating - -The beauty of running Bubo on Netlify is you can [setup a Build Hook](https://www.netlify.com/docs/webhooks/#incoming-webhooks) to rebuild the site when you want to "refresh" the list of feeds. I'm using [IFTTT](https://ifttt.com) to trigger rebuilds once an hour, which is a perfectly sane rate to consume information at. You could do the same, or use another service like Zapier, EasyCron, setup a cronjob on your server or even setup a cronjob to run locally on your machine and ping the hook as often as you wish. - -## How to use - -- Clone this repository -- Find RSS feeds and add them to `src/feeds.json` -- Go to Netlify and deploy site from GitHub. -- That's it! - -You'll probably want it to update regularly though. - -### Instructiosn for IFTTT -### Instructions for Zapier -### Instructions for EasyCron -### Instructions for cronjob (local or otherwise) - -## Sponsor - -If you found this useful please consider sponsoring me or this project. If you'd rather run this on your own server please consider using one of these affiliates links to setup a $5 instance on [Linode](https://www.linode.com/?r=8729957ab02b50a695dcea12a5ca55570979d8b9) or [Digital Ocean](https://m.do.co/c/31f58d367777). +If you found this useful please consider sponsoring me or this project. If you'd rather run this on your own server please consider using one of these affiliate links to setup a micro instance on [Linode](https://www.linode.com/?r=8729957ab02b50a695dcea12a5ca55570979d8b9) or [Digital Ocean](https://m.do.co/c/31f58d367777). \ No newline at end of file