Ars at DjangoCon: Build your own social network with Pinax

Pinax is a platform for rapidly building websites, itself built on the Django …

Pinax was a project conceived by James Tauber not to reinvent the wheel but to understand wheels better. That's how he puts it in his talk on the subject and what's become of what that reinvention was originally called Hotclub and is now Pinax. The project now provides glue and support for a vast number of what Django developers call "applications" and that allows a single developer to deploy a complete socially-focused web application that they control at every level.

Pinax takes advantage of what James Bennett, author of Practical Django Projects (Ars review), calls the "killer feature" of the Django web framework—reusable applications—to build a complete project. Many of the applications used in Pinax are derived from the community—Django developers often spin off small, reusable bits of their code base that can be plugged into anyone else's projects.

The Pinax project aims to take and aggregate these applications which provide small bits of functionality: ratings, polls, user profiles, friend relationships, comments, blogs, micro-updates, projects, tagging, OpenID support, and about 30 others. These can be mixed and matched together to create any number web applications a developer might want to create.

Tauber came to the idea of bringing together a large number of 3rd-party, community developed Django applications to build a larger project while building a series of community web sites; first a personal wiki he called Leonardo, Quisition (an online flash cards website), and finally a Harry Potter predictions site. He began to realize that he was re-writing or re-using many of the same Django applications and began to envision convincing a team of volunteers to help flesh out and develop many of these applications to bolster the entire Django community.

However, Tauber had trouble getting people help to write or maintain those applications and conceived of creating a project that would require many of these peices; Tauber uses the following Antoine de Saint Exupéry quote:

If you want to build a ship, don't drum up the men to gather wood, divide the work and give orders. Instead, teach them to yearn for the vast and endless sea.

The focus of his project then shifted to creating the Pinax project, hoping that a scaffolding for social networks built on these reusable applications which would get much more tender loving care under the goal of creating something larger than the sum of their parts.

This was Memorial Day 2008 and the project has been in high-gear ever since. The project became so popular that the demonstration site set up to showcase the abilities of the platform became a popular social networking site in its own right (over 1,000 users actively using it by July, 2008).

The project members are spinning off this site into its own product called Cloud27 which launches today, and other individuals have used the project to launch their own sites: foodsel—a food and fitness tracking site, and Trailmapping—a trail mapping and logging website.

Tauber says that he hopes to convince many more developers looking to build these types of websites to use Pinax (and Django) rather than reinvent this particular wheel and is actively soliciting feedback to learn why or why not the platform fits their needs.