Reward your future customers with a game
We all love surprises, don't you? Check out our charming bunny ice-skating game!
EPIC uses WordPress to manage the content of the websites it produces, and has been doing so in ‘headless’ mode for several years now. This approach allows development to be decoupled, but is not without precautions.
WordPress is still the most widely used CMS in the world, benefiting from a large community that ensures its constant evolution. Numerous commercial and free plugins are available, covering a wide range of functionalities (unfortunately not always headless-aware, as we will come back to…). The administrator experience remains one of the best compared to any established CMS.
All in all, WordPress remains the optimal solution for EPIC in managing content both ergonomically and efficiently.
A headless CMS separates the presentation layer (frontend) from the content management layer (backend). This division enables content to be managed on one side and exploited across different digital channels on the other. Such separation facilitates the work of developers, who can focus on their respective areas of expertise and speed up development. Unlike in monolithic CMS, where content is integrated into templates, in headless CMS, content is structured, making it reusable in a multitude of ways. This approach opens up to many possibilities that were previously unattainable.
In terms of performance, this separation facilitates the introduction of numerous optimization techniques at different levels, enabling much more dynamic scalability.
Considering that WordPress was originally not designed as a headless CMS and that new offerings regularly appear on the market, why choose WordPress? Unfortunately, most of these alternatives have major shortcomings, making them unsuitable for EPIC.
Since EPIC chose WordPress, which is not natively headless, we had to tailor the solution to meet our needs.
WordPress offers a Rest API that, theoretically, exposes content automatically. The problem with this API is that it doesn’t “know” the ACF fields we use to structure content (a topic for another article), which severely reduces its usefulness.
So we developed our own MVC (Model-View-Controller) on WordPress. Controllers expose data in JSON via “decorators”, a development pattern that wraps an object to enhance its capabilities without directly modifying it. In our case, this pattern mixes native WordPress posts with ACF fields and transforms the whole thing into JSON that can be consumed by the frontend.
EPIC’s objective is to provide a first-rate user and developer experience, while always keeping site performance and security in mind. To achieve this, it was very important for us to never modify the core of WordPress but rather to exploit native functionality to the full extent. This ensures that we can update as frequently as possible and install useful compatible plugins without adaptation.
Obviously, none of this is “free”. Since WordPress wasn’t originally designed for headless operation, certain difficulties had to be overcome.
This has less to do with headlessness than with the extensive use of ACF fields, but particular attention had to be given to the way content is constructed to avoid exponential queries generation. Once all the performance tricks are implemented, our internal cache plugin pulls the average performance of our sites under 50ms.
As WordPress is not a natively headless CMS, most plugins offering front-end functionality don’t work as is. Research is therefore critical to determine their usability. “Admin” plugins, on the other hand, are usually much easier to integrate. EPIC has in its toolbox a series of indispensable plugins such as Polylang Pro, ACF Pro, iThemes Security, etc., which make our day-to-day work easier.
WordPress is a mature CMS with a very large community, and despite its “age”, it remains modern and high-performance. While EPIC is constantly on the lookout for the “next generation” solutions, at the moment there is nothing that can effectively replace this venerable CMS.
We all love surprises, don't you? Check out our charming bunny ice-skating game!
The province of Liège approached us to come up with a tablet app to tackle physical and mental health issues in children. The app will be deployed in all primary schools of the province.