Do you need a content management system?
Content management systems (CMS) can be powerful tools, enabling anyone with basic PC skills to manage their website. However, a CMS adds a massive amount of complex code to the website and can force your developer to work with outdated code that is hard to customise.
The average web design agency will use the WordPress CMS as the foundation of every website they build. This approach can initially speed up development and make things easier for the developer, but it the long term it has the opposite effect. Customising a WordPress website can be extremely difficult and this complexity will multiply over time as more customisations are added. Inevitably this leads to unworkable code and your website may need to be completely rebuilt to achieve a simple design change.
My advice is to not integrate content management to your website unless necessary. Most small company websites are simple brochure pages and a competent web developer can code these up quickly. When content management is truly needed then I can only recommend adding a modular CMS that doesn't force a complete restructuring of your codebase.
Statamic is a modern CMS
After years and years of WordPress frustration and searching for a suitable replacement, I found one.
Statamic is built on the Laravel Framework (the best framework for building websites) and it can be added at the start of a project, or later on when a CMS is required. It can be completely customised to give your content managers the exact controls they need, without adding a lot of bloat and unnecessary features.
You can read more about Statamic here.
Laravel Nova for managing data
Where Statamic excels at managing rich content, Laravel Nova excels at managing data, users and objects.
Some websites require a content management system to manage pages of rich text, images and other media assets, where other websites need a robust administration system to manage large amounts of complex data. Nova is a modern object-orientated approach that allows for fast development of custom administration systems.
Nova is something that can be added to any Laravel project when required. You can read more about Laravel Nova here.