7th February 2021 < back


WordPress, Laravel Nova, Statamic, or WebFlow?

This article is a work in progress and may contain spelling errors and nonsensical sentences.

My Thoughts on Website Content Management

Content management systems are powerful when used correctly, but they add a massive amount of complex code to your website and a whole mess for your web developer to untangle. This can make most website customisations difficult and time consuming to implement, and continued development of a website can be much more expensive in the long run. There are also some things that you can't, or just shouldn't, do with content management systems, but I'll come back to those.

I instead advise not to use a content management unless absolutely necessary. Allow your web developer to take advantage of all the modern website development tools, which have come on leaps and bounds in recent years. Frameworks like Laravel, Vue and Tailwind allow coders to build complex structures and striking designs very quickly. The code is kept clean and easy to maintain all the while. The longetivity of your website's codebase also increases, so you won't have to start from scratch quite so often.

When content management is truly needed - and it can be an invaluable tool for building a rich website experience - then I can only recommend adding modular content management systems that don't compromise the core of your custom codebase. Below is a selection of content management systems that I work with or am intrigued by.

WordPress:

WordPress has been at the forefront of website building and content management for a long time. It has taught us a lot and was the first to come up with solutions to many CMS problems.

In terms of optimisation, customisability and data integrity - these days, there are faster, easier and safer ways to do things. The WordPress database is designed around a blog post architecture, but skilled programmers can hack together custom data types using meta fields and so use WordPress for all kinds of applications. It's not true Object Orientated programming though, and OO is so much more powerful and flexible.

I would only use Wordpress if you don't have access to an experienced OO web programmer, or if you plan to build a simple ecommerce website, blog or brochure website yourself.

If you truly must use WordPress and you have a decent budget then the Roots framework is the best way to build a WordPress website using modern development techniques.

+ Implements a lot of great, flexible structures
	+ Media libraries
	+ Custom fields for web pages
	+ The Gutenberg block editor
+ Highly extensible. Lots of premade plugins will do what you need without the need for custom development.
+ A lot of designers and developers are familiar with it.
+ It can still be great for one-use or short-lifespan websites.
- WordPress dashboards can get so messy that even IT professional struggle with them. Clients will rarely engage with their WordPress dashboard.
- Poorly optimised front-ends. Laggy loading. Low Google Page Speed scores.
- Old and difficult coding methodology. It handicaps modern development techniques.
- It's not OO programming. Simple structures are difficult to put together.
- Difficult migrations and re-developments. Orphaned data. Lost features.
- You can get stuck with undesirable plugin features and annual fees.

Laravel + Laravel Nova:

I love the Laravel framework, and Nova is an admin panel for Laravel. I believe that it's the best option available when an admin interface is needed to manage important data and assets of a website. A small degree of content and media control can be granted to the administrator but it should be a secondary goal. It's great for simple blog sites, and my own blog is built on it, but it's not really designed for rich content management.

Where Nova is excels is it's integration into the Laravel Framework. You can set it up to manage any kind of database structure and perform actions. For example, I recently set up to Nova to manage submissions for an art repository and sporting event data for a member-based website. It's true Object Orientated data administration and so it's incredibly flexible.

+ Object Orientated Content Management
+ It excels at managing database objects and performing application tasks. 
+ Strict Control
+ Scalable
+ It's for Laravel
- Offers little creative control for your content manager.
- Media gallery not built in and the packages don't feel great.

Statamic:

Statamic can be used to grant a high degree of text, media and page editing control to the content manager while still taking advatage of all the brilliant architecture of Laravel.

It's flexible enough for to configure custom page builders but I don't recommend doing that. Simple post building is fine but when it comes to complex designs your content manager should be limited to editing specific template areas and fields. Otherwise you could increase the development time massively and make changes very difficult in future.

+ Very Flexible Fieldsets.
+ It excels at managing fields for various templates and designs.
+ Flexible media galleries.
+ Can grant a small degree of creativity to the content manager.
+ It's for Laravel
+ Live* content management
- It feels more separated from Laravel.
- Database communication is not it's focus. OO suffers.
- User structure can conflict with existing apps.

WebFlow:

Build a great looking, fast, modern website with a tool that kind of looks like Photoshop.

I haven't used WebFlow but I think it could be a great solution for an experienced designer, who is familiar with CSS, to quickly put together top notch designs and give their clients access to page text.

As website requirements expand, the project can be moved onto a more flexible framework such as Laravel.

+ Can produce beautiful websites
+ Assets seem very well optimised
+ Fully Live content management can be granted to the client
- Not the best choice for custom applications. A website could easily expand beyond the available features.
- You still need to understand CSS3 features like Flexbox and Grid when bulding pages.

Some old features should be left behind

WIP...

Can't decide on Statamic or Nova? You can use both!

WIP...

Sometimes you just have to buid totally custom dashboards and tools.

WIP...

Article category: General

My name is Stuart and I am a Web Developer from Dublin
Visit My Main Website