Blog

CMS or FRAMEWORK?

16 March 2018   |    Nikita Pazin   |    Development

Before choosing the " engine” for your resource, it is important to determine how it fits into your infrastructure. The choice of a solution is also influenced by the methodology used to develop the project.

We consider major projects that meet at least one of these criteria:

  • Number of SKUs for the catalog: more than 20000
  • Attendance: more than 1000 people per day
  • The amount of resource data more than 20 GB
  • Project integrations: more than 3
  • The prospect of achieving one of these indicators within a year

In any case, when choosing a platform for the solution, it is important to consider the following features:

  • Support for a database that is suitable for your project
  • Ability to implement the API for a mobile app

In order to make it easier to understand, let's introduce a conditional division.

Independent major project

In this case, it will be most effective to develop on the Framework using the Agile methodology and if there is a responsible contractor. With this approach, the costs are directly proportional to the functionality of the project.

A major project as part of the company's overall IT infrastructure

First of all, we also recommend looking towards the Framework, but the environment may dictate its requirements, and then the choice of CMS will be made for you. In this case, the development method will become a hybrid, divided into large sprints. It is extremely important to choose a contractor who has experience in implementing such projects and is familiar with the system you have chosen.

One of the company's small projects

In this case, companies are trying to unify the solutions used, but the freedom of choice remains, and for such tasks, most CMS have been developed.

A small project designed to solve a local problem

For some tasks, you can do without a CMS database, Wix, or Bitrix24 sites (which recently announced the possibility of creating an online store). But it is also possible to use simple versions of popular CMS.

In any case, the site's life cycle is just beginning in development, and you should have a complete idea of who and how will ensure its operation and further development. Choosing a not too common solution, you may face a high workload of experienced contractors or search for a full-time specialist.

What are the differences between CMS and Frameworks

Most projects are implemented in PHP CMS ( Content Management System) and Frameworks (which are add - ons to the programming language). Some Studio CMS are developed on the framework and get their name (for example, Alchemy Yii 2 CMS and SEOCMS on Yii 2).

"And if the CMS is similar to LEGO, then the framework can be compared to a 3D printer-print anything, even the same constructor!"

Solutions implemented on the ASP.NET from Microsoft, but this platform is not widely distributed in our market.

If for most CMS there are ready-made templates with design, then for projects on the framework you will have to go through the entire cycle of design development, layout and integration, or adapt existing templates from other CMS.

As a rule, a ready-made CMS is the core and a number of modules that allow you to form the functionality of the project. The modules are implemented either as universal as possible, or they solve one specific problem.

Before we consider the features of specific "platforms", we want to comment on several representations that may interfere with the objective perception of information.

Free CMS is not suitable for serious business

The question of price is a question of risks. Yes, technically, you can implement a large commercial project on a free CMS. But the price of a license for any box usually includes certain security guarantees, reliability, and technical support from the developer.

Ready-made content management systems are "heavy", and sites written from scratch are "light"

This statement is partly true. But only partially. With a small amount of data, any site will show fairly good indicators, but with the growth of data and visitors, optimization will take more and more effort and time. This is due to the architecture embedded in the box solutions.

CMS advantages:
  • Speed. If you need a standard solution, you can create a template with basic functionality in a short time (several days).
  • Simplicity. Working with CMS does not require a lot of development experience from the administrator.
  • Similarity. The functionality of different CMS overlaps with each other, so once you understand one system, it will be easier to work with the rest.
  • Availability. Due to the speed of template creation, the result is relatively inexpensive.
  • Specialization. There are specialized CMS for a specific type of project (news portal, intranet, etc.), and they can fully cope with your main tasks. At a minimum, we recommend that you study their capabilities before developing a project from scratch. Unfortunately, this does not apply to e-commerce platforms.
Disadvantages:
  • Limitation. Although each CMS has a wide range of functionality, most systems efficiently solve a very limited range of tasks. Often you have to find compromises and agree that all your needs will not be met.
  • Banality. As we said, the CMS is one specific set of modules, sharpened for a certain ideal task, and at the same time not suitable for one hundred percent of anyone.
  • "Dirty" code. Some CMS automatically generate lines of unnecessary code. And to clean it, it will take a lot of effort and time.
  • Updates. When updating the CMS, some of your improvements may disappear or stop working. And in that and in other case, you'll need the assistance of a specialist.
