Mark Allen Neil photo

Mark Allen

An online résumé, blog, biography and digital sandbox


Choosing the Symphony CMS

Posted 2009-10-14 in Web

Choosing a CMS

When I decided to do another website, this time a “personal” site, I looked around for another CMS to use. I’d done the “hand coded” thing at Sparklegram and then very thoroughly explored Drupal while doing AuthorCollector. So I figured I’d explore something new. So I did a ton of research… there are many interesting choices available.

Assessed alternatives

  • I played with WordPress a bit, got a functional blog up-and-running in under 30 minutes. Very easy to use, yet feature rich. Yet it is blogging software… while I planned to blog (this journal, for example), I wanted to do more. Everything I read said you could coerce WordPress to do much more than just blogging, but I’m into elegant solutions. Force-fit solutions just aren’t elegant.
  • I read up on other PHP systems and frameworks, such as Joomla, CodeIgniter, ExpressionEngine, Modx… but ditched the idea of any of these choices. I figured to maximize my learning experiences, it didn’t make sense to adopt yet another PHP framework.
  • So I looked into non-PHP solutions… such as Catalyst (Perl) and Django (Python). I didn’t go this direction either as it didn’t look like my hosting solution (GoDaddy - which I’m likely to dump soon anyway) was well suited for these frameworks.
  • I considered going back to hand-coding a site, only this time using MySQL and perhaps a templating system. I looked at the Smarty templating system, did some reading, and got the feeling that this way of designing sites was falling out of favor. Plus I had done my share of theme tinkering editing Drupal PHP files.

Templating and XSLT

As I was considering the “best way to theme a website” question, I stumbled on the Symphony CMS website. Somehow the idea of using XSLT made perfect sense… as the “T” stands for transformation, which can be thought of as templating. The idea of using XSLT seems not only unique in the CMS world, but struck me as the right thing to do. What better way to template a site than using the web standard designed for that purpose? Not to mention that I’m a big fan of XML and there is great appeal in dealing with my data as XML.

The Symphony CMS doesn’t appear to have a large following… but it does seem quite a smart following. This is pretty important to me as smart folks tend to adopt superior solutions… the most marketed and common solutions often aren’t very good at all (think “Windows”). The Symphony community answers questions immediately and without flaming you for asking ignorant questions.

A really cool showcase site

Another reason I gave Symphony a whirl was I really liked one of the sample websites presented Ravi Rajakumar. For this site, I want to do something similar… to be able to make available different facets of my life (personal, professional) and to present different views of each. Interestingly enough, as I learned Symphony and studied what Ravi had done, I found his really cool site was less about Symphony’s capabilities and more about his great web design skills.

Symphony “issues”

  • Documentation is sparse - I’m finding myself spending a lot more time doing basic things in Symphony than I ever did in Drupal. However some of this is because I’m in complete control… in Drupal I benefited from a lot of stock code, utilities, add-ons and practices. If it weren’t for the helpful DesignProjectX tutorials, I’d have probably moved on by now.
  • Distractions - I find myself distracted by the approaches taken… not distracted in a “bad way,” rather distracted as in “why did they take this approach?” or “how does this even work?” For example, I wrote my own code in PHP to transform XML and XSL into XHTML… enough to understand how it works and to realize I’d be wiser to just use Symphony than to reinvent.
  • Data structure - Understanding how data is structured is an issue. For example, a “Hello world” page takes 88 MySQL queries (or so) to construct and send the page (contrast this with <40 queries for a complex page at AuthorCollector). 88 queries is a somewhat insane number. It has to do with the extremely granular way data is stored… each type of data is stored in its own table. On the Symphony forums, there are threads discussing this granularity… arguments that this approach is more flexible (it is), leads to much faster queries (it might)… and therefore scales better on large sites (makes sense). For my tiny little site though I’ve got to wonder if this makes sense. Another observation is that it is better to have 100x10ms queries than 1x10s query… definitely true. However, my host GoDaddy seems to balk at serving up a lot of queries… I find that the probability of failing to serve a page is somehow proportional to the number of queries. Might be related to my allocation of resources on the host system.

A catalyst for change?

This last point on lame GoDaddy hosting isn’t a flaw with Symphony, but if might limit adoption. The failures to serve pages however may be the straw which breaks the camel’s back for me… time to change hosts. I still have a prepaid year at GoDaddy… so I’ll lose $50 by switching hosts… not to mention the added, higher costs at a “real” host. But I think it will be worth it… I can try Rails for instance… or Django. And it is fun to be in total control of your system. My leading choice is Slicehost… they seem to deliver a lot for $20/month. A move from cheap hosting to a VPS host will give me lots to write about in this journal.

Website Credits | Symphony | Fluid 960 Grid System