Pagekit: Symfony Modular CMS Overview

Pagekit: Symfony Modular CMS Overview

Meet: Pagekit is a new modular CMS from the German template maker YOOtheme, based on Symfony components, as well as Vue.js, Webpack, Doctrine and other modern technologies. Pagekit was conceived as a combination of ease of management and flexible development capabilities - something that the well-known PHP-based CMS lacks and has many anachronisms.

Pagekit was initially positioned as a platform in which modern web programming techniques were used, and therefore having a high entry threshold, which can be noted as an undoubted advantage, since this will filter out developers with insufficient qualifications who produce products of dubious quality, which is observed on systems with a low entry threshold . This means that writing extensions will be done by people who have a certain idea of ​​the code culture and are familiar with modern technologies, or have sufficient training to study them in the process of getting to know Pagekit.

The official site of Pagekit.
Project on Github.

This review was prepared in order to familiarize the audience with the new CMS, its capabilities and prospects.

New technologies - new opportunities


More than a year ago, the alpha version 0.8 was presented to the public. During this time, the developers refactored, made a large number of improvements, changed the API and significantly reworked the platform. With the release of version 0.10, the following changes have occurred:

  • The set of technologies on which Pagekit is built has changed;
  • Drastic changes in the API;
  • New installer;
  • Rebranding the site pagekit.com;
  • Rewritten documentation.

In addition, it should be noted the lack of compatibility between alpha and beta versions, as well as a migrator, so if you created a test site, you will have to collect it again and transfer the content manually. Which, in other matters, is logical: it was an alpha version, which is not suitable for use on production sites.

Architecture

The extensible Pagekit architecture is based on the popular Symfony components, which have become the de facto standard in modern PHP applications. Dependency management is done through Composer, which allows you to declare dependencies to your libraries and simplify code writing. Out of the box, Doctrine is introduced - an object-relational mapping (ORM) mechanism for PHP version 5.3 and older, which allows working with the database as transparently as possible. Webpack

is now used as a project collector , according to experts, which is a breath of fresh air after Grunt. The advantage of the multi-threaded Webpack collector is its incredibly fast performance, which will be appreciated by the developers. The user interface is based on Vue.js

- Lightweight and flexible front-end framework that provides MVVM data communications via API and surpasses its more well-known counterparts in simplicity and performance. If you are familiar with Angular, then you will surely love Vue.js. In addition, jquery is enabled by default.

And, finally, UIkit is used as the front-end framework - a lightweight framework from the same studio, which is an alternative to Bootstrap, primarily due to its small size with the same functionality as its capabilities.

Installation

The installer pleases with a pleasant and intuitive interface, where everything is simple and clear. First, the system suggests choosing the installation language. The next step is to connect the database with a typical set of input fields. Next, you need to get a user - the site administrator. The final step is to enter the name of the site and its description. In general, nothing complicated.

Pagekit system requirements can be found here .



User interface

After authorization in the admin panel, an interface for managing the site will be available to you. The developers took the path of simplification, but they were too smart and made the hierarchy confusing. As a rule, the logical chain should be intuitive based on the names: general settings, widgets or installation section. In the list of extensions, it would not hurt to display the type (plugin, widget, etc.).





Update - it is more logical to transfer to Settings as part of the system core. In other matters, this is particular. A global problem is the name of the administration panel menu items (for example, Settings is better called Global settings) and implicit hierarchy. In my subjective opinion, the admin interface is the weakest link in the system. While working with Pagekit, I was not used to the interface, making extra clicks in the search for the desired section (for example, do I need to install a plugin - is it Site or System? Actually, the last one, but the confusion arises due to implicit section names)

Editor

Nice and convenient markdown editor (hello to bloggers). You can disable markdown mode and work with html tags and, of course, there is a preview mode. Inserting images into the editor will not be difficult; in the image loading mode, just drag the image from the desktop with the mouse and it will be instantly flooded. Conveniently.

Among the shortcomings when working with content, I note the lack of Meta-description meta-keywords and title parameters that the user could manage, which is important for website promotion. In addition, there is still no taxonomy as part of the application as a whole. Materials are published in the blog section without the possibility of choosing a category.



Embedded Market

