Interview with Chad Auld of MiaCMS

In this interview with Chad Auld of MiaCMS.. we cover his thoughts on the future and talk shop. You'll find an in-depth interview with never before discussed details about their departure from the Mambo Foundation and the nitty gritty behind the curtain.

Thank you Chad for taking the time to speak with us.

CC: Can you tell us about yourself and include your time on Mambo (if any).

CA: I am a front-end engineer at Yahoo by day, and an open source developer by night. These days I primarily deal with PHP,
JavaScript, databases, MiaCMS, and other web related technologies.  I have a Master’s degree in Information Systems, a Zend PHP
Certification, and I am a certified MySQL Professional.  I have a wonderful wife, 3 children, and a cat named JSON ?

I have been heavily involved with the CMS space for about 5 years now. I spent three years on the Mambo CMS team in various roles. These included Project Leader, Lead Core Developer, Director on the Mambo Foundation Board, and Mambo Steering Committee team leader prior to stepping down in February of 2008.

CC: What inspired the formation of MiaCMS and what makes it different from its Mambo roots?

Chad Auld

CA: I talked about this at good length on my blog a while back in an article entitled “Mambo Forked, Meet MiaCMS”.  The team also has an official statement up on the documentation site entitled “The MiaCMS Story”.  The reasoning has not changed and rather than repeat what has already been said I’d direct people to those pages.  In summary though it basically boils down to this…

We felt that the policies, processes, and priorities of the official Mambo Foundation were having a negative impact on the code and the community. Innovation, creativity, and team spirit had all but been
eliminated. Trolling the internal forums had become depressing to say the least.  Trying to push new code or even fixes to existing code into the core resulted in nothing except for long drawn out fights.  The
project was at a standstill.

What make MiaCMS different from Mambo?  By design we have less formal policies and procedures, fewer teams and team leaders, and have refocused on a core open source principle… release early, release often.  These changes allow us to move quickly, be more flexible, and actually advance the state of the project.  Talking, planning, and debating are fine, but there comes a time when you have to make a decision and get down to work.

CC: What are your thoughts on the future of Mambo now that Mia has formed with some of the main Mambo developers?

CA: Much of open source software is about giving people a variety of choices and the freedom to utilize, modify, and/or extend
what works best for them.  What’s perfect for one person or project doesn't always meet the requirements of the next.  So as an open source advocate and from one CMS project to another I welcome the healthy competition.  That being said though I think it is time the Mambo Foundation came clean about the state of their project.  Let me state this as constructively as I can.

Before MiaCMS was formed there were about seven active core developers (Note: by core developers I mean the folks that routinely
worked on and committed changes to the platform’s PHP, JavaScript, XML, and database code).  Four of those seven core developers, including myself, left in April of 2008 to form MiaCMS.  A fifth former Mambo core developer joined us just a few months later and a sixth developer left the Mambo team around the same time, but did not follow us to MiaCMS. Mambo was left with just one core developer, which as far as we can tell is still the case today.  Yes their project page might list more names, but again I’m talking about people who routinely commit significant code changes.

Since that time they also announced a new Project Leader who has since left, had the Foundation’s President resign, and have yet to fulfill their annual general election obligation, which allows foundation members to vote on new board members. In my opinion the project currently lacks true leadership, consensus on a future vision, and developers.  Mambo was a great project. If I didn't think so I would not have spent thee years helping build it.  Perhaps it can be great again, but right now it would not be my first choice for a CMS.  On a positive note they do still have a fairly active community so not all hope is lost, but they are in need of some serious changes and soon.

Mambo has given birth to a number of very successful forks and served the open-source community well.  That being said the code is
aging quickly, it is not keeping up with the competition, and for all intensive purposes the project has stalled.  While still on the Mambo team the current MiaCMS team members spent over a year helping to develop the next minor release of Mambo, version 4.7.  When we left to form MiaCMS in April of 2008 it was in the final stages of development and due for release in short order.  MiaCMS forked from Mambo 4.6 since the 4.7 branch had yet to be released under the GPL.  Along with the rebranding work that went into creating MiaCMS the team also re-implemented about 95% of the work we had done for Mambo 4.7.  What MiaCMS delivered as its first release was the equivalent of Mambo 4.7, as it stood at the time, and then some.  MiaCMS has gone on to have
over 650 important commits to the code repository, several important maintenance releases, and one minor (but in reality fairly major)  release.  The latest branch, 4.8, is pretty much inline with what we had planned for Mambo 4.8 long ago.

