I'd like to share a bit about the tools I recently used to build a new travel website, MuchaCostaRica.Com I launched this week with two partners. Actually, this entire post is a thinly veiled attempt at getting some Google juice over there, but if you're interested in building websites and better tooling, read on.
The obvious analogy when mentioning tooling is to building construction, and it's spot on. I'm in the middle of some home renovations, and one tool I've purchased is a Paslode nailer, and it can never be overstated.. Having the right tools for the right job will turn a tedious job into a joy. Hammering nails is about the worst jobs I can imagine, especially if you have to do a lot of them. You dent the wood, hit your finger, bend the nails over. After a lot of swearing you get the job done, but it's hardly a joy to complete. Enter the Paslode nailer. I completed a staircase recently, and the job was a joy to finish. In fact, it's so fun to use, I often wander my house looking for things to nail.
Choosing The CMS
When I sat down to look at my options for building this new travel site, the first thing I did was look at Open Source CMS tools. I've had a lot of experience with DotNetNuke, Joomla, and other CMSs, and the prospect of deploying using these tools was not something I was looking forward to.
Joomla (sorry to any fans out there) is just not at all a tool I like working with, and I'll leave it at that. Besides, I'm not a huge PHP person, and should I need to get into the guts of the app, I'd be struggling.
DotNetNuke, while always holding a dear place in my heart, was not for this site. I've recommended it in the past, deployed many sites using it, and probably will use it again in the future, but I wasn't comfortable jumping into development of this site with it. I needed a CMS without limitations, and DNN is limited in some areas.
James Avery first turned me onto this CMS, and at first blush, I was a bit skeptical.. Umbraco is an ASP.NET / SQL Server based CMS, which uses XSLT for it's rendering of content. I wasn't sure I liked having to learn some XSLT but after using Umbraco for the past few months, I'm completely sold on using XSLT for site skinning.
Umbraco is UBER extensible. Every piece of content you create is based on a document type that you setup. Need a new field for adding a video to a page? Simply add it to your document type. Need to render a page slightly differently? Add a new document template. Need to do something even more complicated, such as adding some sort of conditional layout? Add some XSLT and you're done. The separation of content from rendering within the CMS is a thing of beauty.
Umbraco is an absolute JOY to work with. XSLT is is not all that easy to learn and debug, but once you see what you can do with it, you quickly realize it is the absolute perfect tool for shaping HTML. This flexibility allows you to implement your design exactly as your designer envisioned, and quickly add new features and respond to business requests. During this entire site building process, I was asked for a hundred odd UI implementations from my partners, Rayna and Marina, and each and every time, my response was "sure I can add that" and a half hour later I was done. In the past, using other CMSs, I would have been writing ASCX user controls, or hunting for a component somewhere, just to add something simple. With Umbraco, it's a breeze.
So, now, like my experience with the Paslode, I'm completely charged about building web sites now. I used to groan when facing a new web project, bug when you have the right tool, it's a joy.
Umbraco only really provides the content, most of the skinning is left to you. This. in fact. is what you want from your CMS. You dont' want your CMS providing UI elements, you want the UI separated from the content engine so you're free to mold your content as you see fit. So, when it came to the UI, I made heavy use of JQuery. Many of you are familiar with jQuery already, but if not, head over to jquery.com and don't ever hand code a web UI element again. For photos and sideshows, I've used the jQuery Lightbox Plugin (balupton edition) and for content carousels, i've used jCarousel. When it comes to needing some more complicated AJAX or other browers scripting components, I'll have my choice of adding any of the myriad jQuery plugins available. If you do web work and you haven't checked out jQuery, you owe it to yourself to take a day and explore what jQuery has to offer.
Viddler was the perfect video hosting platform for us. Not only do they host your video, you can brand your content, and there's tagging and commenting and a customizable player. What's not to like?
Comments are always a pain to implement properly. Disqus fixes all that and sets up in minutes:
Disqus, pronounced "discuss", is a service and tool for web comments
and discussions. The Disqus comment system can be plugged into any
website, blog, or application. Disqus makes commenting easier and more
interactive, while connecting websites and commenters across a thriving
We used Google Translate, Google Docs, Google Analytics and Google Webmaster Tools. Ah thank you mother Google. I think it's worth mentioning that these tools are free, and do what they're supposed to do really well.
So, overall, developing MuchaCostaRica.Com was a joy (so is going to Costa Rica, BTW, and if you want a deal on travel, visit us and use the promo code "DEVLICIOUS").
As they say in Costa Rica, Pura Vida!
09-25-2008 6:11 AM