IT|Redux

How To Build a Website with Office 2.0

Thursday, June 15th 2006 | Ismael Ghalimi

There are many tools one can use to develop a corporate website, ranging from desktop applications such as Microsoft FrontPage to more sophisticated portal offerings such as Alfresco. One can even find some great online applications to do the job, one of the best certainly being NetClime’s SiteKreator. When time came to redesign the intalio.com, I opted for a best-of-breed collection of Office 2.0 applications. Here is what I learned in the process.

Requirements

Before I dive into the details of the implementation, let’s take a look at the requirements I initially set for the project. First, I wanted something that would comply to the rules for Office 2.0: no client-side application should be required, collaborative content development & publishing should be supported, and every bit of the solution should be avilable from at least two independent sources. Second, I wanted to limit the amount of coding to the bare minimum. Third, I should be able to get the job done in less than a week’s worth of work. Fourth, the resulting website should cost less than $25 a month to host, including the cost of all third-party services involved. To summarize:

  • No client application other than a web browser
  • Collaborative content development & publishing
  • No single-source component
  • Minimum coding requirements
  • No more than 5 man-days worth of work
  • Less then $25 a month to host

Platform: WordPress

Selecting the main platform certainly was the most important decision. I wanted to build the entire website as a blog, so that collaborative content development and dynamic content syndication would come for free. And because I was already familiar with WordPress, I decided to use this fantastic blogging tool as the underlying engine for the whole website.

From a hosting standpoint, I could have gone with any of the hosting partners recommended by the good folks at WordPress, but because PHP and MySQL were already installed on our web server, I went for this option instead. My only recommendation is to carefully select your hosting partner should you decide not to manage your own WordPress instance. On that front, I find Yahoo! Web Hosting far too brittle for my taste and am currently contemplating a future migration to another hosting provider for IT|Redux.

Configuring WordPress was very easy, but I had to install a couple of plugins so that I could embed JavaScript and PHP code within my posts. For JavaScript, I installed TextControl, which allows you to take complete control of text formatting options on your blog. For posts that embed JavaScript code, I just select the ‘No Formatting’ and ‘No Character Encoding’ options, and everything works fine. For PHP, I added the runPHP plugin, which allows you to embed PHP code within your posts and get it evaluated on the server side. It worked well until I realized that activating it broke the RSS feed generation capabilities offered by WordPress. The solution was offered by hnldesign there. Once that problem got fixed, I focused on improving the website’s look-and-feel.

For that, I started from the popular Blix Theme developed by Sebatian Schmieg. I hacked it quite a bit to turn it into something that would look more like a corporate website than a personal blog. Most of the work involved fairly simple CSS and PHP coding, and certainly accounted for more than half of the time I spent on the overall project. If you do not have the skills for that type of work, you might want to ask Brian Benzinger for some help. He and his brother designed the Solution Watch website, and it’s one of the most impressive pieces of work I’ve seen done with WordPress.

Database: Dabble DB

Intalio has two websites: a corporate website hosted at www.intalio.com and a community website hosted at bpms.intalio.com. Because the corporate website is entirely open to the public, I decided to use an online database for storing most of the website’s structured content and to use JSON to syndicate content from the database to the website. Dabble DB was the first Office 2.0 database to support JSON syndication and has the best user interface currently available, even though Zoho Creator is catching up. Therefore, I opted for Dabble DB and created categories (also known as tables) for Customers, Investors, Partners, Team Members, Press Articles, Press Releases, Product Features, Quotes, and Training Schedules. For example, you can take a look at a JSON feed for our product’s features and an ICAL feed for our training schedule.

And if you’re wondering why an online database such as Dabble DB is a better option than the MySQL database used by WordPress, just start playing with Dabble DB’s user interface, and you’ll realize that it has a far better interface than any web-based administration tool available for MySQL. As long as it does not matter that the data stored into Dabble DB can be seen by anyone once you publish it, I do not know any easier and faster way to get a small relational database up and running. Now that Dabble DB went live, you really owe it to yourself to give it a try if you have not already.

Documents: Zoho Writer

Even though most of the website was developed as WordPress blog posts, some pieces of content such as press releases were developed with the Zoho Writer Office 2.0 word processor. There are multiple reasons for that: first, as any PR person will tell you, many journalists would much rather receive press releases as Microsoft Word documents attached to an email — go figure, and Zoho Writer offers the best support for the Microsoft Word document format currently available from any online word processor. Second, press releases have to be developed in collaboration with many customers and partners, and creating dedicated WordPress accounts for them is not a scalable solution. Instead, using Zoho Writer’s sharing capabilities is a much more efficient way of getting the job done. Third, integrating a real word processor into the website’s architecture opens up the door to the collaborative development of white papers and marketing brochures, which is something that I want to add down the road.