The point I am trying to make is that much of the current MiaCMS team is the same team that brought the Mambo community the 4.5.3 through 4.6.3 releases.  We have not diverted from our goal to build a best-of-breed CMS or from our responsibility to do what is best for our users and the community at large.  In fact, we have continued down a very similar roadmap, just under a new name.

During the same time Mambo has had only two fairly minor maintenance releases and a quick look at the Subversion logs for the 4.6 branch will only show about 50 or so commits of any real important since the MiaCMS fork.  The Mambo 4.7 branch is still locked from public access so we can’t do a fair comparison there, but all I can say is it was mostly feature complete when we left and just about stable enough for production.  So one can only speculate on the amount of work that has actually been done on the
branch since the time of the fork.

Holding elections for a new set of leadership and opening the 4.7 branch up for review are probably the two most important things the project can do at this point.  The branch will either show some real progress or the lack thereof and at least allow interested developers to offer some assistance.

The next major release of Mambo, version 5.0, has been in discussions for ages.  It is often seen as the release they will return
Mambo to greatness.  What most people don’t know is that Mambo 5 is essentially vaporware at this point.  Several years ago, while still Project Leader, I talked about our direction for Mambo in an article entitled “Baking Mambo”.  We had selected CakePHP as our foundation for a full rewrite of the Mambo core and finally kicked off development.  I spent months focusing on the database portability layer.

I presented the team with an early prototype that had a portability layer in place and a database agnostic installer using Adodb and AXMLS.  Ultimately though, attention refocused on 4.7 and we never got back to version 5 before the fork.  Another quick look at the Subversion logs for the 5.0 branch shows not a single commit has been made since my initial check-in back in September of 2007.  That initial prototype represents perhaps 5% of the overall effort required for a rewrite which means version 5.0 is still 95% incomplete.  That’s if they even stick with the original 5%, but it was written on an early beta version of CakePHP.  CakePHP 1.2 has since had over a thousand commits, several years of development, and an official release leaving the Mambo 5 prototype sorely obsolete.

So what do I think about Mambo?  I think if you liked Mambo, you are going to love MiaCMS.  Converting a Mambo site to MiaCMS is almost as easy as a standard Mambo upgrade.  As a side note it is important to also mention that most of the available Mambo 4.6.x & Joomla 1.0.x templates and extensions will actually work just fine in MiaCMS with either no changes or little changes.

CC: What are the projects main objectives?

CA: To built a state of the art content management system that enables users to create powerful web sites, applications, and
experiences.  We aim to continue innovating and advancing the CMS by refining the existing code and adding new features as requested by the community.  Simply put, to constantly exceed our users expectations and be the open source CMS of choice.

CC: What would you like to say to naysayer’s who surmise that we do not need another Mambo/Joomla clone?

CA: I’d have to say I agree with them.  We don’t view MiaCMS as a clone.  As I mentioned in an earlier question, we have not
diverted from our original goals.  We spent years building Mambo and so it only made sense to base MiaCMS on the platform we helped create.  Since the initial fork we have continued to build on that solid base by fixing existing bugs, implementing long standing community wishlist items and other new features, and planning for the next generation of our platform.  As I also stated before the old core is aging, it is in need of a rewrite, and we are already on the case.

Version 4.8 is a solid release and goes a long way toward stabilizing and improving the core.  It will serve the community well while the team focuses on what is next to come.  All three systems are fairly different at this point and it will continue to become more apparent over time.  To be honest we don’t spend much time looking back or looking over our shoulder.  We are MiaCMS, we are proud of the system we have built, and we are excited about the future that lay ahead.

CC: What is the least known feature that separates Mia from its competitors?

CA: We have added and/or improved a number of interesting things recently.  I’ll mention two here.  The first is content
versioning.  It is hard to imagine that a content management system was lacking this feature, but this has been the case for Mambo since the beginning and has sat on the wishlist for years.  With the 4.8 release I’m happy to say MiaCMS now supports content versioning and it has been well received by the community thus far.  This basically means that users can store as many versions of a content item as they would like, compare old version to the current version, and restore a past version if they so desire.

Secondly, a major decision the team made after forking from Mambo was the decision to rebuilt the entire JavaScript layer of the
platform.  We’ve done this in phases and rolled out different portions of the rewrite with each new release.  The latest release, version 4.8, completes the rewrite.  Not that it is absolutely perfect or that there will not be some changes in the future.  But we did achieve what we set out to do.  The Mambo core that we initially based MiaCMS on is 7+ years old at this point.  The JavaScript layer is outdated and was in sore need of attention.

