You're starting a website. How should you go about it? Is a Content Management System (CMS) necessary or even worth it? There's a lot of mutually opposed and inconsistent information on the subject and truth be told, there's no definitive answer to these questions. There are very pertinent pros and cons for going with or without a CMS.
This article is not an exhaustive presentation on the matter, nor does it try to come with final answers. It's a simple depiction of a feasible alternative to the plethora of similar solutions out there.
Everything these days seems to revolve around fast development and shortest time to production. A Content Management System comes with a set of very appealing promises in this regard.
First, it takes care of the boring, repetitive data management tasks (CRUD operations), letting developers focus on the unique, innovative stuff that makes the website stand out. Most of the popular CM systems deliver on this promise, making them a very good starting point for any type of application. Applications get delivered fast, data management is well handled (content versioning, publishing workflows, etc.), and customers can take it upon themselves to keep their website up to date.
Second, it provides support for one of the most important components of any modern web application - security and access management. Of course coupling your application so tightly to a piece of third party software comes with its pitfalls also. The CMS's problems now become your problems, its vulnerabilities become yours. However, security is hard, and no one should be taking the matter into their own hands unless they really know what they are doing. It's generally better to leave it to people who have more time and resources to do this stuff for you, rather than try to MacGyver your way into it.
Finally, most popular CMSs expose very important bits of functionality out of the box. If your application needs convoluted content approval workflows, search APIs, content versioning, etc. there's a very good chance that you CMS of choice already supports it. However, not everyone's needs can be covered with a basic install of such a system. In order to address this, most serious content management platforms have exposed APIs that allows developers to build on top of the existing functionality in the form of plugins.
As mentioned before, there is no definitive answer to this question. If all you want to do is quickly launch an MVP, don't have a great amount of content to serve and don't plan to update the content on a regular basis, then maybe a CMS is not for you; go static. But for anything more than that, you will more certainly need a way in which to future-proof your application and a CMS is a pretty good way to start.
Here's one solution for building robust enterprise-level applications. Sitecore is at its core a CMS built to support global, multilingual content while still being sufficiently flexible in order to support ever evolving requirements and enterprise demands. There are a lot of things that it does right, making it a leader in Gartner's 2016 Web Content Management Magic Quadrant, scoring highest in terms of ability to execute. As you may know, Gartner is not endorsing any vendor, product or service that it is ranking and publishes the results based on previous research (research and ranking methodology are all described in the published paper). Consequently, Sitecore is well positioned as one of the most complete content management solutions out there. The Gartner report is not a system recommendation, but it helps create a global perspective over the enterprise CMS universe. This is important because you are not simply choosing a content management platform, but a partner for all future endeavors. You owe it to yourself and your customers to carefully plan ahead and make a good decision from the beginning.
Any functionality can be extended, removed or overwritten. Most aspects of the CMS are architected as a series of pipelined processors. In plain terms, this means that anything that happens in the CMS is structured as a series of sequential steps: the output of one will be used as input for the other. The pipeline can be altered in any way and custom code can be injected as a proper step in the pipeline or as a custom event handler.
From developer's perspective, Sitecore is just a plain old .NET web application that will be extended to accommodate your specific needs. It provides an exhaustive API that allows custom code to interact with every aspect of the underlying system. For example, the CMS is tightly integrated with Apache Lucene (for more complex scenarios Apache Solr can be used) giving the developer access to a high-performance, industry-proven content indexing and searching solution.
As mentioned before, Sitecore is built around a very open and developer friendly architecture. This approach is most visible in its extensibility platform - the plugin system. Content items and custom code can easily be packaged into a plugin. This makes it easy to replicate the development work on any number of instances using an awesome installation wizard.
The relative ease of developing effortlessly installable plugins has sparked the creation of a great development community. Community plugins extend on existing Sitecore functionality and add valuable features with little work. One honorable mention here is a package called Sitecore Powershell Extensions that makes otherwise tedious content manipulation activities a breeze.
You don't have to recreate content for every site you manage. Sitecore can be used as a centralized CMS that allows content sharing across any number of sites. In order to support running multiple high-profile websites under the same Sitecore instance, you will most certainly need to run the system in a distributed environment. Luckily, scalability is a first class citizen in the Sitecore universe, making it extremely easy to add new content management or content delivery nodes.
Moreover, Sitecore comes with out of the box support for multi-language websites, as well as exposing specially tailored translation workflows. One very interesting thing to mention here, is that an automated translation service can be used as a step in this pipeline, making it extremely easy to have your content ready for all customers in no time.
Extending the robust content management component, Sitecore also provides a suite of very useful digital marketing tools. Firstly, it won't be treating your visitors all the same - it's giving you the capability to optimize the content and provide a tailored user experience based on various factors (these indicators are dynamically constructed based on user preferences, their interaction with the site, their location, preferred type of content and more). In other words, users will see content that is most relevant to them, and not just some general, non-personal information. This is based on the realization that the target audience is rarely homogeneous and static. The system needs to be able to adapt and grow at the same rate your business does, keeping it fresh and relevant.
The experience optimization process is further enhanced with support for A/B and multivariate testing. This will enable you to test various combinations of your site's content to decide which are the most effective with the visitors. Sitecore will then do some number crunching for you, providing information about the impact these changes.
Sitecore is not a perfect solution by any stretch of the imagination, nor is it a final answer to our question. However, it does a number of things just right, making it a preferred content management solution among many global enterprises.
Give it a try! It might just be a very good starting point for your next coding adventure.
by Ovidiu Mățan
by Remus Pereni
by Gelu Vac
by Mircea Vădan
by Cristina Juc
by Mihai Varga
by Oana Călugar