In PHP world there are two big groups of developers – those who work with Content Management Systems (WordPress, Drupal etc.) and those with frameworks (Laravel, Symfony etc.). And rarely people work with both worlds – cause their philosophy is fundamentally different.
But when you get a new project from a client – how to decide whether Laraver is the best choice? Or maybe simple WordPress would be enough and would save time/money? Sometimes it’s not that easy to decide. So here are my tips – questions you need to ask.
1. Content or user actions?
WordPress is a system for managing content. So if the project falls under the category of content-based portal like blog/newspaper/course/portfolio – then WordPress is usually no.1 choice. It doesn’t make sense to re-create with Laravel all great features of content management – there’s a whole lot of them under the hood: draft auto-saving, images gallery, tags/categories etc.
On the other hand, if your project is full of user-based actions like registration, internal messages, upload content, voting, matching profiles, payment history and similar stuff – then custom framework-based code is much better. To be fair, all of that is POSSIBLE to achieve with WordPress and plugins, but for long-term projects it might be harder to maintain, cause you would be attached to the plugins and their structure/updates etc.
2. Plugins or packages?
These days development is not only about writing code, but also about re-using existing libraries without reinventing the wheel. If you get job done quicker with a help of plugin, then it’s profit for the client and for you too, win-win.
So, my point – search for available plugins/packages on the market and evaluate how much of the functionality can be done with them – if it turns out that WordPress with plugins has all you need, then great, but the same goes for Laravel packages – they might save time.
3. MVP or serious project?
Question – what is the goal of the client? Usually there are three options: quality, speed, price. So if, for example, a client wants to test the market and to create something fast/cheap, WordPress is quite good for it and you can “fake” a lot of things in the first version of the website. But keep in mind that if the project grows then you probably would have to re-create it with the same Laravel or, probably worse, support WordPress and “fake” even more things.
And if the client wants serious and maintainable project from the beginning, it does make sense to invest in proper custom architecture with Laravel or Symfony.
4. Who will work on the project?
The decision is not only about yourself, it’s about the whole team. Who will work on the code and on actually USING the project? What is client more comfortable with – WordPress adminpanel or your custom one? Would you have to teach the client how to use the system?
Maybe project will have partners in the future for integration – what system is more comfortable for them? In short, think about people around the project.
* * * * *
Any more concerns you would advice? How do you decide which technology to use on your next project?