MiaCMS’s new base JavaScript architecture is built around the Yahoo! User Interface (YUI) library. The components in this library give  MiaCMS a solid set of cross-browser methods for dealing with things like identifying and accessing parts of the DOM, processing DOM objects, doing animations, and detecting when key DOM events have fired (ex) DOM ready, load, click, etc. The main goals behind formalizing the JavaScript architecture are to provide a consistent interface throughout the system, a reduced dependency on external libraries, enhanced cross-browser support via the graded browser support model, and just more efficient code overall.

The MiaCMS team is working hard to assure that all the JavaScript within the system is properly namespaced and that it follows
recommended object-oriented conventions. The MiaCMS JavaScript architecture makes use of public, private, and protected variables and functions through the use of object literals and closures.  We feel strongly that the CMS should not simply be a collection of a thousand JavaScript functions scattered throughout.

We strive hard to avoid polluting the browser’s global namespace and avoiding collisions with other JavaScript.  All the JavaScript in MiaCMS lives under the  “miacms” namespace and thus remains isolated from all other JavaScript loaded by extensions, 3rd party JavaScript libraries, etc. We advocate the YUI Library, but because of proper namespacing within the core, 3rd party developers are still free to utilize whatever works best for them in their custom extensions (ex) jQuery, Prototype, etc.

CC: Can you share some sites that use Mia and you feel are successful?

CA: To be honest I don’t have a great list of sites to share.  We don’t track the installations and therefore only know about
sites we stumble upon or uncover via web searches.  We’d love to build a gallery of sites, but haven’t had the time just yet.  I would
encourage people to let us know about their sites via the forums for possible inclusion within the official gallery when the time comes.  So while I don’t have a list of sites for you I can tell you our community is growing and our download rates are increasing at a nice rate.

MiaCMS tied for 3rd place in the 2008 Most Promising Open Source CMS category of Packet Publishing’s annual Open Source CMS competition.  We are still a young project and so it is all about getting the word out.  In general we find that once people learn about MiaCMS they are very pleased by the solution we offer.

Here are a few sites I’ve personally been involved with building: (my personal site)

CC: What are the future plans of the Mia team?

CA: The team keeps an updated roadmap on the documentation site.  We also recently put together a presentation on the “Past,
Present, and Future of MiaCMS” for the 2008 Thailand Open Source Software Festival.  We have some big news in the pipeline, but we
aren’t ready to announce anything just yet.  Stay tuned, more to come very soon.

CC: Do you feel that Mia will be impacted at all by the current state of the economy? Why?

CA: MiaCMS is virtual organization and one run 100% by volunteers.  Our overhead is very low and we are lucky enough to have
talented developers willing to volunteer their time toward the advancement of the platform.  If MiaCMS is affected by the current
state of the economy I’m guessing it will actually be in a positive manner.  As people look for cost effective replacements for aging,
proprietary, and expensive systems open source (and in our case free) applications like MiaCMS are very attractive solutions.

CC: If you could change one thing about Mia what would it be and why?

CA: We are a young project.  The team is having fun and learning a lot.  We’re not perfect, but when we encounter issues or kinks in the process we correct them quickly.  The keys are teamwork and communication.  I can’t point to anything one thing that I would
change right now.  I think the team is pretty happy with the current state of affairs.  We identified the need for a radical change in April of 2008 and we made it (i.e.) the fork.  We learned a great deal from our time with Mambo, which has definitely influenced how we manage the MiaCMS project.

CC: Can you share some future plans and / or upcoming features?

CA: The best to place to see our future plans and/or features would be the official roadmap.  Outside of that let me talk a little
about life beyond version 4.7.  With version 4.7 behind us the team is now fully focused on the next major release.  We’ll call it version 5.0 for now, but the versioning scheme is likely to change.  Version 5 will be full rewrite of the core building on what we’ve learned from our last 4+ years of CMS development.  The rewrite will target PHP 5+ and most likely MySQL 5+ too.  Support for PHP4 will be dropped.  It’s not that we are simply dropping support for PHP 4, but rather that the rewrite will focus on object oriented techniques and other advancements made to the language in versions greater than PHP 5.

The new framework will be lighter, faster, more secure, more flexible, and easily extendable.  We will re-implement much of the functionality MiaCMS users have come to know and love, but in a way that better prepares us for extending the platform over the coming years.  Users can expect enhanced role based access controls, more flexible content organization (i.e.) removal of two-tier section/category limitation, an improved SEF engine, improvements to the template/theming system, plus much more.

CC: Final thoughts / comments?

Thank you for your interest in MiaCMS.  For anyone that would like more information and/or updates on the project I would encourage them to frequent the official project site, our forums, and/or subscribe to the Twitter feed.