Kind of stuck here? On one hand, you have all those software development technologies that are gaining momentum these days — API, serverless computing, microservices — while on the other hand, you have a bulky "wishlist" of functionalities and expectations from your future CMS. So, what are those types of content management systems that will be relevant many years to come and that cover all your feature requirements?
And your list of expectations from this "ideal" enterprise-ready content infrastructure sure isn't a short one:
to enable you to build content-centric apps quick and easy
multi-languages support
user role management
a whole ecosystem of plugins
inline content editing
to be both user and developer-friendly
personalization based on visitors' search history
to support business agility
search functions in site
... and so on.
Now, we've done our research.
We've weighed their pros and cons, their loads of pre-built features and plugins ecosystems, we've set them against their “rivaling” technologies and selected the 3 content management systems worth your attention in 2019:
But What Is a Content Management System (CMS)? A Brief Overview
To put it simply:
Everything that goes into your website's content — from text to graphics — gets stored in a single system. This way, you get to manage your content — both written and graphical — from a single source.
With no need for you to write code or to create new pages. Convenience at its best.
1. Traditional CMS, One of the Popular Types of Content Management Systems
Take it as a... monolith. One containing and connecting the front-end and back-end of your website: both the database needed for your content and your website's presentation layer.
Now, just turn back the hands of time and try to remember the before-the-CMS “era”. Then, you would update your HTML pages manually, upload them on the website via FTP, and so on...
Those were the “dark ages” of web development for any developer...
By comparison, the very reason why content management systems — like Drupal, WordPress, Joomla — have grown so popular so quickly is precisely this empowerment that they've “tempted” us with:
To have both the CMS and the website's design in one place; easy to manage, quick to update.
Main benefits:
your whole website database and front-end is served from a single storage system
they provide you with whole collections of themes and templates to craft your own presentation layer
quick and easy to manage all your content
there are large, active communities backing you up
Main drawbacks:
they do call for developers with hands-on experience working with that a specific CMS
except for Drupal, with its heavy ecosystem of modules, content management systems generally don't scale well
they require more resources — both time and budget — for further maintenance and enhancement
A traditional CMS solution would fit:
a small business' website
a website that you build... for yourself
an enterprise-level website
… if and only if you do not need it to share content with other digital devices and platforms.
You get to set up your website and have it running in no time, then manage every aspect of it from a single storage system.
Note: although more often than not a traditional CMS is used to power a single website, many of these content infrastructures come with their own plugins that fit into multi-site scenarios or API access for sharing content with external apps.
2. Headless CMS (or API-First Pattern)
The headless CMS “movement” has empowered non-developers to create and edit content without having to get tangled up in the build's complexities, as well. Or worrying about the content presentation layer: how it's going to get displayed and what external system will be “consuming” it.
A brief definition would be:
A headless CMS has no presentation layer. It deals exclusively with the content, that it serves, as APIs, to external clients.
And it's those clients that will be fully responsible for the presentation layer.
Speaking of which, let me give you the most common examples of external clients using APIs content:
static page application (SPA)
client-side UI frameworks, like Vue.js or React
a Drupal website, a native mobile app, an IoT device
static site generators like Gatsby, Jekyll, or Hugo
A traditional CMS vs headless CMS comparison in a few words would be:
The first one's a “monolith” solution for both the front-end and the back-end, whereas the second one deals with content only.
When opting for a headless CMS, one of the increasingly popular types of content management systems, you create/edit your website content, and... that's it. It has no impact on the content presentation layer whatsoever.
And this can only translate as “unmatched flexibility”:
You can have your content displayed in as many ways and “consumed” by as many devices as possible.
Main benefits:
front-end developers will get to focus on the presentation layer only and worry less about how the content gets created/managed
content's served, as APIs, to any device
as a publisher, you get to focus on content only
it's front-end agnostic: you're free to use the framework/tools of choice for displaying it/serving it to the end-user
Main drawbacks:
no content preview
you'd still need to develop your output: the CMS's “head”, the one “in charge” with displaying your content (whether it's a mobile app, a website, and so on)
additional upfront overhead: you'd need to integrate the front-end “head” with your CMS
In short: the headless CMS fits any scenario where you'd need to publish content on multiple platforms, all at once.
3. Static Site Generators (Or Static Builders)
Why are SSGs some of the future-proofed content management systems?
Because they're the ideal intermediary between:
a modular CMS solution
a hand-coded HTML site
Now, if we are to briefly define it:
A static site generator will enable you to decouple the build phase of your website from its hosting via an JAMstack architectural pattern.
It takes in raw content and configures it (as JSON files, Markdown, YAML data structures), stores it in a “posts” or “content” folder and, templating an SSG engine (Hugo, Jekyll, Gatsby etc.), it generates a static HTML website with no need of a CMS.
How? By transpiring content into JSON blobs for the front-end system to use. A front-end system that can be any modern front-end workflow.
And that's the beauty and the main reason why static site generators still are, even after all these years, one of the most commonly used types of content management systems:
They easily integrate with React, for instance, and enable you to work with modern front-end development paradigms such as componentization and code splitting.
They might be called “static”, yet since they're designed to integrate seamlessly with various front-end systems, they turn out to be surprisingly flexible and customizable.
Main benefits:
they're not specialized in a specific theme or database, so they can be easily adapted to a project's needs
Jamstack sites generally rely on a content delivery network for managing requests, which removes all performance, scaling, and security limitations
content and templates get version-controlled right out of the box (as opposed to the CMS-powered workflows)
since it uses templates, an SSG-based website is a modular one
And, in addition to their current strengths, SSGs seem to be securing their position among the most popular types of content management systems of the future with their 2 emerging new features:
the improvement of their interface for non-developers (joining the “empower the non-technical user” movement that the headless CMS has embraced); a user-friendly GUI is sure to future-proof their popularity
the integrated serverless functions; by connecting your JAMstack website with third-party services and APIs, you get to go beyond its static limitation and turbocharge it with dynamic functionality
To sum up: since they enable you to get your website up and running in no time and to easily integrate it with modern front-end frameworks like Vue and React, static site generators are those types of content management systems of the future.
The END!
What do you think now? Which one of these CMS solutions manages to check off most of the feature and functionality requirements on your wishlist?
RADU SIMILEANU / Feb 26'2019
How do you run a page speed audit from a user experience standpoint? For, let's face it: website performance is user experience!
What are the easiest and most effective ways to measure your Drupal website's performance? What auditing tools should you be using? How do you identify the critical metrics to focus your audit on?
And, once identified, how do you turn the collected data into speed optimization decisions? Into targeted performance improvement solutions...
Also, how fast is “ideally fast”, in the context of your competition's highest scores and of your users' expectations?
Here are the easiest steps of an effective page performance audit, with a focus on the prompt actions you could take for improving it.
1. Front-End vs Back-End Performance
They both have their share of impact on the overall user experience:
Long response times will discourage, frustrate and eventually get your website visitors to switch over to your competition.
Front-End Performance
It's made of all those elements included in the page loading process, as being executed by the browser: images, HTML, CSS and JavaScript files, third-party scrips...
The whole process boils down to:
Downloading all these elements and putting them together to render the web page that the user will interact with.
Back-End Performance
It covers all those operations performed by your server to build page content.
And here, the key metrics to measure is TTFB (Time To First Byte).
It's made of 3 main elements:
connection latency
connection speed
the time needed for the server to render and serve the content
2. What Should You Measure More Precisely? 5 Most Important Metrics
What metrics should you focus your page speed audit on? Here's a list of the 5 most relevant ones:
a. Speed index
The essential indicator that will help you determine the perceived performance on your Drupal website:
How long does it take for the content within the viewport to become fully visible?
When it comes to optimization techniques targeting the speed index, “battle-tested” techniques, like lazyloading and Critical CSS, are still the most effective ones.
b. Time to first byte
As previously mentioned, the back-end performance:
Measures the time passed from the user's HTTP request to the first byte of the page being received by the browser.
c. Start render
The time requested for rendering the first non-white content on the client's browser.
Note: the subsequent requests are “the usual suspects” here, so you'd better ask yourself how you can reduce, defer or relocate them. Maybe you'd consider a service worker?
d. Load time
How long does it take for the browser to trigger the window load event? For the content on the requested page to get loaded?
Note: consider enabling HTTP/2, with a dramatic impact on individual page requests.
e. Fully loaded
It measures the time of... zero network activity. When even the JavaScript files have all been already fired.
Note: make sure your third-party scripts are “tamed” enough. They're the main “responsible” factors for high fully loaded times.
3. How to Perform a Page Speed Audit: 5 Useful Tools
Now that you know what precisely to analyze and evaluate, the next question is:
“How do I measure these key metrics?”
And here are some of the easiest to use and most effective tools to rely on when running your page performance audit:
WebPageTest
PageSpeed Insights
Lighthouse
SpeedCurve
Chrome DevTools
Use them to:
collect your valuable data on all the above-mentioned metrics
get an insight into the page rendering process performed by the browser
identify the “sore spots” to work on
automate repeated page speed tests
keep monitoring your website (SpeedCurve) across multiple devices and in relation to your competition's performance
get a peek into your web page's structure and into the process of downloading resources over the network (Chrome DevTools)
4. 3 Key Benchmarks to Evaluate Your Website's Performance
So, now that you've got your “target metrics” and your toolbox ready, you wonder:
“What should I measure those metrics against?”
And here, there are 3 major benchmark-setting processes to include in your page speed audit:
determine your competition: your current production site before its rebuild, your direct and indirect “rivaling” websites
determine the key pages on your Drupal website: homepage, product listing page, product detail page etc.
measure your competition's web page performance
5. Most Common Performance Bottlenecks & Handiest Solutions
Here are the most “predictable” culprits that you'll identify during your page speed audit, along with the targeted performance-boosting measures to take:
Factors Impacting the Front-End Performance & Solutions
a. Too many embedded resources
Too many embedded stylesheets, JavaScript and images are an extra challenge for your page loading time. They'll just block the rendering of the page.
Each connection setup, DNS lookup and queuing translates into... overhead, with an impact on your site's perceived performance.
The solution: consider caching, minification, aggregation, compression...
b. Oversized files
And images (stylesheets and JavaScript) sure are the main “culprits” for long response times on any Drupal website.
The solution: consider aggregating/compressing them, turning on caching, lazyloading, resizing etc.
c. Wrongly configured cache
Is your website properly cached? Have you optimized your cache settings? Or is it possible that your Drupal cache could be broken?
If so, then it will have no power to reduce latency, to eliminate unnecessary rendering.
The solution: look into your response headers, URL/pattern configuration, expiration and fix the problem cache settings.
d. Non-optimized fonts
Your heavy fonts, too, might play their part in dragging down your website.
The solution: consider caching, delivery, compression, and character sets.
In conclusion: do re-evaluate all your modal windows, third-party scripts and image carousels. Is their positive impact on the user experience worth the price you pay: a negative impact on your page loading time?
Word of caution on caching:
Mind you don't overuse caching as a performance boosting technique. If there are serious back-end performance issues on your website, address them; using caching as the solution to mask them is not the answer. It works as a performance improvement technique on already working systems only.
Factors Impacting the Back-End Performance & Solutions
And there are some handy, straightforward measures that you could take for addressing back-end performance issues, as well:
Consider optimizing the page rendering process directly in the CMS.
Upgrade your server's hardware infrastructure (e.g. load balancing, RAM, disk space, MySQL tuning, moving to PHP7).
Keep the number of redirects to a minimum (since each one of them would only add another round trip, which bubbles up to the TTFB).
Reconfigure those software components that are lower in the server stack (caching back-end, application container).
Consider using a CDN; it won't serve everything, plus it will lower the distance of a round trip.
Consider using Redis, Varnish.
6. Final Word(s) of Advice
Here are some... extra tips, if you wish, to perform a page speed audit easily and effectively:
remember to run your audit both before and after you will have applied your targeted performance improving techniques
grow a habit of tracking weekly results
define the goal of your Drupal website performance test: what precisely should it test and measure and under which circumstances?
… for instance, you could be analyzing your site's back-end performance only: the time requested for generating the most popular web pages, under a load of 700 concurrent visitors, let's say (so, you won't be testing connection speed or the browser rendering process)
pay great attention to the way you configure your page speed audit system if you aim for accurate and representative results
The END!
This is the easy, yet effective way of performing a website speed and optimization audit. What other tools and techniques have you been using so far?
Photo by Veri Ivanova on Unsplash.
RADU SIMILEANU / Feb 14'2019
Have you just launched your website and it got hit by an unexpected... “tsunami wave of traffic? Or maybe it's that crappy web host that couldn't back it up? Or is your WordPress website a few years old already? And has it grown by now into this heavy block of content and ecosystem of plugins dragging it down? Or you're considering switching your website to WordPress and you're concerned about the fluctuations in the page loading speed? No matter which one of these scenarios fits your own, now you must be wondering: “What are the best WordPress cache plugins for 2019?”
For, there sure are many, both paid and free. And almost every one of them has its own “fan club” of developers and WordPress website owners.
But does “the most popular” also mean the most effective for your own theme and setup?
Now, to free you of the burden of evaluating dozens of highly-recommended caching plugins for WordPress, we've done it for you.
The result? A shortlist of 5 WP cache plugins with the highest scores at successive speed tests.
But First: What Is a Caching Plugin? And Why Do You Need It?
Here's a “non-WP cache plugin for WordPress” scenario:
A user accesses a page on your WordPress website. Then a whole “madness” of PHP code executions and database queries for retrieving data goes on “behind the curtains”. And this process — to generate web page content dynamically — is being performed at the cost of page loading speed.
Now, if the same user accesses your website after you've integrated it with one of the best WordPress cache plugins for 2019, here's what happens:
The caching plugin will have turned that page from a dynamic into a static HTML page. Its content (written text, plus other page elements that don't need to be re-loaded every single time) is already saved and copied on the server, in a cache folder. And so, it gets served in an instant.
No more time-consuming database queries to retrieve the required data. No more code executions in the background for displaying that page.
A bit more clear now why you need a WordPress caching plugin? Why it becomes both the handiest and the most critical tool in your “performance tuning” emergency kit?
Summing up: It's enough for a page on your website to be accessed just once. Then, your cache plugin will instantly create a static version for it. From then on, each time a visitor accesses that web page, he/she will be served its static version. It will no longer be dynamically generated.
With a huge impact on your web page's loading time.
1. W3 Total Cache
A plugin that starts caching right out of the box.
Just install it and... that's it. No need to work your way through pages of settings to turn on its core functionality.
It comes full-featured by default:
minification and GZIP compression support
object/browser/page cache (and so on)
AMP and SSL support
CDN support
support for importing attachments straight into the media library
Still, to be 100% sure that it works at full capacity right from the start:
access the General page
turn on the “Toggle all caching types” option
Does it help to know that high performing websites like Web Designer Depot, Mashable and Smashing Magazine have this caching tool plugged in?
Or that it boasts over 1 million active installs?
Main drawbacks
Things get a bit... overwhelming (especially for newbies) when it comes to custom-tuning its functionality to suit specific caching needs. Let's say that you want to update the default life of the cached data.
And I'm taking here about no less than 16 settings pages, with tons of customization options for you to scan through. There's one for every type of caching (page, database, browser etc.)
2. Comet Cache, One of the Best WordPress Cache Plugins for 2019
Another one of those “install and run” type of caching plugins. Simple set up and ease of use.
Some of its specific features, compared to other plugins, are:
the use of snapshots for speeding up the reading
serving cached content only to non-logged in visitors and to those who haven't submitted a comment recently
accompanying each one of its configuration settings by detailed explanations
Note: do keep in mind that its free version will provide you with basic features only; for more advanced ones you'll need to upgrade to the premium version.
Main drawbacks
Having to pay for its pro features and its whole “network” of configuration options might discourage some of the users.
3. WP Super Cache
Free, “notorious”, highly vetted, with a simple set up, and overloaded with customization options.
This is the recipe behind the best WordPress cache plugins for 2019 and WP Super Cache is one holding all the “ingredients”.
And when I say “simple set up”, I think of its Options page with no more than 7 tabs.
Being basically pre-configured already, you'll only need to:
go to "Easy" tab and enable caching
keep monitoring your cached pages in the “Contents” tab
It's built a reputation of serving static content to 99% of your site's visitors. And it relies on PHP and mod_rewrite for that.
“What does WP super cache do?”
Its built-in features range from:
cache pre-loading
to content delivery networks support
REST API endpoints enabling you to access the settings
GZIP compression
dynamic caching
caching for mobile users
to scheduler for clearing the cached pages
In case you want to tune its performance, you can always go to “Advanced Settings” and enable more caching features like:
compressing files
“Don't cache pages for known users”
Main drawbacks
The fact that it doesn't deliver static files to logged in users and that it's not fully compatible with some WP themes might restrain some from using it.
4. WP Rocket
Not just one of the best WordPress cache plugins for 2019, but one of the most beginner-friendly, as well.
And one of the plugins that come with a price tag on...
All it takes for you is to activate it and... you're all set. Its crawler will instantly start fetching your web pages to set up the cached files.
It will also turn on all the default caching features such as:
page cache
cache-preloading
GZIP compression
No need for you to manually enable them.
As for its optional features, I would mention:
lazy loading images
DNS pre-fetching
minification
CDN support
As already mentioned, the plugin triggers lazy images loading, meaning that images on your WordPress website get downloaded as they're being scrolled down. Not in advance.
And this particular feature alone is already powerful enough to speed up your page loading times dramatically. Especially if you have lots of images on your web pages.
Its Settings tab is a 7-section area that's not even close as intimidating as W3 Total Cache's one.
In fact, there's only one reason for using the Advanced Options tab:
To select the files and the pages that the plugin shouldn't minify and cache.
Main Drawbacks
The obvious one: it doesn't have a free version.
5. WP Fastest Cache
If you're looking for a... minimalist, yet efficient caching plugins, this might just be the one.
Fewer customization options might translate as fewer risks to get tangled up in configuration settings. You get to grips with it within minutes.
To give you an idea:
There's only one settings page, divided into 3 tabs: display settings, delete cache and minified files and set up the rate for deleting the cached files.
“And how does it work?”
It uses mod_rewrite to set up static files on your WordPress website.
Now, don't think that less tweaking options means less critical core features.
On the contrary. Out of the box, the plugin provides you with:
compression
browser caching
minification
options for pairing CSS with JavaScript files
SSL and CDN support
cache timeout for certain pages
Simplicity and efficiency at its best! Just click the corresponding checkbox and enable the feature you need.
Main drawbacks
It doesn't support WordPress Multisite.
The END!
These are, according to the speed tests performed on them and the no. of active installs, the best WordPress cache plugins for 2019.
Is the one you've been using on this list?
RADU SIMILEANU / Feb 08'2019
Just imagine it: Drupal 8's robust features as a CMS, the flexible e-commerce functionality of the Drupal Commerce ecosystem and a JavaScript framework for the front-end! All in the same native mobile app! You can easily achieve this “combo” — a reliable content repository & a JS-based front-end providing a fantastic shopping cart experience — if you just... decouple Drupal Commerce.
For why should you trade Drupal's battle-tested content authoring and administration tools for a more interactive user experience?
And why should you give up on your goal to deliver richer cart experiences just because Drupal 8 can't rival the JavaScript in terms of advanced native mobile app functionality?
push notifications
complex shopping options
enabling users to manage their own delivery times and places
... to configure various aspects of their orders and so on
Just leverage a decoupled Drupal Commerce strategy in your shopping app project and you can have both:
Drupal as your secure content service
the front-end framework of your choice “in charge” with the user experience
In this respect, these are the most useful Drupal tools at hand for implementing an API-based headless architecture:
1. Headless Commerce Comes Down to...
… separating your commerce stack (back-end content handling area, data store etc.) from the user interface.
Or the “head”, if you wish.
The presentation layer would “retrieve” content from the back-end content storage area and is the one fully “responsible” with delivering fantastic user experience.
This way, you're free to choose your own front-end tools.
Now, why would you consider choosing a decoupled architecture for your e-commerce solution? The benefits are quite obvious and not at all negligible:
higher flexibility and scalability (that JS frameworks are “famous” for)
freedom to customize your app to your liking (for every platform or/and device)
richer, more interactive shopping experiences
2. Decoupled Drupal Commerce... Out of the Box? The Commerce Demo
Narrowing our focus down to... Drupal, to Drupal Commerce, more specifically, the question's still there:
“How do I decouple Drupal Commerce?”
Considering that:
there are specific challenges that such a decoupled front-end architecture poses
Drupal solutions like Forms API and Views won't fit your specific (probably quite complex) design implementation requirements
Luckily, the Commerce Guys team has already faced and solved these challenges.
First of all, they've put together the Commerce Demo project, a store providing default content to be “injected” into Drupal.
Secondly, their attempt at integrating a design meant to support advanced functionality, for richer shopping cart experiences, resulted in 2 new modules:
Commerce Cart API
Commerce Cart Flyout
More about them, here below...
3. Useful Modules to Decouple Drupal Commerce
Here's a collection of the most... relevant modules that you could use in your headless Drupal Commerce project:
3.1. The Commerce Cart API Module
It's no less than a handy Drupal tool that enables you to custom build your shopping cart widget.
3.2. The Cart Flayout Module
The go-to module when you need to ajaxify the “Add to cart” form in your shopping app.
Basically, what it does is:
Provide a sidebar that “flies out” once the user clicks the “Add to cart” button or the cart block.
If I were to dive into details a bit, I'd add that the flyout enables users to:
view the products in their shopping carts
remove all the items there
update the quantity of a specific item
Should I add also that Cart Layout comes with no less than 9 different Twig templates, for various parts of the module? By leveraging Drupal's library management feature you can easily override these JS segments of the module.
And not only that you get to customize it to suit your needs entirely, but:
it comes with a well structured JS logic
it's built on top of Backbone
… which translates into an efficient models-views separation.
3.3. Commerce 2
Use Drupal Commerce 2 as the core structure of your e-commerce project.
Being an ecosystem of Drupal 8 modules and “spoiling” you with unmatched extensibility via its APIs, Drupal Commerce empowers you to implement all kinds of headless commerce scenarios.
It enables you to use Drupal as your content/data (user and order-related info) repository and to easily serve this content to your mobile app. To your end-users.
3.4. The Commerce Recurring Framework Module
Some of its handy charging & billing features include:
configurable billing cycles
configurable retries in case of payment declines
both prepaid and postpaid billing systems
3.5 The JSON API & JSON API Extras Modules
Need to decouple Drupal Commerce, to enable a full REST API in JSON format?
It's as easy as... enabling a module (or 2 at most): the JSON API module.
What it does is:
Expose the API so you can vizualize the data in JSON format.
And Drupal's built and perfectly adapted to support JSON API, which turns it into the go-to option when you need a back-end content repository for your headless shopping app.
In addition to this module, feel free to enable JSON API Extras, as well. It comes particularly handy if you need to customize the generated API.
It allows you to:
override the name of your resources
change their path...
You'll then have a specific place in your app's user interface where you can visualize your content paths.
Once you have your data in JSON format, safely stored in your back-end content creation & moderation Drupal area, you're free to... serve it to your mobile shopping app!
The END!
And these are some of the already tested tools and techniques to decouple Drupal Commerce so that you can deliver richer, more interactive cart experiences.
Have you tried other modules/methods? Writing custom JavaScript code... maybe?
RADU SIMILEANU / Feb 01'2019
The future is now... That predicted future where Node.js dominates the landscape of the application and web development technologies. And so, the “tormenting” question that you're dealing with right now must be: “But what are the best Node.js frameworks in 2019?”
Followed closely by:
“And which one of them should I use? Which one of these web server frameworks best fits my own project requirements?”
And, as a Quora user pointed out:
“This is just like asking what clothes to wear out. It depends on where you're going right?”
To give you a hand, we've weighed the pros and cons, both the developers' and the end-users reviews. We've compared their “stocks” of GitHub stars, and shortlisted the Node.js frameworks to... 5 frameworks holding a higher scope than the rest:
But First, What Is a Node.js Framework More Precisely?
First of all, yet without getting knee-deep into technical jargon, let's briefly pass in review the main reasons why Node.js — a tool for developing server-side web apps quick and easy — has got so influential:
It enables developers to build fast and scalable server-side apps.
And it all comes down to these 2 key benefits.
All that talk about:
its innovative event-based I/O model
about it being conveniently lightweight
about single-threaded asynchronous programming
… can be reduced to these 2 “irresistible” advantages.
And by “fast” I don't refer to page loading times only, but to the fact that it speeds up the development process itself, as well:
With Node.js implementing the server side, developers don't need to “joggle with” 2 languages anymore. One for the back-end/server-side and one for the front-end/client-side.
Now, back to the initial question:
“What is a Node.js framework?”
Take it as some sort of Node.js-based abstract design or “skeleton” that you can build your own custom code on.
An... empowering “skeleton” that comes packed with:
a set of tools
guidelines and best practices
… that help you/your development team quickly prototype and develop your project.
And, since its out-of-the-box features help you keep code consistency throughout the team, a Node.js framework will implicitly:
boost your productivity
enhance your app project's scalability
Does that answer your question?
1. Express.js
It stands out as “the minimalist” framework in our list here:
A Node.js-based technology that takes on the role of a middleware between our servers and routes.
And its robust APIs are one of the main “culprits” for its increasing popularity — one of the best Node.js frameworks in 2019.
It practically enables app developers to set up routes to send/receive requests between the database (MongoDB) and the front-end (Angular).
Another one of its “selling points” is given by the heavy load of packages that you can just “inject” into the Express.js framework to extend its functionality.
Benefits:
low learning curve
short app development cycle time
ideally customizable
mostly browser-focused, meaning that templating and rendering comes as a default feature
great 3rd party integration (Pug, EJS, Mustache, and other template engines and modules available on NPM)
Drawbacks:
its code organization
event-driven callbacks (a type of architecture that “tempts” you with unmatched flexibility at the price of... unwanted complexity as your app scales up)
2. Meteor JS
The key advantage that propelled Meteor in the 5 best Node.js frameworks in 2019? Real-time updating.
And there's more! It's built to power really large projects (e.g. Reaction Commerce) and, if documentation is a particularly heavy-weighing criterion for you, this framework's backed by a large community.
One that has already put together rich and clear documentation to help you get your web app up and running in no time.
Benefits:
real-time testing tool and debugging
a wide range of libraries and packages to boost its core functionality with
seamless client-server communication
Drawbacks:
there's no native widget library
no MongoDB support
… PWA support
… or rendering on the server-side, either
3. Sails.js, One of the Best Node.js Frameworks in 2019
The most... compatible Node.js framework in our list, we could say.
For Sails.js “gets along well” with:
almost all databases
most of the front-end technologies, as well (Angular, Android/Java, Backbone, React, iOS/Objective C)
the great majority of adapters: Mongo, MYSQL, Local Disk, Redis, PostgreSQL
And it's not at all “picky” when it comes to the types of controllers, models, views, adapters, and configuration files that the applications that it powers might include.
In short: it's a highly compatible framework with data-based APIs and service-oriented, scalable architecture. One that gives you a more... robust “skeleton” to start with, we might say.
Benefits:
it separates business logic from presentation logic
it can store data anywhere
it speeds up the Rest API building process
no additional routing
generates free JSON API
good Socket.io support
Drawbacks:
it's one of the... slow Node.js frameworks
time-consuming project development process
poor asset management
4. Koa.js
Developed by the same team that designed Express.js, Koa sets itself apart from the rest of the Node.js frameworks in our top here with some unique features:
it uses next-generation methods of ES6 that enables you to work without callbacks
… and grants you more control when it comes to error handling
there's no middleware, which means that the lines of code are more granular, the middlewares are more... component-based, more cascaded
… thus granting you with increased control over your configuration
Why has the Express.js team decided to build a new Node.js framework? What have been their major goals:
to build a smaller sized framework compared to Express.js
…. a more expressive one
to provide developers with a more robust “scaffolding” for building their web apps and APIs on
Benefits:
easier to control error handling
it's significantly lighter than other frameworks
modular structure
it gave up on callbacks and thus removed all the well-known asynchronous issues
support for Sync/await keywords
cascading middlewares
Drawbacks:
it's not compatible with express-style middleware, with Node.js middleware
there isn't a large community to rely on for support
5. LoopBack.js
One of the best Node.js frameworks in 2019 that “spoils” you with:
a dynamic API web browser
easy-to-use CLI
What makes it unique in our list here? The fact that it empowers developers to build their own models based on their own dynamic models or schemas.
To come up with their own server API, that would be further assigned to a new server. Pretty much like building an API that's proxy for... another API.
In addition to that, it supports a whole range of databases: PostgreSQL, MySQL, Oracle, MongoDB, and REST services.
Benefits:
fast development cycle
modular and structured code
available add-on components for Oauth2, 3rd-party login, file management
support for browser and native mobile SDKs: iOS, Android/Java, JavaScript browser
you can rapidly create dynamic end-to-end REST APIs
Drawbacks:
monolithic, opinionated architecture
steep learning curve
Final Word
As already mentioned, at the beginning of this post: a mere inventory of the best Node.js frameworks in 2019 is not the answer.
It's the best web server framework for your own project's requirements that you need.
What are your priorities when it comes to the benefits that you “reap” from using one Node.js framework over the other? Is it:
top speed?
fast development
high maintainability
rich documentation and a thriving community backing it up?
Friendly advice: don't invest all your resources in learning one such Node.js framework since new, more tempting and feature-rich ones will emerge. Instead, learn the business in the front-end/back-end or the language itself (JavaScript) to future-proof your... investment.
RADU SIMILEANU / Jan 31'2019
Build, configure and deploy all necessary resources with just a few commands... The serverless framework empowers you to streamline your entire development workflow. But what if you need to tackle some project-specific issues? Then you extend its core functionality to suit your needs by implementing the best serverless plugins available.
For you might need to:
bundle a Lamba function with Webpack
empty your buckets before removing them
copy data from production to development table
So, what are your options?
to scan through the pile of already developed serverless plugins, looking for the one that addresses that specific issue
to write your own custom serverless plugin
This post here focuses on the first option. I'll reveal to you the 6 most useful community-driven plugins for the serverless framework.
1. But First: What's the Core Functionality of the Serverless Framework?
In other words:
What do you get out-of-the-box?
Here's a short list of tasks that go from being manually carried out to... automated when you go serverless:
creating, configuring, and deploying the needed resources (API Gateway and Lambda functions)
storing your code (and configuration) into a repository for later use
setting up database tables for your functions
configuring serverless templates for your subnets and VPC's
In other words: using a serverless framework streamlines all those tedious tasks of writing code on the console, configuring your resources, managing your team's workflow...
2. 6 Best Serverless Plugins to Consider for Your Next Project
And the serverless framework itself is an “ecosystem” of plugins.
Nevertheless, there are cases when its core functionality doesn't meet all your project's requirements and you need to... extend it.
Before you rush to write your own plugin, you might want to have a look at what's already been built. In this respect, here's a list of the most widely used ones:
2.1. Serverless Webpack
In a situation where you need to bundle your lambda functions with Webpack?
Let this serverless plugin here handle the job for you.
2.2. Serverless Dotenv
Here's a common scenario:
You need to load your variables, currently stored in an env file, into your serverless yaml config.
Then, this is the serverless framework plugin that comes to your rescue. It enables you to dynamically preload env files into serverless.
2.3. Serverless Offline
Need to run everything on your local machine before you deploy it?
Integrate this plugin here into your framework and it will emulate AWS Lambda and API Gateway on your PC, streamlining your whole development process.
2.4. Serverless Mocha Plugin
One of the best serverless plugins, a mocha-based one, that provides you support for your test-driven development flow.
2.5. Aliyun Function Compute
Is “injecting” Alibaba Cloud Function Compute support into your serverless app one of your project-specific needs?
Well, then this is the plugin you need! It's been built to enable support for this event-driven compute service into the serverless framework.
2.6. Serverless S3 Remover
What do you do with all those buckets that you will have been “joggling” with once you decide to delete your stack? The one you will have “overly exploited” by then, during your tests?
Well... you remove them. Along with the content that they store.
How? You let this plugin here handle the “decluttering task” for you.
The END!
These are the 6 best serverless plugins already available that you can implement into your projects.
Which one's the perfect fit for your current project-specific needs?
Photo from Unsplash
RADU SIMILEANU / Jan 19'2019
Here's a riddle for you: What has (at least) 9 lives besides cats? Well... the ever dying and always resurrecting PHP, of course! But joke aside: what about PHP in 2019?
Will it fade away? Will it still be relevant for building web apps, content-packed and dynamic websites? Or, does it risk (once again) to get retired due to other emerging, hard-to-resist-to technologies rivaling it?
Does “aged” mean "deprecated" in its case?
And if, so they say, PHP is not a “good-looking” language... why are we still using JavaScript then? JS frameworks don't necessarily excel when it comes to... elegance?
In other words:
“Why would you still be interested in using PHP (other than nostalgia or... pure habit) for building your websites and applications in 2019, as well?”
Here are some of the strongest reasons:
1. Some of the Leading CMSs Are Built on PHP
Just think WordPress, think Drupal, powering the most high-trafficked and content-packed websites out there. Think Joomla...
They're all PHP-based and they make the best guarantee that:
You get to use PHP in 2019 to build content-loaded websites that are conveniently easy to update. Website admins, even the less technical staff, will be empowered to easily make changes and manage their content.
Here, think of the overwhelming collection of PHP-based themes and plugins developed for WordPress only. Right at your disposal, to just grab and use for breathing life into your web projects...
Now, here's another example for you:
Think Magento, another widely used PHP-powered CMS. Website owners get to focus their resources on... boosting their sales, since they get a platform working right out of the box, instead of getting tangled up in code.
And that's just one of the strong reasons why you'd still want to use PHP next year, too.
2. It's Conveniently Easy to Update
And when it's a PHP website carrying thousands of pages that you're working on, instant updates become critical.
Being a server-side scripting language, PHP handles all updates from the server side (obviously!). The result: boosted security!
3. It's Quick and Simple to Deploy
With or without a framework, PHP in 2019 will still lead as the quickest server-side back-end programming language.
Moreover, it scales like no other, as well.
And to those doubting its scalability capabilities:
Think Wikipedia, think Facebook!
4. PHP Comes “Packed” With A Heavy Load of Libraries and Extensions
Lots and lots of them, so you can easily handle:
blogging pages
shopping carts
WebSocket server (Ratchet, ReactPHP, Swoole, which performs faster than rival Node.js itself)
And let me briefly highlight some of the key tasks that you'd be streamlining when leveraging some of these libraries that PHP spoils you with:
handling syntax
error display
code debugging
Not to mention that PHP provides you with a simple, easy to use API, ready-to-use functions for whatever web services you might need to use. And that it simplifies integration, too.
Note: take Composer, a reliable, reputed package manager, then choose any of the provided framework agnostic packages and simply incorporate them into your web project.
5. PHP in 2019 Goes Beyond Web App Development
Like it already has, actually.
You're free to:
“team it up” with .net languages via PeachPie
use it in GUI applications
use it to power your IoT projects with (particularly in edge/gateway)
6. PHP Documentation Simply... Stands Out
And this is no exaggeration, but a fact that even those who already buried PHP a few years ago would agree on.
PHP's documentation support still makes an excellent go-to resource for both newcomers and experienced PHP developers.
And here I cannot but mention the PHP document generator and all the richly documented elements such as:
hooks (actions and filters)
classes and their properties
inline comments
class method and functions
file headers
7. High Availability of Senior PHP Developers
I'm not talking here about so-called “experienced” developers, who've been working “intensively” with PHP for about ... about 2-3 years.
I'm referring to professionals with +10 years experience in leveraging PHP while working on various types of web development projects.
And this high availability of PHP experts can only translate into:
accessible and high-quality support and maintenance services (PHP website admins will never run out of options when it comes to calling an expert to come to their rescue whenever they're facing a technical hurdle)
low(er) development costs, with all those open source projects to use as valuable resources and the high availability of PHP professionals on the market
8. It Enables Developers to Build Dynamic Websites Easily
Data gets accessed and executed... dynamically with PHP. When it comes to building dynamic websites the easy way, there's still no other language rivaling it.
Furthermore, it's's built to run multiple threads/handle multitasking. To execute remarkably well on multi-core systems (unlike its “competitor”, the so very popular Node.js).
And I shall “abruptly” end here my list of top reasons why you would still use be interested in using PHP in 2019. Of course, I could go on outlining its versatility, it's rich syntax, the “shiny and new” PHP 7's significant improvements boosting its performance dramatically. Instead, I stop here.
How about you? What are your own main reasons for “stubbornly” sticking to PHP (if that's the case) when working on your web development projects next year?
RADU SIMILEANU / Dec 21'2018
What's the future of cloud computing? What are the enterprise cloud computing trends for 2019 to expect, prepare for and leverage to your advantage?
For, whether you:
are just planning to move your workloads from a data center to a cloud-native architecture
or you're already “reaping” the benefits of a multi-cloud architecture
… the question remains the same:
“From Kubernetes to serverless computing, to multi-cloud strategies, to containers, to... which will be the top influential cloud trends and patterns in 2019?”
To be honest with you, we, too, as a Drupal firm, have asked ourselves the same question...
Once you've got the answer, you can:
(properly) prepare for the challenges to come
turn them into... excellent new opportunities
Now, without any further ado, here are the 5 trends that will dominate the cloud computing industry in 2019:
1. Serverless Computing: More and More Companies “Flock” to Serverless
Serverless technology goes hand in hand with cloud-native architectures...
And the fact that its enterprise adoption will just... explode in 2019 is no news at all, right? Just think of the key features and benefits that serverless “lures” even companies like NetFlix, New York Times or Mapbox with:
high speed
reduced costs
the convenience to port their serverless apps between multiple cloud providers
the opportunity to run serverless apps both on public clouds and on private data centers
Not only that companies leveraging serverless get to “reap” all the benefits of enterprise cloud computing. But, since they get to run their apps on existing infrastructures, as well, they can modernize their legacy apps, too.
All that in addition to the benefit of streamlining the development cycles of their cloud-native apps.
What makes serverless computing “outshine” standard provisioning servers?
it's a technology that uses “functions” as a measuring unit (instead of “instances” or VM)
these pieces of code (“functions”) run automatically
… and they take over any data format and turn it into a target legacy system “in charge” with processing the response; they can also interpret those messages sent back to consuming apps through the API gateway
the burden of scaling and managing resources gets passed on to serverless providers (Google Cloud Functions, AWS Lambda, Microsoft Azure, Apache Whisk, OpenFaas)
To sum up: serverless is going to be one of the leading enterprise cloud computing trends for 2019.
accelerating the development process of cloud-native apps
“revamping” legacy apps
cutting down costs
the convenience of going serverless all while leveraging one's existing infrastructure
… are this technology's top “luring” features.
2. The Enterprise Adoption of Kubernetes Grows at Neck-Breaking Pace
The solid arguments behind this prediction?
Kubernetes is highly portable
it's highly available
it provides unmatched, granular scalability: the go-to choice for scaling containerized applications
it automates deployment
Whether they're planning to streamline their app development cycles or to rearchitect their existing IT infrastructures, large organizations are “flocking” to this open-source container orchestration system.
The interoperable, composable architecture that it provides, along with its “extreme” availability — it runs on laptops, public//hybrid private cloud, VM — and the increased use of containers turns Kubernets into one of the highly influential enterprise cloud computing trends for 2019.
One powering hybrid-cloud and multi-cloud deployments...
And speaking of containers, Kubernete's simply: convenience at its best (convenience at scale):
You're free to put together clusters of hosts running containers and then just use Kubernetes to easily manage them all. To easily “orchestrate” all your containers.
3. Cloud Data Management: One of the Influential Enterprise Cloud Computing Trends for 2019
With the trend of enterprise cloud computing architecture going up in 2019, it's only but predictable for cloud data management to become one of the hottest topics.
An efficient cloud environment (whether a multi-cloud or a hybrid cloud infrastructure) calls for:
serious planning
constant optimization
data aggregation
analyzing the stored data
In other words: with data being the key “nucleus” of any enterprise cloud computing architecture, properly managing and improving the quality of all those massive amounts of data becomes critical.
4. The Multi-Cloud Strategy: An Increasingly Compelling Pattern for Companies
Companies will “dread” getting themselves locked-in to a unique cloud service provider.
And so, the multi-cloud strategy is sure to rival the conventional “partnering with a single public cloud” approach.
Why? Hmmm, let's see... getting cloud locked-in means:
being constrained to integrate that specific public cloud environment's tools, services, APIs
getting its dependencies “injected” into your application code
being unable to future-proof your app, to update it to any new technologies that might emerge; you'd automatically “inherit” a technical debt when locked-in to a specific cloud service provider
Whereas having a robust multi-cloud architecture allows large enterprises to:
“juggle with” multiple dedicated clouds, each one with its specific functionalities and services
be cloud provider agnostic; and that can only mean more flexibility: companies are free to port their cloud architectures between different environments
leverage on interoperability; companies will be able to do application>APIs (or on-premise infrastructure ) decoupling
And “flexibility” is the key term here:
the one that's definitory for modern application development
the reason why multi-cloud is going to be one of the powerful enterprise cloud computing trends for 2019
The END!
Now, if we are to do a quick recap:
more and more companies will migrate their workloads to cloud environments; they will be refactoring their legacy apps
also, we'll be witnessing a massive migration to multi-cloud and hybrid cloud environments
technical skills required for cloud computing will be in even higher demand in 2019
RADU SIMILEANU / Dec 19'2018
And there are so many strong reasons why you'd want to duplicate a page in WordPress. Or one of your blog posts:
you wish to enable your client to make certain changes to the content before it goes live, all while still keeping the original version intact, just to compare the two
you need to clone the layout of a specific page and to further use it on a different page on your website; all this with no impact on the “source” page, needless to add
you want to “revamp” one of your WordPress pages, to give it a new design, while still keeping the original version “untouched” for future use
... and opting for a “copy/paste and save in a draft” option would only mean losing your SEO optimization, custom images, and page templates etc.
“How do I create a duplicate page or post in WordPress?” you then ask yourself.
Since WordPress doesn't “spoil” us with an out-of-the-box solution for this job. And writing custom WordPress code for triggering clones might not be on everyone's alley...
Luckily, WordPress gives us the convenience of dedicated plugins. Lots and lots of them. And there are quite a few ones perfect for this job: duplicating pages and posts.
Here are the 4 WordPress plugins that turn cloning content into a matter of... a few simple clicks:
But First: 3 Major Benefits to Being Able to Easily Duplicate a WordPress Page
A. Consistency
And this is definitely more than “a nice thing to have” on your WordPress website or blog.
Keeping consistency sitewide gets even more challenging when you're cloning page settings or layouts and move them around. Luckily, having a reliable plugin at hand:
streamlines
simplifies
… the whole cloning process. It enables you to keep your website's design consistent while making changes.
B. Shorten Development Cycle
“High efficiency” is just another word for modern development. And, as a web developer, being able to create similar websites quick enough gets critical.
Luckily, having a magic tool at hand to help you duplicate your page templates — those to be used as foundations for new websites — just gives your productivity a mega-boost.
Simply clone that initial page's layout and settings and... use it sitewide. Efficiency at its best!
C. Editing Pages/Posts on Live Websites
Now, you can just guess the benefits deriving from this... convenience:
you can choose a less “active” time of the day/day of the week and make all the needed changes right on the live site
you get to use your Git repository to make critical changes, then just sync them to your website
you get to duplicate a page in WordPress (or a custom blog post, let's say), edit it, then just replace the original version with this updated one
1. Use Duplicate Post Plugin to... (Bulk) Duplicate Pages or Posts
Why did this WordPress plugin make it to the top of the list here? Well... let's see:
not only that it turns cloning into “a child's play”, but it enables you to bulk duplicate posts, as well
and speaking of convenience: just select “Copy to a new draft”, an option placed underneath your “Publish” settings and... you'll have your clone
furthermore, it enables you to select the customization options that you'd like to add; you get to restrict “cloning” to a few user roles only and you can add your own prefix/suffix before/after the duplicated post's title
And now, here's how you leverage its functionality:
1. Just install and activate the WordPress plugin.
2. Go to the “Settings” page; for this, either click on the “Settings” tab in your WordPress Admin panel and select “Duplicate Post” from the drop-down menu or click on “Settings” right beneath your plugin's name (in your WordPress plugins list)
3. While there, choose the settings page that you'd like to clone (and further edit/customize). And you have 3 options here:
"What to copy", that lists all sort of web page elements that you may want to add to your cloned page or post.
Note: feel free to customize the duplicate page title so you can set it apart from the original page/post.
"Permissions", where you can grant permissions for cloning specific content types to certain user roles only
"Display", where you can choose the website section(s) where the link of your duplicate page should get displayed.
4. Next, go to Pages>All Pages (or to Posts>All Posts) and track down the page you wish to clone.
5. Once spotted, hove over; you should see 2 new options popping up (in addition to the standard ... ones: “Edit”, “Quick Edit”, “Trash”... ): “Clone” and “New Draft”
6. Choose “Clone” if you just want to create a duplicate of that page or post
Word of caution: if that original page/post is already published, the duplicate one will automatically go live, as well!
7. Or, choose “New Draft” if you want to make a copy and further edit it. Once you're done editing it, you can either publish it or save it and keep it as a draft.
Note: if you need to bulk duplicate posts in WordPress, just select the pages to be cloned, unfold the “Bulk Actions” drop-down menu above the list and select the “Clone” option
Another note: let's say that you've just finished writing a new blog post and you want to duplicate it. Yet, you dread having to navigate all the way to “Posts” and going through all the needed steps. To streamline things a bit, just click on “Copy to a new draft” right under your blog post's Publish settings.
Should I also add that, in order to create a duplicate page in WordPress using this plugin you could also just:
open a Preview of that post or page to be cloned
look for “Copy to a new draft” in your admin bar?
And that's it: two easy-peasy steps for creating a duplicate page or post.
2. Use Post Duplicator to Create a Duplicate Post/Page in WordPress
Here's another easy way to clone WordPress pages or blog posts.
This plugin would enable you to:
Create a duplicate of that given post or page; one having the same custom taxonomies and custom fields.
Here's how you use it:
You install and enable it (obviously!)
You select the “target” page and just click on “Duplicate Page” (or “Duplicate Post”) to create the duplicate
Easy!
3. Duplicate Page Plugin: One of the Easiest Ways to Clone a Page/Post
Don't let its name “trick” you: you can duplicate blog posts, as well, using this plugin!
Once installed, you'll find a new option under each post or page called “Duplicate This”. Use it confidently...
4. Use Duplicator Plugin to Duplicate an... Entire WordPress Site
What if your requirements go beyond duplicating a page or blog post? What if you need to clone... an entire website?
Let's say that you want to build a website similar to the one that you've recently delivered to one of your clients. Or to the very same client.
For this, you trigger this plugin's “superpower” and just... accelerate the development process. Since you'll already have a structure to build on.
5. Or Use the Page and Post Clone Plugin
Ready for another handy option for you to duplicate a page in WordPress?
The process is mostly the same:
once you've activated your plugin
hove over to the blog entry or page that you need to clone
choose the new “Clone” option showing up there
… and you'll have your duplicate page created as a draft.
The END!
These are the 4 easiest ways to create a duplicate page in WordPress. Have you already tried a different method/plugin? Sharing is caring...
RADU SIMILEANU / Dec 14'2018