Moodstocks Notes is an iPhone application (it will be available on other platforms soon) that enables you to check out what other people think about physical objects and give your opinion as well. In other words, it makes the world readable and writable to anybody. In this blog post, I will give you an overview of the technologies that make it possible.

Let us look at a bird’s eye view of the Notes architecture. When you use the mobile application, it talks to a web server through an API. The server-side application itself delegates image recognition to Moodstocks API.

Moodstocks Notes: architecture overview

Server-side software is a Sinatra web application. It runs in Thin processes behind the nginx reverse proxy. User data is stored in the Redis NoSQL data store thanks to the Ohm library.

All these building block we leverage have two things in common: they are lightweight and Open Source. It is a real pleasure to work with them all: the first version of the server was written and put online in only a few days!

The API between the client and the server uses RESTful HTTP and JSON. It is not documented yet, but we have just released a Ruby client in case you want to play with it. If you dig in its code, you might notice that it has access to more features than the current iPhone application: you get a sneak peak at features of the second version that is currently pending review by Apple…

If you have tried Moodstocks Notes, you probably wonder how it can recognize objects this well. As I said, we use our very own Moodstocks API for this. I will post about some technologies behind it later on, so stay tuned. And in the meantime, why not try it yourself?