Skip to content
Create a gist now

Instantly share code, notes, and snippets.

Embed URL


Subversion checkout URL

You can clone with
Download ZIP
River ( blog

Good news, everyone!

You've safely reached River's blog! This is the place I document the process and share my experiences, bugs and headaches building River from scratch.

River consists of the following:

  • Rails api that serves the main read/write JSON api
  • Goliath client that pushes river updates to Pocket iOS app
  • Workers that pull/push activities to Rivers at regular intervals

MongoDb is used for storage. The Rails and Goliath apps are deployed at Heroku and the workers are deployed at a private vps.

This blog itself is written in Markdown, hosted at

Since River's tech stack is possible only due the open source, I plan to open source nearly everything except the core. The real value I think will be bugs, little gotchas and headaches that come up in the process of using the stack above.

Like most things I do in my life, River is just an experiment to understand more about myself and the world around me.

Current status

I first had this idea back in August 2012, but got sidetracked by HackerSchool. Since then I've rewrote the main api in Rails and currently working on the Pocket integration. My original plan was to create a simple Android app from scratch, but I recently got an iPhone 5 and really like the Pocket iOS app, so it seemed easier to piggyback on them for now.

It is absolutely my intention to write a seperate mobile app, but first I want to see if this is actually useful for me.


  1. Install Ruby, MongoDb on clean Ubuntu server.
  2. HaProxy rules that matches based on api versions, http verbs and paths.
  3. Gemfile and Bundler best practices.
  4. Keep a programming journal.
  5. The reasoning behind River.

Imagine this guy saying it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.