Kaveh Moravej

How To Create Your Own Twitter-Like Collaboration Platform

Let's face it, when to comes to collaborative communication tools, email is long past its sell-by date. The average person's inbox is often a mess of irrelevant and unorganised content, leaving people more stressed than they ought to be. Compare it to today's real-time social media communication platforms and it really begins to show its age. Many organisations don't know better, so they either excessively rely on email, use intranets that are about as cutting edge as dial up internet over a 14.4k modem, or they sign up with somewhat more capable proprietary services like Google Apps, Podio, Basecamp, Zoho, Yammer, Jibber, Jabber, Dando, Bingo, etc. okay, so I made those last few up, but you get the idea.

You effectively place all of your trust in a third party vendor in a fast churning industry where companies can disappear faster than a late 90s tech startup. Add to that the subscription models used by many of these services, such as per user and disk usage fees, and it's easy to see costs quickly adding up.

There is an alternative and a better way though: open source software that places you in full control of your valuable KIID (Knowledge, Intelligence, Information and Data) assets with the support of a strong community behind you. One such tool that I'll be going over in this post is StatusNet.

A Twitter-like microblogging platform, StatusNet is an incredibly valuable communications and collaboration platform for just about every organisation. It does far more than Twitter though - to begin with, you can arrange events, send out polls, ask questions and do much more to ease communications, knowledge sharing and collaboration in your organisation.

Another great feature of open source software is also of course the ability to customise. Proprietary services often throw out attempts at a one size fits all product, which either ends up being too bloated and complicated, or not enough to meet our needs. With open source, if you want to make any changes (within reason) it's easy to dive into the code or find a plugin that will do the job. Admittedly you do need some expertise to make it work, but if you or someone you know has that knowledge, then it's all quite straightforward to tweak the software to your needs.

As opposed to the 'push' of email, StatusNet creates a 'pull' platform where users can receive only that which is relevant to their interests. Don't want to follow a particular user? Easily done. Only want to receive messages relevant to your interests? Again, easily managed. Want to create and build user communities around a certain area of practice or project? No problem. Don't trust a third-party with your private company data? Not to worry, because you don't have to. Now, let's get started.

If you aren't a systems administrator or don't want to read through technical installation instructions, then please skip to the 'Your StatusNet' section at the bottom.

Getting Started


Prior to getting StatusNet running, I would advise that you or your systems administrator will have to at least be comfortable with MySQL, PHP and Apache functions. Knowledge of CSS and HTML will also help in customising the look of your platform.

The first decision that you will have to make is to choose a Local or remote web server on which StatusNet can be installed. In making this decision, you will have to keep in mind the capabilities of the server that you will be using as well as the likely load that you will be placing on it. If you're using a shared server and/or a server already under heavy load, then it obviously isn't going to be a good idea to deploy StatusNet on it, especially if it's going to have a large number of users.

You will also need to know whether your users will all entirely be based in one place or not. If you would like people to be able to access the portal off-site, then you will need to make sure that your server is externally accessible (with all security precautions taken in advance). Ideally for sensitive company portals and to avoid man in the middle attacks, you want to have an SSL certificate for your domain that will keep your data encrypted.

Lastly, your server must have PHP 5.2.3+ and MySQL 5.x packages installed.

Create a New Database


The first step that you will need to take is to set up a new MySQL database. In this example I have set up a new database and given it the name statusnet_db. For good security practice I have also set up a new user with privileges limited to this one database, which means that if it gets compromised, other databases on the server will remain safe. Make a note of your database host address as well as the username and password.

Installation


With our shiny new database all set, we download the latest release and unpack the tarball to our web server. If you want to have user-friendly URLs enabled, then you will also need to modify the accompanying 'htaccess.sample' file and save it as '.htaccess' in you StatusNet directory.

Now load up your preferred web browser and navigate to the install.php script. If you've done everything correctly up to this point, then you should see a screen like that below (minus the filled in details:
StatusNet Installation
Give your site a name and enter all of the database information that we recorded earlier.

At the very bottom of this form you will also find an option to select the type of site that you want, namely: Private, Community, Public or Single User. This choice determines who can see your portal and whether you can subscribe from one server to the activity/news etc. feed of any other user on a different, compatible server.

If you go down the public or community site route, not only will your site's content be publicly visible, but you will also be able to send messages and follow groups on different servers, so for example if you also had a StatusNet installation on your server, I could tag you or send you a direct message by sending it to @you@yourserver.example.com. Think of it as an open source self-hosted Twitter network.

In this example though we want to keep visibility and the ability to follow only to those from our own organisation, so we set it to 'Private'.

These can be changed later on by editing the generated config.php file, so don't panic if you select the wrong one or find out later that you'd like a different type of site.
StatusNet Installation

Your StatusNet


Congratulations! If all has gone well, then your site should be up and ready now. If you're familiar with Twitter, then most of the features such as hashtags and mentions will come as second nature to you. In addition to organising events, sending out Q&As, and posting polls, you will also be able to create groups and choose which people your messages go out to.

Don't forget to work on your own profile too, as you can tag yourself with areas of expertise, allowing others to identify where you can help and what you know.
StatusNet Installation
At this point you can start using it as it is, choose an alternative theme or develop your own theme to make it consistent with your own branding.

If you are the administrator, then you will also have a number of additional options such as setting character limits on posts (set it to 140 for Twitter experience), inviting users, allowing users to invite other users, setting file attachments, etc.

Additional Points


Remember, all of the content that you've generated is in the MySQL database that you created - if it goes, so does all of your data! So backup your MySQL database on a regular basis.

Also keep in mind that although many changes can be made via the front-end, some edits such as deleting groups might require you to directly edit database entries.

Try It Now


Nothing beats trying something out for yourself, so I've set up an installation on my server for you to explore. You can access it on status.kavehmoravej.com using the following credentials:

Username: testuser
password: password

Feel free to play around with the account and try out its features - and if you have any questions, just ask.

Edit: I have made the current site public, but this can just as easily be made private.

Having implemented and administered StatusNet for a number of clients and projects, it's breathed new life into their internal communication and collaboration efforts, and I think you'll find out why once you take a look for yourself.

Creative Commons Licence
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.