Recently I stumbled upon a website advertising an enterprise-grade CMS and Commerce suite written in node.js. I grew my interests in JavaScript after I was forced to implement a module performing the same job on both client and server side. I thought having a JavaScript backend engine would really help me not to repeat myself. Well, it was not possible then, but I was looking ever since.

I’ve been looking for a good, stable and having a rich feature set node-based CMS for several months. After the development of bucket.io has stalled and then been put on hold, I lost hope for finally seeing some mature solution, even a simple one as Buckets seemed to be. It’s no wonder I got excited after seeing NodeJS Enterprise landing page.

The website offers CMS and Commerce modules along with Docker manager tool. The CMS tool is in beta state, the rest is being developed, but nevertheless it looks promising. I focused on the CMS only due to the live demo available for previewing. Full of hopes I opened it and found following set of features:

  • Simple user manager;
  • Page editor with tree website structure view;
  • Image library;
  • Public assets manager;
  • Online template and widget editor;
  • Form editor.

Even if it is not strictly a basic set, still it is not very impressive and definitely I wolud not use word “enterprise” to describe it yet. So what makes an enterprise CMS, then?

What companies need

The most common setup for companies that are no longer family businesses is having multiple parties involved in producing content. It does not only mean individuals, i.e. multiple editors with different sets of access rights, but also whole company divisions with multiple editors working for each of them. It implies at least the following:

  • Content should have history. Each change should be tracked, every version should be restorable.
  • The content should be searchable, thus tight integration with a scalable full-text search engine is a must-have.
  • The platform should be able to host multiple sites, possibly utilizing different sets of templates and layouts but often sharing the same content.
  • The editors’ responsibilities might vary across the organization and its divisions. The platform should allow for defining multiple roles and workflows. Someone enters content, someone translates, finally someone accepts it.
  • Enterprise sites are multilingual. Organizations tend to commission translating content to third parties. Thus exporting and importing content is a desired feature.
  • With large amount of content the ability to define page publication date and time is crucial.
  • Large organizations use multiple systems. The CMS platform needs to be extensible and to exchange information with these systems. For example, integration with corporate Digital Asset Management solution enables the organization to implement asset usage policies.

and finally

  • The corporate CMS solution has to allow different hosting and deployment scenarios to meet organization’s security policies.
  • It should allow deploying a web farm, loadbalancing.
  • It should help promoting content from staging environments to production.
  • It should separate Content Management from Content Delivery environments.

NodeJS Enterprise is not there yet. It is, however, a very promising project. I will surely watch how it grows and becomes mature.