Back in September we announced that we were donating lots of open source to Pinax. This will not be an overnight process. We will be taking a single app at a time and updating it to latest best practices as we move it over.

A very common feature of a lot of web applications is the ability for users to register a like on a certain object. It might use a variety of different verbs (e.g. love, like, favorite) but under the covers it's registering a simple binary association between a user and an object.

We started phileo back in the fall of 2011 and it has served us well in many projects of our own as well as for our clients and unknown number of sites for other people (at the time on this writing there are 72 stargazers and 14 forks on GitHub).

Once your users like objects there are a host of things you can do with this data to make your application richer:

  • display a count of likes next to each object
  • reveal state to the logged in user if they have liked the object or not
  • display a list of objects liked by a user
  • display a list of people who have liked a particular object
  • use the linkage between user and object to drive other functionality like notification of updates to objects they have liked
  • interpret the links between objects and users as a graph to feed a recommendation engine

It's a simple but very powerful addition to any web application that has users and domain objects where you want to create hooks for users to become more engaged and grow a community. Furthermore, it's a very common pattern that users have come to expect out of social web applications.