Lightweight Replacement for Google Reader
Pull request Compare This branch is 56 commits behind pokebyte:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.

grr >:(

grr is an attempt at replacing the gaping hole that the impending departure of Google Reader will leave in my daily routine. Its (initially temporary) name is an abbreviation for Google Reader Replacement, but seeing as how it also doubles as a decent onomatopoeic representation of my feelings towards the discontinuation of one of Google's most useful products, it's now the app's de-facto name.

grr consists of two components - the web server application, which interacts with the user, and the shell application, which routinely updates feeds in the background.

You can see a video of it here:


Primary focus of grr was to replicate the core functionality of Google Reader - specifically, features like starring, reading/unreading, navigation, and subscription categories. To that extent, grr supports:

  • Subscription categories
  • Starring
  • Marking as read/unread (single articles as well as entire views)
  • Filtering by status (All/Unread/Starred)
  • Paging
  • Tagging
  • Simple navigation using Previous/Next buttons
  • Keyboard shortcuts
  • Ability to subscribe to individual feeds

Additional features include:

  • Infinite nesting for subscription categories
  • Article 'liking', along with 'like' counts (this feature was available on Google Reader at some point)
  • Client-side background synchronization
  • Ability to mass-import feeds from OPML-formatted documents (such as those generated by Google Takeout)
  • Support for any number of user accounts
  • Built-in OpenID support


On the server side, grr requires:

  • Apache server with PHP support
  • MySQL server
  • cron, or any other scheduling service to routinely update feed information

On the client side, grr relies heavily on JavaScript and probably needs a decent modern browser.


To install:

  1. Copy the contents of the server directory to a www-accessible directory
  2. Copy the contents of the shell directory to a private area not accessible via www
  3. Import the MySQL schema in schema_full.mysql to a MySQL database
  4. Rename web application's default.config.php to 'config.php' and set all the necessary configuration information
  5. Rename shell application's default.config.php to 'config.php' and set the timezone and database configuration
  6. Log in to the web application and create a new administrative account
  7. Schedule to run routinely

Note that the web application, the database and shell application components do not have to reside on the same system.

Creating User Accounts

Depending on configuration, grr can allow anyone to create a new account (see the "CREATE_UNKNOWN_ACCOUNTS" setting in the configuration, disabled by default), or require a "welcome token" link to create a new account. Welcome token links can be generated in the Administrator section of the application and are valid for 2 weeks.


grr is currently in a late-alpha/early-beta stage, and as a result:

  • The design of the web application is atrocious, because dammit Kirk, I'm a programmer, not a designer!
  • Administrative features were mostly an afterthought and could certainly do with a redesign/overhaul