We developer custom WordPress Themes from scratch and existing platforms like Roots (Trellis, Bedrock and Sage), as well as custom WordPress Plugins. We've done so for almost the entire time we've been in business (circa 2005). Over time we've gradually discovered the limitations with WordPress but ultimately decided that the alternatives were just that: an alternative. Nothing was really better or worse, they just did things differently. We concluded that the companies and platforms that succeeded committed to their community and invested in custom development and contributing to the core.
However, over the past 4 years or so we've seen an awakening that there was a better way to do things, and that a CMS was not the same thing as an applications. Ecosystems like Laravel and NodeJS have popped up and made our lives, as developers, better in many ways.
While we have done development in Laravel, the vast majority of our work has been WordPress primarily because we were heavily invested and have a good system in place for developing sites and apps that rely on WordPress. But as we've advanced in NodeJS and Laravel we've decided it's time to begin fully migrating from WordPress.
So to help educate our own staff we compiled some key comparisons to help traditional and ordinary WordPress developers wrap their brain around Laravel, NodeJS and the respective CMS and eCommerce solutions for each. We hope this article helps you evaluate it as well!
Laravel & NodeJS are Ecosystems not Frameworks
This author corrected and clarified my perspective on this. And I found it extremely helpful in appreciated both platforms, the differences between them, and how to make a decision. That article, however, is 4 years old so it’s pretty outdated but does give a good technical list of differences. There’s some things he says that are inaccurate like Laravel not having a large community and probably some comparable things about Node.
“Pretty much everything is a threat to Laravel because it is written in PHP.” - hahahaha so true
Standards
Back End
Open Source
Available on GitHub
Database Merging - This is the single most important reason to switch from WordPress. We must have an automatic and easy to merge database system. This prevents us from making updates on client sites currently, clients get pissed when data goes missing because of an oversight, and it causes delays that have repeatedly lost clients.
Consistent GUI - I strongly prefer Twitter Bootstrap because it's platform agnostic, open source and widely contributed and adopted. WordPress allows for things like Alerts or icons of the nav menu items to use any styles the person wants. Clients, and I, HATE that. The GUI should all look and feel exactly the same on the back end for consistency.
Commercially Backed eCommerce + Forms + ?
Whatever system we use must have a pre-existing, widely supported, mature eCommerce solution as well as form solution.
I'd go so far as to say we need to ensure we can import data from WooCommerce or it's a bust.
If it’s commercially backed that is a really reassuring sign to it’s long term support and stability. eCommerce is sooo complicated and way too big of a beast for us to custom develop for if it's not matching WooCommerces' features and functionality.
Authentication - Whatever system we use must have an existing authentication process so people can login to the CMS.
Post Types & Custom Fields - It must be easy to create new post types, add new custom fields, add advanced fields like repeaters.
Front End
Minification
Caching
Asset Pipeline - All scripts, styles and images should be automatically run through framework-driven Route so they’re linted (for error finding and debugging), minified, combined (to reduce HTTP calls) and cached before being uploaded to the server instead of loading them separate like WordPress does.
Why Laravel?
Pros
Their following on GitHub (44,000) exceeds WordPress' (11,000). This indicates to me they have a strong community.
It's a mature platform, been around for 7 years .
Complete Documentation - Their documentation is robust, and feels like it accounts for everything (see below).
It has a native front end templating engine in PHP (a language I currently know) Blade .
Modular - It appears that all of the leading CMS' (October, Pyro, etc...) are modular. So we can completely replace things like
CDN Integration - The built in File Manager can be configured to offload assets to a CDN, including Amazon S3.
Mail Delivery - It has a mail delivery system and compatibility with relays like PostMark App.
Cons
Why NodeJS
I found this article written by a NodeJS fanatic that worked backward to Laravel and then explained it from that perspective. I found it very helpful in understanding both sides.
Pros
Can be run as a Single Page Application (SSA) or Server Side Rendering which is similar but a little slower. Preloading JavaScript so the user’s browser doesn’t have to wait for it to load.
Can be integrated with Laravel, partially.
Cons
Not much documentation, training and community in the world of CMS. A lot of projects, but nothing particularly mature.
Vue.js
Apparently Laravel ships with Vue.js . I don’t know anything about Vue though, but FYI.
It seems that Vue is a descendant, of sorts, to Angular. Which is a descendant, of sorts, to jQuery. It’s also a full blown framework. However it seems it’s recommended for simple applications, not a large application like a CMS.
Angular / AngularJS
Angular / AngularJS is just a slightly different way of doing things, and is a little outdated in terms of it’s performance compared to Vue.js. In the same way Angular is to jQuery.
This came up as a lead result for NodeJS CMS’, and it has an eCommerce module.
Pros
Cons
The author plainly states he’s not supporting it full time on the home page toward the footer.
Very small community.
Platform Agnosticism
With systems like Ionic and Phone Gap we can develop mobile and desktop applications in our
CMS Options
Laravel
October
Pros
Cons
Pros
They claim to have solved the issue of database merging.
Cites a responsive control panel.
Built with Vue.js
Cons
Pros
Existing modules for eCommerce, Classifieds, Real Estate and others. This is really encouraging for long term adoption rate. CMS’ that maintain a low adoption rate long term have a direct correlation to whether or not they have solutions for these things and if those solutions are both robust enough and stable enough.
WOW - Their equivelant to WordPress’ Plugin’s directory has a tab called “ Design ” that shows you the schema of the Plugin! This is very cool for debugging and ensuring compatibility and accountability in the quality of code. Brilliant.
Authentication
Social Sign In (found in eCommerce Module)
Lost Password Recovery
Remember Me
Consistent GUI
There is a GUI for alerts, tabs, buttons, etc…
SEO Fields
On the demo you’ll find a tab for meta information for pages. Which is helpful and ensures we don’t rely on Plugins like Yoast.
Debugging Utilities
It seems to have a really robust debugging utility built in and styled. It’s probably XDebug?
eCommerce
Coupon Codes
Stock Management
Single Product Pages
Search and Filtering
Cons
Asgard
Pros
Cons
Seems totally unstable and with virtually no community.
NodeJS
Total & Total eShop
This looks like a great place to start if we go with NodeJS. Seems very stable and mature. Albeit with an ugly UI, but that might be intentional to suggest it’s agnostic.
They have a clear vision that I totally agree with. And it’s amazing that they only have one developer and have accomplished what they have. I love that they have a business directory because that tells me they’re reaching out to enterprises - which is what will keep the project alive and moving.
Pros
Community - Small but growing community of 4,000.
Complete - It seems very complete . They have infrastructure and clear vision and a team from what it looks like. I love this.
Modular - They have this separate site where they’re sharing some sort of JS modules are included in TotalJS but appear to be able to run independantly in any NodeJS setup?
Plugins - They have some really cool Plugins including a:
Messenger platform that resembles Slack.
HelpDesk system.
Built In Minification - WOW - Didn’t even know that’s possible. This is awesome.
Cons
Ugly UI, suggests they don’t care about the UI which is a major problem for clients. Reminds me of Drupal.
This claims to be “The best NodeJS CMS in the universe.” haha.
Pros
Built with NodeJS
In Context Editing / Drag’n’Drop Editor
Supports Custom Post Types
Relies on MongoDB
Social login module.
Infinite scrolling built in.
Cons
Pretty small community.
Seems locked into MongoDB and I’m not sold that MongoDB is the best or should be the only choice. I could be wrong about this.
No mention of any ecommerce system or beyond.
There seem to be a lot of great things about this one. Seems very comparable to Roots in the best ways. For example they mention they auto deploy with Git - I love that.
Pros
Automated Deployment - Deployment script is prebuilt and triggered by Git.
Cons
Brand new - few months old.
Very small community 453 followers on Github.
Their website has issues rendering text. I’ve seen this when rendering text with JS. Could just be a bug with the system but suggests it’s unstable for now.
No mention of any eCommerce system or beyond.
Pros
Cons
No mention of integration with an ecommerce system.
Honorable Mentions
Cezerin looks great, but it’s strictly eCommerce and is admittedly in it’s infancy.
Conclusion
Spencer’s Opinion
Overall, I really like the direction and future of NodeJS for all the reasons you shared and more I’ve learned about.
It seems it’s less code, faster, asynchronous so no more Google Page speed issues. Etc…
However, every CMS I looked at is very young and has a very small community with unfinished websites and documentation. The only exception was TotalJS but I have some concerns about that as well.
This to me says “Leland is right that this could be the future.” and also “But now is not the time to adopt it as a replacement.”
So my conclusion is that we should invest time - starting at some point in the next year - to getting certified in NodeJS and experimenting, following and contributing to these CMS - beginning with TotalJS and Total eShop since that appears to be the most complete and adopted.
And, for now, we continue developing sites with WordPress + Roots. And do a few test sites with Laravel with a plan to fully transition to it over the next year because of its completeness, stability, community and training / certification infrastructure.
Then, in another year, maybe NodeJS and the respective CMS’ will have gained enough traction - or maybe we’ve learned them well enough to be true experts and go forward on our own.
Migrating from WordPress to Laravel and (probably) OctoberCMS
We will be migrating some, or all, of our clients from their existing WordPress setups to Laravel into the OctoberCMS (I have to test other CMS' but this is most probable). Additionally, I will be writing an article, similar to this, outlining the experience and pitfalls.
If you'd like to be notified of those applications and when this article is done please post a comment below!