Custom CMS Development, 2009
When we look at a final result of one’s work we can sometimes think that everything went smoothly. It is easy to make this mistake. The better the product – the more people tend to believe it was a piece of cake from the very beginning. In this article, we are lifting the curtain to share our experience – the problems we met, the battles we won. Looking for tips or ideas of technological solutions? Find out how we met the customer’s needs and dealt with technical challenges.
How it began?
In 2009, Ihor Hamal met the CEO of Webkracht, a Dutch company which specializes in web design and marketing. At that moment, they already had an initial version of their own CMS development called Exolog and around a hundred clients on the Dutch market.
The idea of multisite CMS with a customer subscription (Saas) was a very perspective decision. In this case, the client did not have to worry about server/hosting or the website’s functionality. WordPress, Drupal, Joomia could be its competitors, but they weren’t flexible enough for making e-commerce decisions or catalogs and could not provide other much-needed functionality.
We took up the project to make the best of it. In 2011, Serge Molodyk and Max Tatarchenko joined the team. We refactored the CMS using the most advanced technologies that existed at that time. Let’s take a closer look at the workflow and what came out of it.
DescriptionWe developed software which deploys on a Linux-server with a LAMP stack. The server admin panel provides an option to manage clients’ accounts and create websites.
Behind the projectWeb server is based on Nginx + PHP-FPM. We found out that this link turned out to be the most reliable one and able to manage more load than Apache. CRM was rewritten from legacy PHP4 to Zend Framework. MySQL and MongoDB were used for the database. CRM admin panel was implemented on ExtJS. It was one of the best cross-platfom solutions at that time.
On the roadWe spent approximately 3000 hours refactoring CMS from legacy PHP4 to the modern Zend Framework. The main problem was the maintenance of existing websites. In addition to refining the kernel, we had to maintain the old version of the API. The CMS has the ability to create a custom data structure with one-to-many and many-to-many relationships. Since the system is multisite, it was not possible to generate tables with a normalized data structure.