An interestingly implemented extension directory for Pagekit. You will not find a section on the CMS website listing all existing extensions. They are available only through the built-in Pagekit market. To begin with, this is not bad, but what will happen when the number of extensions exceeds one hundred? It is more convenient to calmly find the necessary addition on the official website, familiarize yourself with its description, and when working with the website, install it immediately.

In the current implementation of the market, the separation of extensions into categories is not enough. This would be convenient for navigation. Now all additions are displayed in one list. In addition, it does not interfere with displaying in the market a link to a demo and to a product page.
Extensions are installed in several ways: the installation package is downloaded from the repository, after which it is unpacked and installed. It is also possible to install the installation package in the classical way (if there is an archive).



Localization and documentation

To date, more than 20 localizations into various languages ​​are ready and a number of localizations are in the process of translation ( project on Transifex ). Documentation is available for developers , including video tutorials. If you decide to write your own extension for Pagekit, all the basic information is available. In addition, on the network you can find translation of documentation into Russian.

Development and Prospects


Web technologies are developing at a rapid pace and their proper application is the key to success. However, time often works against developers, since any delay means a decline in interest from interested parties. And it is important to seize the moment, being on the wave of interest and use a credit of trust.

Technologies without marketing are doomed.
History is full of examples of unique technological solutions that could take their rightful place in the market, however, due to a failed marketing strategy, worthy developments were simply unnoticed and lost their relevance.
At the same time, the initially technologically weak product with proper marketing and proper positioning occupies a strong position and a niche, crowding out competitors, as it gives users what they expect. In this case, the product can technologically develop at a slow pace, but win due to the dynamics of the community. The developers of such a system can be called riding a wave.

Now back to Pagekit. As can be seen from this review, the development team is enthusiastic and is working on the technological development of CMS. This is a really interesting and promising project. However, technology alone is not enough for success. Pagekit needs a powerful infrastructure and a powerful community, which will make the platform attractive to both third-party developers and the end user. Of course, now the platform is just being formed, and still ahead, but to achieve success it is necessary to solve the following problems:

Positioning.As you know, to solve each problem, it is better to use your own CMS. Wordpress is convenient for a blog, specialized solutions for Internet commerce, a whole galaxy of CMS is suitable for a corporate website, and Drupal is good for a portal, etc. on the example of Ghost, we saw how the new CMS can slightly displace titanium Wordpress. In the future, you need to answer the question: what goals and objectives does Pagekit solve? If the platform focuses on the end user, then you need to give him ready-made solutions, examples and documentation. If the platform is more focused on developers, you need to build an appropriate ideology. I’ll make the assumption that Pagekit will nevertheless be more oriented towards developers, since this audience is closer, it’s more interesting to interact with it and, moreover,

Infrastructure. Building an infrastructure covering various areas from documentation to a catalog of extensions and involving enthusiasts in the development process of the platform. The work, in other matters, in this direction is moving as far as possible by the development team, and at the moment they are actively working on the documentation section with video examples.

Community.The life of any CMS is its users. The more users that get into Pagekit, the better the result. To do this, prepare a friendly environment in which I would like to return again and again. In fact, what do users need? Get a solution. And for developers - so that their contribution does not go unnoticed. Github is too highly specialized service and will not bring moral satisfaction to third-party contributors, whose contribution will go unnoticed. Gitter chat and Twitter are not suitable for serious discussion - this is good for solving short-term issues, but not suitable for discussing serious topics. We need a forum where the issues discussed will be divided by topic, in addition, each of the participants will be able to build a certain reputation.

Roadmap.Approximate release dates and plans for the implementation of the functionality are what are more interested in users of the system who are already working with the product. Moreover, it would be more convenient to view the chronology from the beginning to the current moment on a separate page.

Popularization Perhaps the key point for any product that requires constant attention and resources. In this direction, YOOtheme is doing some work: the Pagekit name is heard at some Symfony conferences in Europe: either CMS is presented as a stand, or Pagekit acts as a sponsor.

Why get carried away by Pagekit?


At the time of writing this review, version 0.10.1 (close to stable) is relevant and is not recommended for use on production sites. However, developers should pay attention to Pagekit and explore the capabilities of this platform, since the flexible architecture and the use of advanced technologies provide a powerful tool for developing a framework and its elements based on Symfony. The existing development environment is quite suitable for writing narrow-minded solutions, which, in the future, can result in full-fledged third-party products for this CMS.

Also popular now: