20 May 2011

What Symphony means to me

Back when Alistair Kearney and I began our journey into the web industry, we were still in university studying information technology (software engineering major). I had a couple of years of experience working as a mid-level graphic designer prior to my studies and it was in my university years that I really found a passion for the web.

We fell into the web content management industry by accident. Our intention was to continue our web agency business after graduation, but we found the content management scene at the time rather lacklustre. The deeper we dug into creating our own system, the more I fell in love with it. I think because of my interest and skill in both visual design and system design, creating a web content management system was the perfect outlet for me.

The web is made up of many, many components; and somewhat unique to this industry, a true web developer must understand, use and merge technologies across a wide spectrum of disciplines. Symphony represents the bridge that brings these technologies together. As both a developer and a user of Symphony, the platform to me is the reflection of who I am and what I do as a web developer, and the exact same can be said about the majority of Symphony’s users.

My history with Symphony

Our first attempt at a web management system was back in 2003; it was called ModMatrix. Alistair and I created it to run our own blogs, and soon after, it was powering the blogs of several of our friends and families. ModMatrix was our first foray into managing content with XML. The templating system consisted of a mix of custom XML tags and PHP code. Alistair was responsible for the code architecture, while I took direction of system's architecture. The collaboration was unstructured and casual—Alistair and I oftentimes exchanged roles and gave each other ideas and inspiration. That said, I was not a fan of PHP (it was version 4 back then).

A year after ModMatrix's debut, I remember a critical decision we made one day during a phone call. It's only recently that the impact of this decision dawned on me; Alistair and I decided to do this professionally. We rented an office and started looking for other web enthusiasts interested to join our cause. Due to our youthful naïveté, we got into the business without a plan, without a strategy of generating income or even an idea of what we wanted to do beyond, "doing stuff with the web." What we had though was a great office, a slowly burning savings account (my savings account) and a truck-load of enthusiasm and passion. The only asset we had was ModMatrix so while we were scratching our heads figuring out a business strategy, we kept ourselves busy with ModMatrix. In hindsight, even though we made the decision without a solid plan, if we hadn't made this decision, Symphony wouldn't exist today.

Not long after we started working out of our new office, we discovered that Michael Simmons, an acquaintance-of-an-acquaintance on the web, had been working on a new blogging platform called TypeWorks. After talking to Michael, we realised we had similar tastes in design and shared similar development philosophies. It was an exciting time as Alistair and I had a tech we could bring to TypeWorks and Michael had a great admin interface we could use. As a plus, Michael also had a built-in audience who were already following the development of TypeWorks. During this time, Michael helped with frontend development. It was great to have another person to bounce design ideas off of. But Michael's involvement with the project was short (but sweet) and left the project soon after the preview build was unleashed to the public. Luckily, we found Scott Hughes just before Michael left.

Scott was instrumental in bringing a great many new ideas to the system; ideas and implementations that still exist in the system today. Before joining the team, he had only a small amount of experience with the web. I think it was due to this lack of experience that Scott was able to bring radical yet ingenious ideas to the table. As Scott worked on the dynamic and interactive aspect of Symphony, he also naturally took the responsibility of architecting the administration UI’s design and behaviour. While I was still doing a fair amount of design mockups and frontend development, I found a new passion within the project—the system's templating layer. Incidentally, the search for a new template system coincided with the rebrand of the system to Symphony. Our system, similar to many systems of its time, used a custom templating language (albeit ours was in an XML-esque format). At the time, I felt the templating layer was the system's biggest shortcoming so I took it as a personal crusade to find a solution that I felt would solve our problem.

This is when XSLT entered the equation. I've learned about XSLT from Daniel Bogan, (also known as waferbaby) when he first used it for his blog. Soon after, Garrett Murray started toying with XSLT also. Ironically, the early pioneers left the XSLT bandwagon citing the language's high learning curve did not think it was suitable for widespread adoption. This was just when we decided to jump whole-hog into the world of XSLT. Regardless of the public perception then, XSLT was love at first sight for me. I loved its rule-based approach and its roots in functional programming. Moreover, as a developer who enjoys HTML and CSS, the language fit snugly between the two front-end technologies: the structure is similar to HTML with a selector concept similar to CSS.

Now, I say this without hyperbole, Symphony's philosophy and direction didn't really solidify and take-off until we started thinking in terms of XML and XSLT. We realised that every data structure we could think of could be represented in XML and every frontend behaviour could be generated using XSLT. If my passion for Symphony before XSLT can be described as lust, after XSLT it would certainly be called love.

Falling out of the community scene

Since the project's public release back in 2005, I had been a vocal advocate of the system. While Scott and Alistair worked hard behind the scenes, I took it upon myself to promote the system while also answering every question thrown on our forum. During this period, I also spearheaded the Symphony podcast, wrote articles and produced tutorial screencasts. I loved the system and I wanted the world to know about it.

All this passion however did not translate to a sustainable business. As the system became more complex and the community began to grow, the responsibility and amount of work our team had also grew. On top of which, Symphony itself did not generate any revenue, so our time was consumed by work that did not translate to an income. Symphony did however help us get clients that wanted us to build sites with the system. We worked every other month on client websites to keep the project going. This arrangement was certainly not financially lucrative; we were barely making minimum wage. As the need of a proper income became more dire, most of my time was spent on client work while I tried to keep Scott and Alistair's time dedicated to Symphony as much as I could. At the time, I felt conflicted since my interest was in Symphony development and I did not enjoy dealing with business operations and doing client work. However, I knew what I did was essential to keep the project going.

Around the time Symphony 2.0 was announced, Airlock, an digital agency based in London approached our team to see if there was any opportunity of collaboration. We started out by providing technical support, then we progressed to building extensions, and soon after, we were helping with entire project's build. The collaboration helped provide the team with a stable income while Airlock was able to rely on a consistent level of support from us. The collaboration was mutually beneficial and Airlock's involvement came at the right time as we were barely making a living.

As with any collaboration, Symphony 2's development staggered while we found our feet in our new working structure but eventually I believe we managed to get a good routine going. Airlock's support helped keep the project going but the work outside of Symphony development ultimately caused a rupture within the Symphony team. Even though all three members of the team were earning an income, there wasn't enough to keep all three members on board. The team had to make some hard decisions and the outcome was the departure of Scott from the team. Having one member down and a growing amount of work only added more pressure to Alistair and I. Scott's departure and the stress from a piling amount of work eventually became the catalyst for Alistair to reconsider his career, but more on that later. The work took several stressful months to settle before we managed to get back to a more normal working routine but we knew that this wasn't a sustainable working structure.

Up until this point, I was spending 30% of my time on the community and 70% of my time split between business operations and client work. I knew that I wasn't spending enough time on the community side; for the first time, I had more than a page of unread discussions. The Symphony documentation was also severely lacking and this was hurting the adoption of Symphony. This is the time when we asked Craig Zheng to join our team to help with managing the community and also help with system documentation. Craig's involvement reinvigorated the team and during a window of about two months between client work, Craig, Alistair and I worked on the new version of the Symphony website, which is actively used today.

Symphony's website development had been my reintroduction back into doing something for the platform and the community since Symphony 2.0. It was also the most enjoyable time I've had working for a long while. Not long after the introduction of the website, Alistair finally decided to leave the team to pursue a life of law enforcement. In fact, this coming Monday, 23 May 2011, is when he officially joins the police academy. It would mean a lot to both him and I if you could drop him a congratulatory message.

After Alistair's departure and Craig fully settled in, most of the community responsibilities had fallen onto him. But being only a team of two, all of my time was quickly consumed by client work and business operations, and before long, each of us was fairly overwhelmed.

Incorporation of Symphony CMS Ltd.

