React, Flux, GraphQL, Hack, HHVM...? All of this and more!
The Node.js server side environment for running JavaScript has taken the web development world by storm. It is used by millions of developers for creating web applications. The most common use for web development is still publishing information, using a WCMS (Web Content Management System).
Content management is an absolutely huge market, where the largest number of sites are more or less straightforward business card sites with some integrations. Open Source WCMS products like WordPress and Joomla! are household names where as more heavy weight tools are not that known among consumers.
With the JavaScript hype there are a number of Content Management Systems built on the Node.js platforms. Tools like Apostrophe, Ghost, Keystone, PencilBlue, Calipso, Cody, TaracotJS and Hatch.js have popped up just as many CMSes built with PHP did in the early 2000s.
The challenge for content management system developers at this level is that they are essentially a dime-a-dozen offering. They all essentially do the same thing as WordPress and a large number of other tools do.
On the other end of the CMS scale are enterprise level systems. These are often rather complex and sometimes downright archaic monoliths that are a pain to use and customize. These tools are often used across continents by hundreds of people. The products are supported by large ecosystems that offer integration modules to other enterprise software.
While some of these applications are truly on life support, many are still decent to use and develop. In fact many of them are continually refactored within their Java, .NET or PHP codebases. The advantage that many of these tools have on their side is stability and features. Many of the CMSes listed earlier have already fizzled down, while many older tools have renewed significantly.
While creating a Node.js and MongoDB powered CMS with an excellent user interface might be (relatively) trivial, but building the features that are de-facto requirements in many web content management projects continues to be a a challenge: multisite, multilingual, expandable APIs, versioning, audit trails, user and permissions management...
At this point in time there are no credible Node.js content management system players that would have something that would be comparable to something like SiteCore or even Drupal. With a CMS implementation project the assumption is that developers get a large number of features for free and there is a large pool of developers available.
With Node.js and the JavaScript ecosystem itself being in such a continuous flux, it's hard for any specific tool to grab the position from the established tools without any specific efforts. And when a Node.js CMS will reach the feature set that would be acceptable, at this rate it would be legacy at launch.
This is already happening with popular frameworks like Express.js that is widely deemed as technically limited and its future is somewhat uncertain as a whole. It's not that JavaScript couldn't be used to create a great WCMS, it's just that eventually large software will be complex and without any killer features it's hard for any one of the current Node CMSes to garner enough marketshare to be a valid player in the enterprise.
Though as the world continues to be evolving, it might be that the golden age of large monolithic CMSes has already peaked. In the future content might simply be published by more lightweight tools then they currently are.
There is still complexity to be managed behind large numbers of people managing a content repository. This is why an oldschool monolith CMSes like Drupal or SiteCore might end up being the software that is walled of the public internet, only exposing their data via a GraphQL or REST API.
So it might well be that there will be no killer Enterprise Node.js CMS, but the old systems will work in the background just like ERP and PIM systems power many web sites today.
Tweet