Implementation Focus: MiaCMS
Introduction: Chad Auld is one of the principal developers of MiaCMS. MiaCMS is a relatively new open source project, but it's starting out with a solid base from its roots in Mambo CMS. Chad spent about three years on the Mambo team in various roles including Lead Core Developer and Director on the Mambo Foundation Board; he was a member of the Mambo Steering Committee prior to retiring in February of 2008. Recently, Chad joined with other core Mambo developers to create MiaCMS which is now on its second release. Chad's role on the MiaCMS team for the first two releases has been to help with the rebranding efforts, build the default WYSIWYG editors, implement the YUI Library, build a REST API for content access, and develop enhanced charting for general CMS statistics and poll results.
How does MiaCMS differentiate itself from other CMS projects out there? Why would someone choose MiaCMS over Drupal or Joomla or other well-known apps in this space?
Yes, there are quite a few content management systems to compete with. Luckily we aren't really new to the game. Our team contributed toward making Mambo the CMS it is today. We will continue building on that same award-winning base with MiaCMS. (As a side note, it's worth pointing out that Joomla was also initially based on Mambo about three years ago.)
Some of our current features are:
- Simple Installation
- WYSIWYG Content Editors
- RSS Content Syndication
- Powerful/Extensible 3rd Party Extension System
- Flexible Site Theming Capabilities
- Site Search
- Sitemap Generation
- REST Enabled Content & Statistics
- User Management
- Multilingual Core
MiaCMS will differentiate itself by making standard content management operations even easier and more flexible than they have been in the past. We will cleanup much of the old legacy code and enhance the extensions interface to simplify custom 3rd party extension development. With the 4.7 release the team will drop support for PHP4 to take advantage of the object-oriented capabilities of PHP5. The team plans to continue building close ties to the community and listening to their feedback. The next few releases will focus on building out many of the wishlist items we have already received from the community.
At some point, you and the development team made the decision to build YUI into MiaCMS. What were the factors that guided your decision?
We based our decision on a number of important factors; maturity, browser support, documentation, support community, functionality, and flexibility. YUI has a large selection of time-tested components and continues to make valuable additions with each release. For us it is important that the selected framework continue maturing and growing right along side of us. We didn't want to add yet another library to the system and so it was important to be able to replace existing parts of the CMS with canned components and/or have the flexibility to hook into the framework and use it as a building block for custom components. The YUI documentation is first-class. In fact, it represents some of the best documentation I've come across for an open source project. Between the user guides, cheatsheets, api browser, examples, and developer videos, you have just about everything you could ask for. Of course, sometimes documents just aren't enough. Luckily, we've found the YUI support group to be a good place to find additional answers. Last but not least is the topic of browser support. While we'd love to support every browser in existence, it simply isn't possible. But we do our best to test and code for as many as we can. We think Yahoo! has taken the right approach with its Graded Browser Support model.
What components of YUI are used in Mia?
Where do you see opportunities for deeper YUI integration with MiaCMS in the months ahead?
Having developed a complex application implementing YUI, what are your thoughts on the state of YUI as a toolkit? What's working super well at this point? What weaknesses are you hoping the YUI team will address?
YUI is a feature-rich, well designed, state of the art toolkit. The available components cover a wide variety of the common tasks needed for web application development. We have had great success integrating YUI deeply into the MiaCMS core which we will continue to do with each passing release. The community feedback on the YUI-related changes has been very positive so far. Support for the major browsers is top-notch, the components degrade nicely, and performance is solid. Tools like the YUI Compressor and YSlow are also key in helping us take performance to the next level.
Nothing much to complain about. Overall we have been very happy with our selection of the YUI Library. One of the things I really like about jQuery is the powerful CSS style selectors. I am really looking forward to the YUI Selector Utility coming out of beta. We'll probably start making heavy use of it even before then, but obviously the more stable it is the better. I also see a lot of potential for the experimental Charts component so I'd like to see it polished up with its functionality being continually expanded as well.
What are the next big frontiers for the MiaCMS project as a whole?
Below is the list of roadmap items in no particular order. Some are already being worked on, some are almost complete, and others are in the planning stages.
- Improved ACL's (User/Group Permissions)
- Database Portability
- LDAP Support
- Dublin Core Metadata
- N-Level Content Organization (remove the two tier section/category limitation)
- Content Versioning
- Multilingual Content Management
- Writeable REST Interface
- Multi-Site Management
- Improved File & Image Management