**Update 9/16. I’ve fixed the one unprotected feed security issue mentioned below in Step 5. Please see the Micro Blog Security Fix after reading this post, before attempting to build a similar system.**
We’re growing fast right now, very fast. It’s exciting stuff. In 2007 we spent the majority of our time assimilating as a team, determining which projects could drive the most revenue, and looking for a warehouse. We had a very good year, but 2008 has been a whole new story. Everyone knows what to do and all four of us have just been executing all day long. The result has been a 2-3 times growth in revenue every single month this year so far – pretty impressive in my opinion considering we have no employees and didn’t take any outside funding.
However we have had an increasing communication problem. Everyone was accomplishing stuff so fast that the remaining three partners had a hard time keeping up on everyone else’s progress. Minor things would slip through the cracks because of a lack of communication. We only have one day where we are all in the warehouse (Monday) so we only have one full team meeting per week. The rest of the time we’re on our own. It was becoming clear that weekly updates weren’t quick enough.
For example, we started a big sale on Detailed Image during a 1 hour down time for our credit card processing service. George and Mike were running the sale, Greg and I were the ones aware of the downtime posting. Consequently, I posted a message on the site that our credit card processing was down just as the sale was going off. Not a huge deal – the sale ended up being a success – but it highlighted an increasing communication problem that was coming from the fact that everyone was just accomplishing so much every day and didn’t have an effective way to communicate what they did to everyone else.
We needed a way to quickly communicate simple things such as “we’re out of Flex Buffers” or “a shipment of Chin Up Bars came in today” or “I made a minor fix to the shipping system”. Instantly I thought of the micro-blogging phenomenon Twitter, which allows you to post mini blog posts of 140 characters or less from your phone, the web, or a slew of other places and then others can read them on your twitter page, get updates on their phone, or subscribe to your RSS feed.
Unfortunately there are two problems I saw right away with Twitter: it isn’t secure and it doesn’t allow multiple people to post to a singular feed. When I checked the list of API apps I couldn’t find one that solved those two issues. I ultimately decided against it because of the fact that our confidential company information would be stored in their database and we just can’t have that. I wanted more control, but I didn’t want to build something from scratch. A solution needed to be something I could throw together in hours, not days or weeks.
When we met about it we talked about our other options: Skype or email. Skype doesn’t work because it interrupts you. A response is expected when you receive an instant message. I don’t need to be interrupted with a message from George telling me we’re out of a product. I just need to know within the next day or so in case I’m interacting with a customer or processing an order with that product. Skype also relies on all of us being on our computers all day long to receive messages, which we’re not. So we turned to email. It worked OK for a couple of weeks, but my biggest problem is that most of us only check our email 1-2 times per day. I don’t want to open my email every time I want to notify them of something I accomplished. I also don’t want all of us clogging inboxes up with these updates. On a basic level, email messages should be items you need to take action on, and these updates are updates that do not need a reply.
Then I had an idea: customize a version of WordPress to make a micro-blogging system to meet our needs. In addition to the multi-user and security issues, I needed to create something that integrated into everyone’s existing routine. If the solution required a new application to be open or a new web page to visit, it wouldn’t work. The only thing that really fit the criteria is our Google Apps page that we all have set as our default home page on our browser for our shared task lists, wiki, documents, and email.
Here are some pictures of the completed product. The Google Apps page:
The login page that displays when trying to access the blog:
The blog home page:
Step By Step Instructions
These instructions assume you have a domain, hosting, and a working knowledge of WordPress and development with PHP/MySQL.
- Install WordPress on your domain, making sure to uncheck the box that says “I would like my blog to appear in search engines like Google and Technorati”. This ensures that WordPress doesn’t ping search engines and blog directories with updates of your latest posts. Even though we will password protect everything, we need to make sure that none of the blog gets indexed, including the RSS feed that WordPress produces.
- Install and customize a simple WordPress theme. My choice was uTheme. The idea here being to have something simple and easy that people can use to read the updates, post a new update, and access the secure RSS feed. Everything else in my opinion is a waste. I went in to the template files and removed code for comments, categories, and other miscellaneous stuff on the sidebar. Our posts only include the title, the body, and the date posted. Our sidebar only has a search box, a link to post, a link to the secure RSS feed, and the archives. For the link to post, I linked directly to the wp-post.php page so that logged in users are only a click away from posting. In addition, WordPress returns you to the last viewed page after a post, so if you come from the home page of your blog you’ll be returned to the home page after a post, minimizing the clicks your users need to write a post. I also changed some of the colors in the CSS to match our company colors.
- Create user accounts for all potential users and modify WordPress to display who posted in the title. I created accounts for all four of us with our first name as the name on the account. I then called the <?php the_author(); ?> function to display the author of each post everywhere the title is displayed (home page, permalink page, and feed). This way I can make a post and my partners can instantly know that I wrote it. For example, if I wrote a quick post entitled “Inventory updated” WordPress would display it as “Adam: Inventory updated”.
- Install the WordPress Password Plugin. This password protects each page of the blog, preventing unwanted visitors or spiders from viewing the site. In the configuration file you can set your password and can identify specific pages to not be password protected. You should disable the password protection for the RSS feed (we’ll password protect this in a different way). I also customized the login.php page of the plugin to look a bit better aesthetically.
- Use FeedBurner to create a password protected feed. “Burn” your unprotected feed and go to Publicize -> Password Protector to password protect the feed. Use this feed for everything related to your blog. DO NOT give anyone the URL to the original unprotected WordPress feed. That is not password protected and is most definitely the weak point of this system. I’d also advise against putting the URL of this blog in your robots.txt file – it isn’t going to be indexed if you follow these steps, but by putting it in there hackers could potentially find the location of your feed.
- Use FreeMyFeed to securely pull your feed. Most (almost all) feed readers do not support password protected feeds like the one we just created. Enter FreeMyFeed. They provide you a unique URL for your feed. As long as you don’t give this URL away, you should be safe to use this feed in any manner that you use a normal feed. According to their site: “Usernames, passwords, feed URLs and feeds are never stored on the server. Usernames, passwords and feed URLs are only parsed from the alternate URL to retrieve your RSS feed on the fly from the original source and then are discarded.”
- Install the CustomRSS Google Gadget. This ties it all together for us. Use the feed from Step 5 to securely pull the headlines from your micro blog. You can click on a link and the gadget will drop down and display the full post, meaning you do not need to leave the Google Apps page unless you want to post. I customized the gadged by linking the “Pure Adapt Micro Blog” title to our micro blog home page and then modified the aesthetics to match our colors.
Other optional enhancements – I developed this for our needs, but there’s a lot more that can be done. You can post via email to WordPress. Since you can send email from a mobile phone, you could post from your phone. You can also display the RSS feed in your feed reader or Vista desktop RSS widget (I do both). WordPress plugins like the SMS Text Message plugin could be configured with a few hours of work to send text message updates to all users after every post. I’m sure there’s more that I haven’t thought of – the possibilities are really endless.
Now I feel like we have a communication system for everything. We still use meetings, phone, email and Skype, but the void left by those is now filled. A few weeks in we’re all loving it. Problem solved!