How-To, Part 2: More Before Launching

February 26th, 2007

How-To: Create and Run a Social Networking Site
     by Greg Smith, velospace.org

In Part 1 in this series I talked about the crucial design and preparation work for your social networking site (SNS).

At this point you have already identified a need and brainstormed and sketched out features and solutions on how to fulfill that need (hopefully using some tools to make this easier). I will be covering this part of the outline today:

Find technology to create the solution
Now that you have a solution sketched out its time to find the right technology to make it happen. Your past experience with technology is one of the best ways to decide what programming language and platform you will develop the site on.

Because we are working on small SNS, don’t worry about implementing enterprise level technology. If you cut your teeth on PHP, find a PHP framework. If you cut your teeth on ASP, research ASP frameworks.

The important thing to remember is that you are looking for technology that is adaptable to fit your solution. To this end, open source software is great for a small SNS.

The two “freedoms” of much open source software (free as in beer, and free as in speech) means that acquiring the framework will not cost you anything and you get will get the source code. Having the source is very important – it lets you tinker and customize the framework to fit your solution.

The framework you choose will have a big impact on the future of your site. Think of a framework as a pre-built set of functions that take care of the custodial aspects of your site. Most web frameworks offer user management functions, database abstraction, and design and logic separation with templates. These are the sorts of functions that you don’t want to have to spend time writing.

Since you will be working by yourself, or on a small team with limited resouces (time and money), the more time you have to implement custom features for your SNS, the better. Rather than spending a week perfecting a user management system, or a few days writing a database abstraction layer, grab a framework that has this work done already. A framework is great because you pick it up, plug it in, and go!

In college I learned PHP. I spent a lot of time mucking around in PHP before velospace got started. While searching for a good PHP framework I knew that I wanted an open source project I could modify.

The list narrowed down pretty quickly, and I chose to develop the site on Drupal. Drupal is a mature PHP framework, and it has a large user base that contributes useful plug ins. I compared many different frameworks before choosing Drupal – the strength of the community was a big deciding factor for me.

Create the solution
With your new framework in hand, start coding! Take the solutions you wrote up earlier and turn them into code.

Don’t rush the coding process. Break tasks into small chunks and make sure each piece works before moving on to the next. Write functions that bring your solutions to life. Use the framework community and see if someone has already written a function you want to include.

Ask for help from friends who know more than you do, don’t be bashful. Testing is also an important part of this step. Make sure that you step into the shoes of your users and use the site as they will. Realize too that you will be working and improving the site throughout the creation process.

Learning the Drupal framework took me a good three months. I started coding by installing Drupal on a subdomain of another project and playing around with it. Early on I found out that I could avoid the headache of coding up most of my solutions from the ground up by using modules contributed by the Drupal community.

I took existing modules, wrote some of my own and customized different parts of the framework. By the time the launch date came the site was ready to go because I was able to build on a great base of contributed functionality. For the web design of the site I reached out to a design savvy friend, who thankfully has a better eye for aesthetics, and everything was set.

Outline of How-To: Create and Run a Social Networking Site