Thursday, June 16, 2011

The Cost Of Free

I recently setup a website for my wife's new business (Avocado Diva) - and, being
the family geek, I had free reign to use whatever technology I wanted to. I also
needed to do all the "normal" stuff - get the domain, set up the hosting, set up email accounts, ftp accounts, etc., etc.


However, my wife... well... she's not the most "technically inclined" person in the world (ok, at all - sorry, honey!) - so I knew that I didn't want her to have to rely on me to publish new content on the site the "good old fashioned" way - with a text editor and FTP. That was just a recipe for disaster.

She neeeded to be able to update content, add photos, blog posts, all by herself.

That means that I needed to set up a CMS (Content Management System) for her.She also needed to sell prodcuts through the site, track visitor stats, etc. That means that I would need an integrated shopping cart as well.

Now there are a lot of different ways I could have gone here. There's a great CMS

for Servoy called Sutra CMS by the wizards at Data Mosasic. It uses the AWESOME, next-generation platform, Servoy - and both are open source (which is a good thing).

While that CMS system is really, really cool - it was lacking some of the features I needed to get the site up quickly. That left "standard" open source, Ruby or php-based offerings. After looking at a bunch, WordPress, SilverStripe, MODx, etc. - it all came down to two choices: Joomla or Drupal.

Being on a tight budget - and needing to get SOMETHING going quickly - I settled on Drupal because it has a ton of FREE modules that you can use to extend the core functionality - and it's simple to install and setup...

Oh, and it's FREE as well!

Whoo hoo! Off I go - and - for once in my life - I'm not having to write/code/program the whole thing myself! This is going to be GREAT!

NOT.

Don't get me wrong - it was dead-bang simple to install and get the basics working. The installer they have was easy, intuitive and worked well the very first time I tried (after a little digging and watching a setup video on YouTube).

I was able to quickly download and install a couple of different "themes" (the layout and styling of the site), upload the logo, set some basic colors - So far, so good. I was able to create a couple of blog posts - and install some FREE modules for the shopping cart - and it was pretty straight forward.

Until... I wanted to "color outside the lines" a little.

I wanted certain pages to contain certain content, and alter the layout slightly for other types of pages, and I wanted the "Shop" to look a certain way, and I wanted to be able to feature certain products in certain sections, etc.

Thus began my descent into open source HELL.

There are blocks, views, panels, content types, settings, modules, all of which need to be configured. I watched hours of YouTube videos, combed the forums and module-specific help site. I dabbled, tinkered, screamed and yelled (a lot) and after a fair bit of cursing (and completely re-installing everything from scratch 2 times) - I was finally ready to just chuck it all and go the hand-coded route.

And then, I finally "got it." I took a deep breath, a sip of mid-priced cabernet, and put my mindset into "programmer mode." I started poking around the raw php files and disabled all the extra modules and turned them on one at a time.

I found that if I thought, not as a "user", but as a "programmer" - then everything started to make sense in a twisted, you-can-only-make-sense-of-this-if-you-can-write-code sort of a way.

Things started to click. I successfully created the content types, blocks, views, and panels that I needed to make my vision work. Then I had to brush up on my CSS skills - since the entire thing was styled in CSS (no tables or other such "old fashioned" code).

The CSS is dependant on the theme. The theme is dependent (sometimes) on a "base" theme. There are folders, files and specially-named templates all over the place. I wound up "hacking the core" of a couple of files (a huge no-no if you ever want to upgrade the theme later on) - but, in the end, I got something together that is half-decent and works.

The huge learning curve is the true price of FREE. The level of stress and frustration in trying to accomplish what "should be easy", the hours of trudging through endless tutorials that assume you know 5 other concepts that you don't know, the sheer volume of conflicting advice on setups and debugging and the ever-present "cannot duplicate that - it works here" postings are the price you pay for FREE.

No comments:

Web Analytics