Cost of the solution

We believe that it is not necessary to make a decision based on the cost of the license, since it will be lost in the overall cost of maintaining and developing the project.

When creating the chart we used the following numbers:

  • The average cost of a commercial license is 30,000 rubles, annual renewal is 10,000 rubles
  • Average cost of monthly maintenance. support for 12-16 hours - 25,000 rubles
  • The average project life span is 3 years

The most popular solutions

1C-Bitrix (BUS-Bitrix site Management)

Leader in usage among paid CMS. It is provided on a paid basis in various editions. The functionally rich system, unfortunately, inherited all the worst that is in 1C. If Apple offers a new paradigm, then in the case of 1C, both the user and the developer have to adapt to the existing solutions themselves, because when changing components, the risk of being refused technical support from the developer increases.

Advantages:
  • A significant plus is the Bitrix Marketplace, with many solutions from third-party developers.
  • A large number of studios and developers.
  • Rich basic functionality.
Disadvantages:
  • The main drawback, in our opinion, is that the system is not suitable for further development. The time and budget you set aside for upgrades will be significantly exceeded.
  • The negative factors of using 1C-Bitrix as a CMS include its low load capacity. As long as your web project is not too popular, everything will work very quickly. But if you exceed a certain level of traffic, the brakes will start, which will require quite a lot of time and effort to eliminate.

It is worth noting that the Bitrix business model is successful for creators, attractive for developers, but does not entail the evolutionary development of the product, and, as a result, does not meet the interests of customers. Most projects are implemented on it “by default”, without going into the details of the system. A characteristic feature of the platform is the dislike of its developers.

Despite this, we recommend this system in cases when it is important for you to get the maximum functionality with minimal investment: for small projects and for those who are just opening a website.

WordPress

One of the most popular free CMS that you can use to create sites in various directions. However, the most widespread use of the system is not due to commercial sites, but due to blogs and information projects.

Advantages:
  • A large selection of ready-made templates of various themes and styles.
  • The prevalence of CMS and low requirements for the developer.
Disadvantages:
  • The low speed of the website.
  • Vulnerability in the CMS scripts themselves.
  • Conflicts between different plugins.

Despite the popularity of the solution, we do not recommend considering it as a platform for your project.

Joomla!

Another of the most frequently used free CMS. The main difference between Joomla! from a more successful Open Source solution – it is a little more difficult to cope with. It is not so easy to install, configure, and fill it with content.

Advantages:
  • For this platform, there are convenient multifunctional applications for creating online stores of various complexity. Creating a full-featured online store (rather than a single page) on Joomla is easier and faster than on WordPress.
  • Website on Joomla! you can optimize it without additional plugins. Without unnecessary gestures, the user can write meta tags and configure URLS (page addresses that are displayed in the browser bar).
  • Caching is immediately available in the engine. This speeds up page loading and increases the site's position.
Disadvantages:
  • Unstable operation under heavy load.
  • A vulnerability in the scripts.
  • Complexity and redundancy of the program code, which negatively affects the ability to find and fix errors.
  • Despite the popularity of the solution, we do not recommend considering it as a platform for your project.
MODX Revolution/Evolution
Free CMS is suitable for developing any website: blog, forum, large portal, service with online payments, etc.
Advantages:
  • You can select many types of content. In other words, it may not even be an HTML page, but, for example, a pdf file.
  • Security. Sites on MODX are more secure than resources on most other CMS.
  • SEO without additional modules and settings.
  • Create complex multi-functional online stores using Foxy Cart.
  • Support for multilingual sites.

The system has no obvious disadvantages.

Despite its relatively low prevalence, the popularity of the system is growing, and we recommend it primarily from free CMS as a platform for our clients' projects.

OpenCart

Specialized e-commerce CMS. This is the perfect solution for those who need an online store as soon as possible and as cheap as possible.

Advantages:
  • A functional and simple editor.
  • Ability to edit meta tags after installing the standard configuration.
  • Ability to track data about sales, products, consumer preferences, and ad performance (without using CRM).
Disadvantages:

This platform is created exclusively for online stores. It is not possible to create a different type of site on it. Other disadvantages include weak standard features for SEO optimization. For example, in the basic configuration, you can't close page duplicates and generate a site map.