Integrating with Zoho Writer turned into an interesting challenge. Currently, it does not provide JavaScript badges that would have allowed me to publish the content of a press release (example) on the website (example). I asked the good folks at AdventNet to develop such a badge, but it won’t be available for another week, and I just could not wait. So I decided to use the RSS feed instead, without fully understanding what I was getting into.

Initially, I did not want to embed any PHP code within regular posts, so I looked for a way to translate RSS into JSON. I first started playing with John Ressig’s RSS to JSON Convertor. I then developed my own converter by installing MagpieRSS and JSON-PHP, following Dennis Rowe’s instructions. What that meant is that a press release was fetched from an RSS feed, translated into a JSON feed by calling a proxy written in PHP, then parsed on the browser side by some JavaScript code. It worked, but it was slow and would not have allowed search engines to index the content (many thanks to Assaf for the tip). Eventually, I decided to skip the JSON stage and use MagpieRSS to fetch the RSS feed directly from the PHP code. This is when I had to install the aforementioned runPHP.

Beside the fact that integrating with Zoho Writer turned into a fairly sophisticated exercise, it allowed me to support a very nice workflow process where press releases are developed in a collaborative manner through online document sharing, and published on the website by simply clicking on the ‘Publish’ button. This experiment gave me a good feel for what Office 2.0 really is all about and the potential for it.

Images: Flickr

Most of the images used by the website are stored on a Flickr account. These currently include banners, logos, screenshots and large icons. Small icons are still stored on WordPress because they came with the Blix theme and I did not bother to migrate them to Flickr.

There are several reasons why using an online picture management tool such as Flickr makes sense. First, through the use of tagging, it offers a far superior user interface for file management than what WordPress provides. Second, when manipulating large images such as screenshots, Flickr’s automated generation of multiple image sizes makes it easy to display thumbnails on the website without having to resize the image manually, or letting the web browser download the full-size image when just displaying the thumbnail. Third, images can account for a fairly substantial amount of your website’s bandwidth consumption, and Flickr offers free account with unlimited download bandwidth. Bandwidth can be cheap today, but free is always cheaper than cheap as far as I’m concerned.

Feeds: FeedBurner

Syndication feeds are automatically generated by WordPress, Dabble DB and Zoho Writer. I created a list for them using del.icio.us and displayed it on the website using a JavaScript badge which del.icio.us calls a linkroll. The website’s main feed produced by WordPress includes all pages, and some of them embed PHP code which cannot be processed on the feed because of a bug with runPHP. As a result, I used a category feed instead, restricting it to Intalio blog posts, and this is the feed I gave to FeedBurner for the Intalio Feed. I then registered the Intalio website on Technorati.

Profiles: LinkedIn

For the profiles of our team members, we opted for LinkedIn web profiles such as this one. Unfortunately, LinkedIn does not support syndication for them yet, and the user agreement prohibits the use of content harvesting tools. I hope that the good folks at LinkedIn will change this so that we could syndicate biographies from there. Request to LinkedIn: please…

Miscellaneous

Once everything was in place, I added a couple of additional tools that were presented in a previous post on getting started with blogs. These included Google Analytics for monitoring the website’s traffic and FeedDigest for processing RSS feeds without having to write any PHP code. I am also currently playing with Zoho Sheet, which can generate charts from tabular data and syndicate them as standalone images. I might use it to display some statistics regarding our customers, such as vertical industry repartition and geographic distribution, but I need to find an easy way to feed Zoho Sheet with data syndicated by Dabble DB. Of course, I could migrate to Zoho Creator, but where would be the fun in that?

To summarize, here is the list of tools I used for the website:

At this point, I spent the equivalent of four long days of work developing this website, and we are spending exactly $25 a month for it because we upgraded to a Basic Dabble DB account in order to support multiple users (up to 5). If we had to pay for WordPress hosting, we could downgrade to the $10-a-month Personal account and get WordPress hosting for less than $7 a month, which would still fit the bill of $25 a month.

Also, all the services we are using have good-enough alternatives, should we ever become dissatisfied with any of them. This means that all my original requirements have been met successfully. I don’t know about you, but I find the whole thing pretty damn cool. If you have suggestions for improvements, feel free to drop me a line.

UPDATE 6/20/2006: Good related article by Dion Hinchcliffe.

Entry filed under: Office 2.0

18 Comments - Add a comment

1. Sandy Kemsley  |  June 16th, 2006 at 6:39 am

Great post! I’m considering redesigning my corporate site (which is much less complex than yours) in WordPress or similar, and you have some great ideas here to get me started. I also use Yahoo! Web Hosting, what kind of problems have you had with it?

2. Ismael Ghalimi  |  June 16th, 2006 at 6:47 am

