In demand


Tuesday, July 14, 2015

A Minimalist's View of Open Source CMS Software

When something is simple, it’s possible to understand it in fullness. When you understand something, you can trust it. Simplicity comes with trying to do less of everything less is often better. In mathematics, physics, and arts, simplifying and shedding every bit of complexity and redundancy have produced remarkable results. It leads to abstraction, elevates expressiveness, and reveals patterns that are otherwise buried in details.

Gods and Monsters

At the open source end of the CMS market, engineering simplicity is being tossed out for the shortest path to more features in an effort to provide users with everything.  It is too late for these projects to take the direct route to minimalism and simplicity. Thus the rise of open source forks, micro-frameworks and content management systems that are derivatives of those micro-frameworks, many still powered by the internal engines of  full-fledged frameworks from the listed:

  • Laravel
  • Symfony
  • Zend Framework
  • Drupal
  • Wordpress

 The developers of these projects seek to leverage existing development platforms and developer communities as well as existing frameworks and code bases. While such reuse is pragmatic from a business perspective, these CMS inherit all the troubles of the parent  frameworks .The majority of the web, however, doesn’t use the any of the “frameworks” that are increasingly dominating the CMS market.  Since most of the internets websites still use plain HTML directly for a reason, simplicity.  There is a  market niche that can be filled by minimalist software.

Most projects however never start from first thought and line one to be minimalist system with the capabilities to grow larger and maintain robust integrity.  It's often thought by some of these projects that minimalism has nothing to do with the architecture and design but a smaller code base. They seek popularity first and confuse understanding with shallow learning curves that are only the result of  user interface abstraction.  Code abstraction is also used to cover up the complicated and complex system architecture. This can make the system seem minimalist in appearance but it is still incredibly large and monolithic at its core. When performance problems arise and communities shrink due to a lack of understanding of the code base by members movements for repairing the situation come. But reduction of the core and  refactoring  it to be simpler is not possible at this point . This is because from the beginning the system was designed to be large, all encompassing and backwards compatibility becomes an issue. Refactoring after this becomes simple compression and house cleaning for better performance. The cover up of  over-engineering and low performance is  made possible because :

  •  The increase in availability of  more powerful  cloud and vps hosting has helped.
  •  The reverence of the community for those that seem to know more than they
  •  Monstrous mistakes and project have been  made and there's no turning back

Too simple

There are projects that try be minimalist to fill the niche created by the giants of  open source CMS and frameworks. Unfortunately the typical  interpretation of a minimalist  CMS is to remove the sophistication and architecture needed for scalability, flexibility and extensibility. Most  "light" content management systems are quite literally cardboard boxes with  a door and plain furniture.

They are not built using a robust architecture that would allow them to be the base of a larger structure in the future. The system though light is built upon an architecture that cannot compete with the more popular "does everything" systems.

Barely Usable

Like most of the open source CMS market frameworks have have adopted the "does everything" doctrine as way of pleasing and enticing a greater number of users. Unfortunately for them the web changes so quickly and  taking everything with you make it hard to change with it. This is why you find that upon version iteration the developers of a framework will  talk about  "simpler, faster, cleaner" in the style of Zend  Framework One and then reduced version Two. But not all have the resources to do this so the latest trend is to create a new minimalistic or " micro" version of the framework as a new product. You'll find this in Laravel / Lumen  Symfony/Silex. While  "micro" frameworks like Silex might provide an extensible structure in an effort to be minimalist. They are still lacking the needs of a livable space by not providing walls and utilities.

Minimalist shouldn't mean being given an empty room frame. There should at least be shelter,  water and power and maybe some comfortable chairs to sit in. The true cost of ownership comes when contractors are called in to finish the space. Typically the contractors repeat their efforts to build out the needed structure of the framework into a simple web application. Their solution to stop this repetition is to build another more usable framework or CMS out of the micro-framework.  But since the new frameworks are built from the parts and/or ideas of the larger parent, then the micro-framework and lastly the CMS. The resulting product is a matryoshka doll of code to learn and maintain with ever decreasing performance capabilities.

Fresh is not smaller

Some content management systems like Drupal try to be everything. Any minimalism efforts make them fresh but not smaller or smarter. They are built on an old foundation that with a lots of effort and the right pieces can be made to look minimalist and beautifully modern. But the reality is that front-end is just given a fresher look. But the core structure is not minimalist by design and will always carry with it the heavy foundations of the older system architecture. Though functional it will seem incongruous and rough.  A system like this will prove to be difficult to work with when it  needs to be lightened or modified to suit different ideas and scalability.  Any new ideas are forced to be changed to fit into the form of the core. This is what happens with Drupal and the reason for it's shrinking performance


Money Pits

What happens with all too many start-ups and business is that they have a great idea. The are convinced by developers  to use a popular content management system as a framework for their project. The problem is the frameworks architecture is not suitable for the idea. This is only known much later after the developer finds out more about the structure after attempting to use it. Realizing their mistake the developer disappears leaving the owner with a money pit.
The end result is that the owner is left trying to find an expert on the platform to realize their dream.

The New Comer 


The Content Connection Kit  faces the challenge of being accepted as a minimalist alternative to the dominant CMS's like Drupal and Wordpress. Frameworks like Laravel and Symfony will continue to leverage large communities and popularity to lionize their micro-frameworks. To get developers to inform the public of the availability of minimalist frameworks like CCK. That if they forgo their plugin markets for better alternatives. Alternatives they can use to build faster websites with all the most loved features of Drupal,Wordpress with more flexibility. Know they can build to requirements without layers of unmaintainable code . All this can be accomplished through minimalism in thinking and practice.


For developers it's like telling them to cook from scratch instead of opening a can or package. For the public It's a task similar to telling them to cook their own dinners or hire a chef rather than eating at the local fast-food restaurant. But like fine cookware and sharp professional utensils CCK makes the job easier and more delightful with the best results.

Today's Links

Post a Comment

Print this!