We recommend considering it as a platform for your project only for small online stores.

Drupal

Free CMS, demanding to the developer. Drupal can be used to build various sites, ranging from blogs, news portals, information sites, and forums. Rather large functionality can be extended by installing additional "modules" that can be downloaded from the official site.

Advantages:
  • Ability to build multi-user web projects without the risk of unstable operation under heavy loads.
  • A fairly high level of security.
  • Convenient basic SEO optimization.
Disadvantages:
  • Limited number of templates and Russian-language documentation.
  • The increased requirement for memory on the server side, usually not less than 128 MB.
  • Despite the fact that the CMS itself is free, functional themes for it are provided on a commercial basis.

Despite the popularity of the solution, we do not recommend considering it as a platform for your project.

Umi.CMS

Commercial CMS, unfortunately, has recently lost its popularity, but despite this, it is still able to compete with 1C Bitrix.

Advantages:
  • Availability of regular features for integration with 1C and Yandex Market.
  • An interesting approach to site security on the UMI platform. On the site umi-cms.ru there is a page where you can analyze the security of your resource and automatically (!) fix the main vulnerabilities.
Disadvantages:
  • Less competitive license renewal rates and higher maintenance and development costs.

If you have proven developers who are familiar with the system, and you are not close to Bitrix, we can recommend it as the basis of your project.

Frameworks

Popularity of frameworks on the territory of Runet according to a site survey habrahabr.ru

Popularity of frameworks in the world according to Google Trends statistics

Laravel

It is a fairly flexible framework and allows you to solve non-standard tasks, structure the website in accordance with the existing logic and goals.

Advantages:
  • Creating sites of any level is possible thanks to the huge functionality. Using this framework, you can implement projects that provide the ability to integrate the necessary functionality in accordance with individual requirements and features of a particular business.
  • The security of the database.
  • The source code is changed to reflect new developments in PHP and the needs of programmers. Recent updates help resolve pre-existing issues and make the framework even more user-friendly.
  • Scalability.
Disadvantages:
  • The documentation is quite complex, so it will be extremely difficult for a novice to create a full-fledged website.
Symfony

Symfony alone holds the 3rd place in popularity among frameworks. The user is asked to choose one of 3 versions for profile work:

Standard Edition-for Dating and performing common tasks. The Hello World Edition distribution is based on it, which contains exactly one optimization script for further use in benchmarks. Symfony CMF is an adaptation for developers working with CMS systems. REST Edition-optimization for working with REST architecture (online stores, search engines, etc.). The official documentation in Russian will be a definite plus. It is worth noting that it is only available for the first version of Symfony, but among the unofficial releases you will find translations of official releases, and independent high-quality documentation.
Advantages:
  • High performance thanks to bytecode caching.
  • Reliability.
  • The availability of good documentation and supportability.
  • Good support; fully formed framework.
Disadvantages:
  • Despite the availability of good documentation, this framework is quite difficult to master.
Yii

Yii in many ratings is presented as the main competitor of Symfony. There are reasons for this: both languages work with a full stack, both have sources on GitHub, and both represent template development quite well. However, while Symfony only provides a model and controller, Yii implements full-fledged MVC interaction. In addition, the interface in Yii is much more convenient, code generation using the browser element Gii is a little more powerful here, and in fact Yii will save you more time on development, and the application will work a little faster.

Advantages:
  • Easy installation.
  • Yii is a fully object-oriented framework and takes full advantage of advanced PHP functions.
  • The Yii framework can be easily customized to your needs. Almost every component of the framework is extensible.
  • Yii is closely integrated with Codeception.
  • Yii comes with a Security component that provides several methods to help you create a more secure application.
  • Yii gives us several tools that help us reduce the time spent on non-priority tasks and focus on the main task.
  • Easy to configure for better performance.
Disadvantages:
  • Strong class connectivity. Everything in the system is inherited from CComponent. Access to models via static methods, which allows you to use them even where you don't need to.
  • Integration of the template engine (Twig, Smarty) is quite weak compared to native templates. And I don't want to use native ones.

Conclusion

The choice of a framework depends on how well the team is familiar with it, and on the tasks assigned to the project. Once again, we would like to note that this is often a more expensive way of custom solutions, requiring professionalism on the part of both the performer and the customer.

Another articles