After the success of Symphony 2, the launch of the new website and finally, proper documentation, Joseph and I started talking about taking the next step for the platform. We felt that it was the right time to incorporate a business to establish a commercial presence for the platform. Before incorporation, Craig and I were still on a suboptimal income and the hope was for the new incorporation to generate enough revenue to keep Craig and I on a comfortable salary. The new company would introduce a new collaboration and support structure with agencies that will help maintain the company's staff and expenses.

It worked for a while. I still didn't get time to spend on Symphony or the community, but we were earning enough to pay a comfortable wage to both Craig and myself. We were even earning enough to take on a project manager to help reduce my workload and hopefully afford me time for Symphony. But our initial success was difficult to sustain, and it wasn’t long before I was burning the candle at both ends, still not generating enough income to sustain all of us, and not getting to spend any time at all on the platform I so loved.

After several months, I realised I needed to reassess my own priorities along with the priorities of the platform. I missed working on Symphony. And despite all the pressure I felt to sustain the company and provide for its employees, it became clearer and clearer that the platform itself didn’t depend on our success as a company. This thing I had helped create was becoming bigger than us, and I was missing out on it. So after a lot of soul-searching, I decided that it was time for me, for us, to change course.

If you haven't done so already, please check out my companion article, “Embracing Open Source Development”.

The plan for me

I want to spend my working hours on Symphony. That’s where my journey started and that’s what I love doing. I also want to spend time advocating Symphony by giving talks, producing podcasts, and creating tutorial articles and screencasts, just like the glorious days of yore. I want Symphony to be part of my life again, and I want to be part of the life of the platform.

What this will look like in the long term is not clear. But I know where I’m going to start.

In the coming weeks, I’ll be establishing my own Symphony consultancy. I haven’t nailed down all the details just yet, but my hope is that this will give me a way to work with Symphony every day, and to help grow the platform and contribute to its ecosystem and its community. It’s an exciting step, and one that I can’t wait to take.

In the meantime, I’m looking forward to jumping back into things and reconnecting with all of you. So get used to hearing from me again.


Looking forward to seeing you in the forums. Congrats to Alistair.

This is lovely and eloquent Allen..thanks for the posts, and good luck to you, Craig, and Alistair in your new pursuits!

Since Airlock seems to "depend" on Symphony for a bunch of really big clients, wouldn't it be possible for Airlock to set you and the core developers on it's payroll (maybe at least part-time) to support futher and continuous development?

...and of course, good look to all of you and thanks a lot for all the great work you've already done so far! :-)

Welcome back, Changman.

Hope this works out Allen, always worrying about it, but perhaps no longer :)

Virtual man hug! Looking forward to reading your posts, listening to your podcasts and watching your screen-casts, Allen.

Apt song no?

  • Lewis
  • 20 May 11, 10:27 am

Allen, this pleases me greatly.

Our paths share some things in common, so I can relate and I am pleased because I believe you will find what you lost some years ago on this amazing journey called Symphony.

Congratulations on a new beginning!

  • Henry
  • 20 May 11, 1:13 pm

I was incredibly fortunate to be shown the path of Symphony by Allen in person a long time ago (just after version two was released I think). I think a lot of that enthusiasm has rubbed off on me, because I'm still using it and promoting it many years later.

It was really interesting to read the full story too, so thank you for taking the time to post it. I'm really looking forward to more of your input in the community as well. It has been great to see the project grow so far, and the level of community support and co-operation seems to have grown tremendously in the last year or so.

Thanks for sharing your story, Allen. And thank you for persevering. Symphony is a beautiful thing and I'm glad to have discovered Symphony as you were releasing the original beta. It's come a long way since then.

We've missed you around the forum and it'll be great to have the Master Ninja back.

Very nice read, Allen. Possibly the most informative article on this website. I've always been wondering who are the people behind Symphony. Now it all makes sense.

In fact, I can see some parallels to my own background. I've also tried to create an XML based CMS back in university (around 2006), but then dropped the idea in favour of making websites for other people.

So I am really grateful to you guys for developing the CMS I've always dreamed of.

I really hope everything works out for you the way you want it.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details