Sandy,

Thanks for the feedback. I found Yahoo!’s hosting of WordPress to be quite fragile, especially when publishing long posts. More often than not, requests for publishing will time out, which can result in some loss of content if you’re not careful. Updating multiple posts at once seems to make matter even worse. This thing does not like to be rushed…

Also, there have been several instances where the database configuration got corrupted and WordPress could not connect to it. The worse instance lasted for about half a day. Last but not least, Yahoo! is pretty slow at updating WordPress with the last available version, which can be an issue when using many plugins.

Let me know if I can be of any help for your project.

3. Myles Braithwaite  |  June 16th, 2006 at 12:57 pm

Aren’t you a little scared that Flickr will srew you?

4. Ismael Ghalimi  |  June 16th, 2006 at 1:31 pm

Myles,

Very good point. I guess I’ll have to make a backup on WordPress then.

Thanks for the tip!

5. Build a Website&hellip  |  June 16th, 2006 at 8:16 pm

[…] Ismael Ghalimi of IT|Redux has made an excellent writeup that will help you build a website with Office 2.0. He goes over each service in detail and explains how and why you should use it for your website. […]

6. Woeba&hellip  |  June 17th, 2006 at 1:40 am

[…] Rundown of how to build a corporate website with Web 2.0 services. […]

7. Jiju Thomas Mathew  |  June 20th, 2006 at 9:42 am

Great documentation, worth reading. And it has triggered my brains too. I should think of redesigning a couple of my sites using WordPress with the tips from this site.

8. Common Sense&hellip  |  July 20th, 2006 at 2:39 pm

[…] The future of custom-built small websites […]

9. IT|Redux&hellip  |  July 25th, 2006 at 4:07 pm

[…] Overall, I like the changes that have been introduced, even though they remain quite cosmetic. A couple of much-needed and often-requested features remain to be implemented though. One would be to add user IDs into CSV contact exports in order to facilitate reconciliation with an external contact database. […]

10. Intalio&hellip  |  August 7th, 2006 at 11:22 am

[…] The http://www.intalio.com website, which happens to be implemented as a blog, is now ranked 34,485 on Technorati. It’s pretty good, but it could be a lot better. So if you have a blog and like our product, please link to our website from as many blog posts as you can, for this will help improve our ranking. The same is true for Google, where Intalio is the only BPM vendor to appear in the top 10 results when typing BPMS. Again, if you like what we are doing, please help us spread the word by linking from your blog or your website. […]

11. Russ Stalters  |  August 23rd, 2006 at 5:36 pm

Wondered who you finally chose for hosting?

12. Ismael Ghalimi  |  August 23rd, 2006 at 7:39 pm

Zoho offered hosting. I could not refuse.

13. Kent Stanley  |  October 16th, 2006 at 1:17 pm

Your post is excellent for a beginner like me. Just out of curiousity, I set out to validate intalio.com in w3.org. I was surprised to find tens validation errors under every doctypes. My question is: is careful coding not a priority to you? As for me, I spent ages getting my pages to validate properly. Am I going in the wrong direction? Your comments will be appreciated.

14. Ismael Ghalimi  |  October 16th, 2006 at 1:26 pm

Kent,

You’re absolutely right: validation was not my priority, and the code could be significantly improved. The same might be true for the IT|Redux blog by the way. We will come up with a new design soon, and validation will be one of our goals. You’re definitely going in the right direction.

15. Mark  |  November 18th, 2006 at 9:27 am

Ismael,

For a year now I have kept this excellent blog entry in the back of my mind as a starting point for developing a new website. That time has finally come.

If you were going to update this blog entry with all that you have learned in the last five quarters of managing the Intalio, IT|Redux, and Office 2.0 Conference websites, what would you NOW recommend to build those sites?

You also mentioned that a new design will be coming soon in the comments. What is driving the update (limitations?), and could your new design be a basis for updating your recommendations here? Thanks!

16. Ismael Ghalimi  |  November 20th, 2006 at 9:04 am

Mark,

Good questions!

Today, I would use either SiteKreator or Synthasite, in combination with WordPress for the blogging part. The new design for IT|Redux is mainly cosmetic. We want to have our own design, instead of a modified version of the Blix Them created by Sebastian Schmieg, which we are currently using.

17. buildyourwebsite.info&hellip  |  January 11th, 2007 at 7:02 pm

[…] I wanted to build the entire website as a blog […]

18. Matrix Systems & Technologies, Inc.  |  September 30th, 2007 at 7:27 am

I wonder where Intalio is ranked now? Considering they have received so much praise over the last year with their open source BPMS.

Trackback this post  |  Subscribe to the comments via RSS Feed

Leave a Comment

Required

Required, hidden