What is CMS (Content Management System) ?
A content management system (CMS) is the must have tool for website publishers, bloggers and e-commerce site where contents have to be added, updated and removed frequently. This tool also supports management, distribution, publishing and discovery of information. Now a days, CMS not only help manage of webpages but it optimize for speed and SEO (Search Engine Optimization). Some popular CMS are Wordpress, Drupal, Jumla etc. using which user feels as if they are editing their document in Microsoft Words i.e. they get all what they need or expect from these CMS to manage and publish their webpages in optimal and easy way. They can be used for any websites like online publications, web content management system, e-commerse websites, document management, archieves and others.
Challenges of Current CMS and Databases
Vulnerable : Most of these CMS are open source and their features are added using plugins developed by individuals which may have bugs to access admin dashboard or they are all depends on MySQL database on which SQL injection is possible if advanced security measures are not used.
Consume huge resources : Current CMS use huge hardware resources like RAM and CPU. As features of a website are increased by installing plugins, website becomes slower and slower and need more optimal hardware. If you are using shared hosting and more and more visitors are coming to the site, your hosting provider might ban you or get a private hosting with more RAM and CPU which can be very expensive.
Agility : Now a days, CMS is a platform (not just a storage system) where users continuously need new features and products to be added but because of the more rigid form of database like MySQL, traditional CMS cannot support this feature.
Diverse Data : After the popularity of social media and collaboration networks, CMS demands advanced storage system for storing diverse data like social media feeds and new sources of data in addition to text, photos and documents.
Dynamic : Most of the traditional CMS are very static but today users demand dynamic content which is difficult to support using relational databases.
Scalability : Internet is so easy to access due to the popularity of mobile devices, website has to be correctly displayable on any devices of different screen sizes and visitors may grow to millions. So The database must support large scale user base.
MongoDB supports dynamic schema which enables a simple and easy way to stay agile for new features addition. In contrast to traditional relational database, this can grow and store any data types as time and condition demands.
Unlike MySQL, MongoDB can store structured and unstructured data in a single data store using advanced data format called documents.
As MongoDB uses BSON based data type which can be easily queried, indexed and searched using rich query language to serve required result to users in no time.
It’s horizontal scaling feature allows organization to support millions of users.
CMS based on MongoDB
Currently MongoDB is becoming very popular and more CMS based on this are developed in a fast pace replacing traditional content management system. Some of the most used CMS based on MongoDB are :
Calipso is a fast flexible and simple NodeJS content management system that is similar to Drupal and Wordpress.
KeystoneJS is another Node.js content management system and a platform for built on top of Express.JS and MongoDB. It is built to support applications based on APIS and database-driven websites.
LocomotiveCMS is a simple but powerful CMS based on liquid templates and mongodb database.
MongoPress is built on top of PHP and MongoDB which is an instantly scalable, incredibly flexible CMS to deliver a powerful object-oriented environment inspired by wordpress.
Rubedo is an open source content management system based on Zend Framework and MongoDB which has advanced features like ergonmic virtual desktop, content management, digital asset management, responsive web design, cross-platform, theme customizer and geolocation.