What does Drupal 8 do that Laravel does not? What key functionalities, that Drupal ships with, do you need to build from scratch in Laravel? And how would opting for Laravel benefit your specific type of project? In short: Laravel or Drupal 8?
“It's like comparing apples to oranges” some might say since one's a framework and the other one a CMS.
Even so, if it's unclear to you what are their particular use cases and their built-in features, you won't know whether it's a CMS or a framework that best suits your project type, right? That best serves your project-specific needs:
to be super fast
to leverage a solid, off-the-shelf content management system for publishing different pieces of content on the website
to feature an easy to scale database
to support multisite
to tap into robust user and content management features that are already implemented
to be built on top of a solid framework acting as a reliable back-end application
to leverage a highly intuitive admin user interface
to be 101% secure
to leverage a mixture of server and client-side logic
Now, keep your list of project requirements and constraints at hand to evaluate these 2 technologies' pros and cons against it:
1. Drupal 8: Top Benefits, Main Drawbacks, and Specific Use Cases
If a robust user and content management system is critical for your project, then Drupal 8 makes the smartest choice. It's that “thing” that Drupal excels at that, which would take you a whole lot more time to do in Laravel.
And it's not just its robustness that might “lure you in”, but the level of convenience that it provides: a lot of the essential features and functionalities that you might need are already built-in.
Moreover, you can easily manage them and custom-tune them via your admin interface...
By comparison, you'd need to build these functionalities, from the ground up, if you chose to go with Laravel.
Top benefits:
you can rest assured that your website runs on a particularly robust, Symfony-based CMS
there's a huge, dedicated community backing it up
you get to create various content types, for different parts of your website, assigned with different roles; unlike basic CMSs, that enable you to write... posts and to create new web pages
you can set up different editorial workflows and assign specific user roles, with fine-grained access control
you can always further extend its CMS-specific functionalities: extensibility is one of the strongest Drupal 8 benefits
Main drawbacks:
you do need a team of Drupal experts (senior-level preferably) to keep an eye on your Drupal 8 website/app and keep everything properly maintained
you can't get away with a “get it up and running and... move on” type of philosophy; Drupal 8 is a more of a long-term commitment: there's always a newly launched promising module to consider adding on, a new update to run...
Specific Use Cases for Drupal 8:
large-scale projects that depend on a robust and reliable content management system; one that withstands an intense, ongoing process of creating, editing and publishing lots of fresh content
Laravel or Drupal 8? Definitely the later if it's a multi-site, multi-language web project that you plan to develop; not only that it streamlines content publishing across your whole network, but it significantly speeds up localization thanks to its server-side caching capabilities
It means that no matter the place on the globe where that your users might be located, they get to access your web pages and have them loaded... instantly.
2. Laravel: Pros, Cons, and Project Types that It's Best Suited For
Laravel stands out as a highly reputed, powerful PHP framework.
If:
maintainability is one of your biggest concerns
you're looking for a robust framework
you need to carry out your project fast enough
you need a framework that ships with all the latest functionalities
... then Laravel is what you need.
Top Benefits:
a fast-growing, devoted community
you can easily integrate LDAP authentication
it leverages the Model-View-Controller architecture
it's just... fast
provides you with a great admin user interfaces
it “spoils” you with intiutive, beautifully written code
it ships with a heavy “toolbox”: scan through and pick the most suitable one(s) for your project
in-built code for social login and sending out emails
everything you might need to set up during the development process is right there, already integrated into your code: cron jobs, database queries, routes...
Main drawbacks:
more often than not identifying performance issues isn't that straightforward
upgrading to the latest version of Laravel can turn out to be quite a challenge: be prepared for “buggy scenarios” and for the need to rewrite code
you can't just jump straight to Laravel: learning the basics of OOPS first things first is a must
Specific Use Cases:
your project needs a back-end application (rather than an off-the-shelf CMS)
when the benefits of the MVC architecture (faster development process, suitable for large-scale projects, multiple views, etc.) are critical for the given project
whenever you need to mix client-side with server logic
whenever time is the main concern for you: you just need your project developed super fast
3. So... Laravel or Drupal 8?
Now, I'm sure that you already anticipate my answer:
The choice depends strictly on your project requirement and objectives.
On your own hierarchy of priorities in terms of features and functionalities.
And depending on these key aspects, that should be clearly defined, one technology will benefit you over the other.
So... what type of project are you looking to build?
Photo by Raquel Martínez on Unsplash
Adriana Cacoveanu / Jun 20'2019
“Can I use Drupal for project management?” Definitely.
Given all its content-oriented baked-in capabilities — file management, version control, easy content creation, and editing — Drupal makes the perfect software for:
managing your projects the easy and the... smart way
streamlining communication among your team members and with your contractors
In this respect, Drupal provides its own feature-rich distributions to help you put together your robust setup in no time. “Distributions” that come already packed with a set of useful sub-modules and themes, that all support the core functionality: project management (and smooth collaboration).
And without further ado, here the 2 most popular Drupal distributions for project management and team collaboration for you to evaluate first: RedHen and Open Atrium.
1. RedHen CRM
Loaded with robust and modern features, this Drupal-native CRM is designed with flexibility in mind. Meaning that it integrates seamlessly with the enterprise solution that you're using (Blackbaud, Salesforce) and it supports a wide range of use cases...
And speaking of its functionalities:
engagement tracking and monitoring
data management: information about your contacts, the relationships among them and with your own company (e.g. memberships)
event registration integration
one-page donation forms to custom-tune to your liking
As for those many use cases that this Drupal distribution's built to accommodate, let's pick just a few real-world examples:
It's the best choice if smoothly integrating your CRM with your other enterprise solutions is critical for you
It streamlines tracking interactions with your contacts and organizations. Furthermore, since you can easily integrate it with your website, you get to leverage the provided data in order to adjust the user experience accordingly...
It allows you to customize it and thus to give it a Drupal-like look and feel: to integrate it with modules like Rules or Views, to go for the same field creation UI, etc.
Is your contacts list a huge one? This CRM comes to your rescue with some powerful baked-in tools: an efficient find-and-dedupe interface, an automated filter built in the UI, that you can use to filter your contacts by specific fields, etc.
It automatically syncronizes data in your Contacts list with any newly updated data on your Drupal Users list
In short: RedHen CRM makes one of the top choices when you consider using Drupal for project management purposes. It's a lightweight, self-contained framework, more of a “cluster” of multiple specialized modules:
Organization
Activity
Fields
Organization Group
Dedupe
Registration
and a few more...
2. Open Atrium
Looking for a Drupal-native distribution built around the team collaboration functionality?
One that should be:
convenientyly extensible
“loaded” with robust collaboration and information sharing features?
Then Open Atrium fits the profile in the slightest detail.
Built on top of the Organic Groups and Panopoly modules, it's a framework flexible enough to support discussion configurations by key criteria like team, project, organization...
And here are some more powerful features worth considering when you're still thinking whether you should use Drupal for project management:
an access control system, that grants granular control to certain sections of your project
a drag and drop layout with plenty of widgets to select from for customizing your landing pages and dashboard
file storing and sharing features
built-in Events, Files, Discussions, Issue Tracking, Document Wiki
an easy to customize, responsive theme
The END!
These are but 2 viable answers to your “Can I use Drupal for project management and team collaboration?” type of question. 2 of the options available that best meet some of your main requirements when looking for a project management software:
to be easy to use
to ship with an entire collection of file management and communication features
to be flexible enough and allow quick customization and seamless integrations
Have you tried other Drupal modules/distributions built around this functionality so far?
Image by jessica45 from Pixabay
Adriana Cacoveanu / Jun 06'2019
What makes the Cache API in Drupal 8 any better than Drupal 7's cache system? What's so revolutionary about it? Which of the old limitations does it remove? What are those new concepts and terminology that you should learn about?
And, most of all: how complex is it to set up a cache in Drupal 8 for a specific use case?
You might have already bumped into terms like “max-age”, "context cache" or "cache tags".
But how precisely do these new concepts, part of Drupal 8's cache system, refine and streamline the way you cache data on your website?
Let's try to demystify the terminology of Drupal 8's Cache API and to translate its new “fancy” terminology into... crystal-clear benefits for you:
1. What Is Caching More Precisely? Why Do We Cache Data?
To your “What” question I'd answer:
Caching is a... strategy (or layer) for storing data from your website. Or: it's a software or hardware component where you store your data.
Why would you want to store your data?
Because this will streamline the way your website serves all future requests for that cached data.
And it goes without saying that reading data straight from the cache takes less time than... retrieving it from a slower data container or fully recreating the result.
In short: caching data translates into faster page load time.
2. Cache API in Drupal 8: The Automatic Cache System
A brief, yet accurate definition of cache in Drupal 8 would be:
Storing data that takes too long to load.
And if I am to detail it a bit I'd have to add that:
Caching can be either permanent or time-limited and that you're free to cache any type of data on your website.
Now, talking about Drupal 8's cache API, what everyone points out is that: it is much improved. That it's so different from the cache systems of the previous Drupal versions that... you even risk turning your website uncachable if you're not familiar with its new concepts.
“But how different/sophisticated can it be?” you might ask yourself.
Before we delve deep into details let me add just one thing:
We're talking about an... automated cache system. Basically, your Drupal 8 website retrieves cache data for both anonymous and logged in users with no configuration whatsoever. All by default.
And now, let's shed some light on all these new fancy concepts that the Cache API in Drupal 8 is based on:
2.1.The Cache Tags
We all do agree that “invalidating cache” is one of the most challenging tasks of any cache system.
Luckily, not anymore. At least not in Drupal 8, where you now have the concept of “cache tags” that you can use for tagging:
specific pages
specific page elements
various types of content
… and thus invalidate them all. Improved efficiency and high accuracy through... basic tagging.
Basically, using these cache tags you can easily identify outdated data stored in multiple cache bins and... invalidate it.
This way, you no longer run the risk of invalidating “still green” cache items, in bulk, not knowing which data to invalidate.
2.2. The Context Cache
Here's an all too common scenario:
You're faced with multiple variants of the same data; only one of them should be cached, based on a specific criterion like language, user, country, content access permission...
Well, how do you automate targetting the right variant to be cached? And how do you automate caching the other left variants, as well, depending on the... context.
You use “cache contexts”, that's how...
They're one of those new remarkable features that the Cache API in Drupal 8 ships with, that allow you to specify the criteria to be used to vary for the cached content on a page. By user, by language, by country, by path...
2.3. The Max-Age (The Cache Duration)
Maybe you don't want certain data to be forever cached. Maybe you need it stored for a certain period of time only.
In this respect, the “max-age” property in Drupal 8's cache system allows you to define that time limit. To invalidate data that will have run... out of time.
2.4. The Bubbleable Cache Metadata
What does this even mean “cache metadata... bubbling”?
Let's take this example:
You have a parent item with its own “family” of... children items. In this context, “bubbled tags” makes it possible for the parent item in this render array to receive cacheability metadata from its children.
Bubble cache metadata streamlines the whole process of invalidating outdated cached data. As simple as that...
The END!
Is it any clearer for you now what makes the Cache API in Drupal 8 so powerful? How its new features come to remove most of the limitations that you've already faced in Drupal 7?
And how you can use them to refine and automate caching on your own Drupal 8 website?
Image by Pexels from Pixabay
RADU SIMILEANU / May 24'2019
Looking for a Drupal 8 rating module that should be:
easy to install
easy to configure
easy to use
conveniently flexible
and user-friendly?
And maybe you “crave” for some nice-to-have features, as well:
enabling users to add a short review
multiple ratings: enabling users to vote on several aspects of your product/service, such as price, quality, ease of use?
What are your options? What working (and stable) modules for rating and reviewing are there in Drupal 8?
We've done the research for you, evaluated all the modules for rating in Drupal 8, and come up with a list of 6 best... rated ones:
1. Voting API
Keep in mind that this Drupal 8 rating module doesn't provide a voting mechanism, packed with all the key voting features. Instead, it structures the voting data for other rating modules to leverage.
What it does provide you with is a standardized API and voting data storing schema. Therefore, it streamlines the whole process of retrieving and organizing the voting results for various pieces of content on your Drupal 8 website.
Top features:
multi-criteria voting
caching the voting results (and it does that in a highly efficient manner, with no need to recalculate them...)
enables users to rate any type of content on your Drupal site (users, comments, nodes)
automatic tabulating of the voting results
Note: keep in mind that, for now, we only have a pre-release version of the module for Drupal 8...
2. Flag Rating, A Highly Popular Drupal 8 Rating Module
An extension of the Flag module, that allows you to either:
use the default SVG icon
upload your own icon (jpg, SVG or PNG) for each flag
Furthermore, you even get 2 templates to override to your liking:
flag-rating.html.twig
flag-rating-icon.html.twig
3. Star Rating Form Display
A Drupal 8 rating module that you can use to turn the “select tag” option of the Star Rating module into a more user-friendly, clickable icon.
To “unlock” its functionality just:
navigate to Structure > Content type
select the “Manage form display” option
scroll down to your star rating field
click “Star rating clickable”
in the Settings screen, configure the custom display to perfectly fit your needs
4. Star Rating
If you're looking to integrate a voting functionality exclusively for the authors of the articles submitted on your website (hence, not for the end users), Flag Rating is the module you're looking for.
Take it as a simple, yet useful module that provides you with a display formatter and a star rating field. In short: with the “bare necessities” for the authors to be able to rate the uploaded articles.
Say you have a review website — a hotel review website — and you want to add multiple star ratings to a node:
customer service
en suite and private facilities
food, etc.
... with a different icon for each node. Then, you just need to use the star rating field that this module provides...
Top features:
built-in support for the Views module
it doesn't require other modules (e.g. the voting API module) to work
it allows you to add a different icon type per field and per view mode
5. Vote Up/Down
The Drupal 8 rating module that simplifies the entire voting process: it encourages users to express their votes through an intuitive thumb illustration.
Top features:
code voting support for your pre-defined products/services
interchangeable themes for your voting widget
the possibility to set up your own custom widgets using ctools plugins
The END!
These are your 5 best options when it comes to working Drupal 8 rating modules that should be both easy to configure and easy to use.
Have you discovered other ways of integrating a reviews feature to your Drupal 8 website?
Image by mohamed Hassan from Pixabay
Adriana Cacoveanu / May 07'2019
Do you need to set up a custom image carousel? Or maybe one slider with a teaser, displaying content from your website? What are the best Drupal 8 slideshow modules to consider for implementing and maintaining your slideshow?
And out of the box options are... out of question, right? Your requirements are too specific for that.
Maybe you need:
a certain number of slider items
different arrow designs
to display the image slideshow on other pages, too, not just on your homepage
With such flexibility and customization requirements in mind, we started digging into the “pile” of Drupal 8 image slider modules.
And here are the 4 ones that we've selected, those with the best reviews in the Drupal community:
1. Views Slideshow
If it's a fully customized slideshow that you want to implement, Views Slideshow's the module you need.
It'll “spoil” you with tons of add-ons to select from and give your unmatched flexibility. From:
titles
to images
to teasers of the last X blog posts on your website
… you get to include any type of items in your carousel.
Furthermore, it's jQuery-powered and it allows you to configure different settings for each one of the views that you'll create.
Note: oh, yes, you'll need to be pretty comfortable using Views in order to leverage this module at its full capacity.
Some of its key features:
your slider can include and display the latest products added to your eCommerce website
you can set up a news item slideshow (the latest X news articles published on your Drupal 8 website)
from the latest X blog entries to the latest videos, testimonials, forum posts etc., you're free to include any type of content in your slider...
Now, here's a very brief step-by-step on how you can set it up and use it to create your slideshow:
1.1. Install and enable the module
Once you've downloaded it from Drupal.org, installed and enabled it, make sure to download its corresponding ZIP folder on Github, as well.
Give your folder a new name — /jquery.cycle/ — then start uploading all its files to the
/libraries/ folder in the root of your Drupal website.
1.2. Set up your view
Time to create your slideshow now. For this, just go to Structure> Views>Add new view
1.3. Publish your slideshow block
For this, go to Structure>Block layout and select the region on your website that you want your slider to get displayed on.
1.4. Create a new image style
As you can see, the images included in your slideshow are currently of different sizes. Therefore, they're not perfectly adjusted to fit the block region that you've chosen for your slider.
To solve this inconvenience, just go to Configuration>Image styles>Add Image style.
There, you can create a new style, that will be shared by all the images included in your slideshow.
2. Slick Slider, One of the Most Popular Drupal 8 Slideshow Modules
Another one of Drupal's modules for creating custom image slideshows, that ships with a heavy load of options. Powerful and flexible... what more could you ask for from your slider solution?
Capitalizing on Ken Wheeler's Slick carousel, working perfectly with Views and fields, the Slick Slider module:
enables you to set up a slider including multiple views, value fields and paragraph types
comes with image, audio and video support
supports complex layouts, as well
Some of its key features:
you're free to enable/disable the swipe functionality
it's responsive (scales along with its container)
some of its layouts are CSS-built
it's designed to work with Field collection, Media, Views, Image (and also to work perfectly fine with none of these modules)|
it allows you to configure your own “slide selecting” dots, the arrow keys and your slider's navigation, as well
it provides modular and extensible skins
you get to choose how you want your slideshow to be scrolled: swipe, desktop mouse dragging, auto scroll, mouse wheel scroll...
3. Owl Carousel
Another one of those Drupal 8 slideshow modules that gets the best reviews.
Here's why:
it leverages the Owl Carousel slider built by OwlFonk.
it, too, empowers you to customize your image slideshow; in this respect, it ships with a myriad of customization settings
it's responsive
it capitalizes on a small ecosystem of submodules: Administration UI, Views Style, Field Formatter
Some of its key features:
from customizing your events to styling your controls, it allows you to tailor your image slider to suit all your needs
it supports multiple sliders
touch events
4. jCarousel
A simple module to consider each time you need to display a group of images in a compact way on your website. It even allows you to set the number of items to be included in your carousel...
Speaking of which, you should know that jCarousel, as its name says it, allows you to leverage the jCarousel jQuery plugin.
For this, it ships with a developer API for other modules to access. Furthermore, it integrates with Views, so you can easily turn any list of images (or other type of content) into a slideshow...
Some of its key features:
jCarousel field formater
out-of-the-box Views support
API for using jCarousel without Views
a collection of modern skins to choose from
Carousel pager that enable users to jump between multiple sliders
The END!
These are the first Drupal 8 slideshow modules to consider when looking for the best method for setting up your custom image/content slider.
Packed with tons of customization options, feature-rich and powerful, these 4 solutions for creating image carousels in Drupal 8 should be on your short list when you start looking beyond the out-of-the-box options for putting together a slider...
Photo by Samuel Zeller on Unsplash
Silviu Serdaru / Apr 25'2019
Simple or custom-made? Is it a quick-to-assemble, rather “prototypical” form that you need for your website? Or a more complex, custom-made one? In a Drupal 8 Contact Forms vs Webform “debate”, which Drupal form builder best suits your data collection requirements?
On one hand, you have the convenience of creating your web forms in no time: simple, straightforward, “conventional” web forms. On the other hand, you get to scan through a never-ending list of advanced options and come up with a complex, fully custom-made web form.
That, of course, if you don't mind the time you need to invest in going through all those different form elements and available features and the risk of getting... overwhelmed by tons of field customization options.
Ease of use vs unlimited capabilities...
The convenience of getting your forms up and ready to collect user data in no time vs the chance to tailor some more advanced forms, ideally customized, carrying lots of different field values.
Decisions, decision...
Now, to help you decide, here's a more detailed Drupal 8 Contact Forms vs Webform comparison. Weigh each one of the 2 form modules' benefits and drawbacks, set them against your own needs and... make the choice:
1. The Contact Forms Module
Being part of Drupal core, there's no need to download and install the module.
Just go to Structure>Contact forms. Next, choose either to opt for the default form or to set up a new one: click the “Add contact form” button.
Once in the form creation screen, enter your form's values in the predefined fields that you have there:
give the form a name in the “Label” field
enter the email address where all the form submissions will be sent to (most probably your site admin address) in the “Recipients” field
enter your “Thank you” text in the “Message” field there; this will be the “thank you” text line your users will see once they hit the “submit/send” button
in the “Redirect path”, enter the URL to the page that you want them to get forwarded to after they've submitted the forms (that if you don't want them to be redirected back to the homepage, by default)
click “Save” and there you have it: a simple form, with all the basic, must-have field values, added to in no time
Of course, that doesn't mean that you can't further explore the given features and maybe add a few more fields and even styling options.
For instance, you could “Edit” your newly created form. Just select it in the “Contact Forms” screen and, scrolling down the options in the drop-down menu opening up, click the “Manage fields” option.
Click “Add field”, then “select a field type” – Text(plain), let's say – enter the “Label” and configure its settings.
Furthermore, if you want to style your form a bit, hit the “Manage form display” tab and... opt for a placeholder, for example. Next, explore the options available in the “Manage display” screen. For instance, you get to decide if you want your field label to be hidden, inline or visually hidden...
In short: in a Drupal 8 Contact Forms vs Webform comparison, the first form builder will always outshine the latter when it comes to ease of use.
It empowers you to set up a simple form quick and easy...
2. The Webform Module
Now, if Contact Forms is a rather minimalist form builder, the Webform module is a feature-rich, powerful one.
The customization features that it ships with go from email notifications to fine-grained access, from statistic collection of data to delivering results in a CSV format. From exporting data in various formats to... conditional sorting and filtering.
In other words, with Webform sky is the limit when it comes to the contact form that you can create.
It can go from a basic one to a highly complex, multi-page form. One made of lots of elements, advanced options for the user to select from, settings and features for you to leverage in the back-end...
But, let's keep in mind that it's a contributed module, so you'll first need to download it from Drupal.org.
Next, go to “Structure” and hit the “Webforms” tab. Then, click the “Add webform” button and, in the next screen popping up, give your new form a name (enter it in the “Title” field).
You'll be automatically forwarded to the “Build” tab, which is where all the “magic happens”. Once you click the “Add element” button, you'll get to “swim through” a sea of lots and lots... and lots of form elements (known as “fields” in Contact forms) to choose from. Ranging from basic to really advanced ones...
Let's assume that you'll want to add a “Text field” element. Click the “Add Element” button corresponding it, then scan through all the new customization options listed up in the “Add Text field element” screen opening up next...
Feel free to add other elements to your webform: a “text area” maybe, an “email” element, as well...
Note: do keep in mind that, once you've settled for the final fields/elements to be included in your web form, you can always change the order to get them displayed in. Just drag and drop them till they fit that predefined order in your mind...
Also, you can check/mark them as “Required” and turn them into “must fill in" fields, as opposed to optional form fields.
Note: feel free to edit that “Thank you” page that your webform will automatically forward users to. How? By clicking “Back to form”>"Settings”>"Confirmation” and selecting from the different options that you have there:
enter your own Confirmation title (e.g. “Thank you!”)
customize your Confirmation message
3. Drupal 8 Contact Forms vs Webform: Key Differences
Now that we've run our spotlight over each one of these 2 form building tools, let's make an inventory of the differences that we've identified:
first of all, it's obvious that the Webform module gives you more control over your web forms' design
also, unlike Contact Forms, it supports conditional emails; you get to send an email to a specific user in your list based on conditions associated with the value of certain elements in your form
Webform enables you to add basic logic to your web forms
… it comes packed with tons of advanced options, ranging from JS effects to conditional logic, to submission handling, etc.
Contact Forms, on the other hand, allows you to set up a simple contact form in the blink of an eye; you skip the tedious process of scanning through lots and lots of options, settings, and complex features
Webform allows you to create your forms either in a YAML file or in its the admin-friendly UI
also, Webform comes as a “cluster” of submodules – Webform REST, Honeypot, Webform Views, SMTP, Webform Encrypt, etc. – which are “responsible for” its multiple capabilities
4. In Conclusion...
The conclusion of this Drupal 8 Contact Forms vs Webform “debate” is quite simple:
If you need a basic form on your website and you need it built fast, go with Contact Forms. Being included in Drupal 8 adds convenience...
But if you want to customize your form (and you have the time), to style it to your liking and “turbocharge” it with advanced features and options, go with Webform.
It's a much more powerful and feature-rich form builder, perfectly suited for your complex requirements...
Image by Tumisu from Pixabay
Adrian Ababei / Apr 24'2019
What makes Drupal a great choice from a UX standpoint? What features are responsible for the enhanced end-user experience in Drupal 8? Those features that enable you to easily create an intuitive and enjoyable visitor experience on your own Drupal-based website/application.
And to constantly improve it...
Is it all those performance enhancements that it ships with? Or maybe its “responsive out-of-the-box” nature? Or rather its multilingual capabilities?
1. But First: 7 Evergreen Ways to Improve Your Website's UX
It goes without saying that, in order to create an enjoyable, rich user experience on your Drupal 8 website, you'll need to:
put together a solid UX strategy
run extensive user research and map the user's journey
come up with an effective, well-planned UX design, paying attention to all the latest design trends (and now decoupled Drupal empowers you to tap into a whole range of new possibilities...)
And while carrying out all these phases of the UX design process, make sure to apply the following evergreen techniques for enhancing the visitor's experience.
1.1. Optimize the page loading time
For speed will always be the factor with the biggest influence on the user's experience on your Drupal site.
In this respect, there are tons of performance enhancements that you can implement, ranging from aggregating your JS and CSS files to properly configuring your cache to opting for a CDN, to...
1.2. Use bullets to structure your text
Bulleted lists are the “holy grail” of neatly structured, easy to read content.
For, in vain you invest time and effort in providing content that delivers real value to your website's visitors if you display it as an... “impenetrable” block of text.
In this respect, bullets help you break down the information. The result: users will see the key product or service benefits/will go through all of the presented features a lot quicker.
1.3. Use white space strategically
Speaking of easy to read content: there's no better way to enhance readability and to draw attention to specific elements on a page than... by using the white space itself.
It will automatically direct their attention to the text/image emphasized by all the white space surrounding it.
1.4. UX design is consistent design
From color palette to button styles, from the size of the headings in your text to the chosen font, from the used photos to various design elements... keep consistency across all the pages on your Drupal website.
Otherwise, you risk to confuse and to eventually... tire its visitors.
1.5. Go for visible, attractive CTAs
Always use action words for your calls to action and make sure they're easily recognizable. CTAs play a crucial role in setting up an intuitive, efficient navigation structure on your website...
1.6. Use images wisely
As images are always well-deserved “breaks” for the eye, especially when it's a long text that it's challenged to go through.
And yet, if you fail in using the relevant images, those that perfectly team up with your text... the user experience that you'll deliver will be anything but compelling...
1.7. Make your headings a high priority
Remember to write your headings around some of the main keywords.
Also, strategically design them so that they're highly visible and help users to quickly scan through the content.
2. 4 Features Responsible for the Superior End-User Experience in Drupal 8
Gluing together all the design best practices that make a great user experience does call for a flexible and dynamic web platform.
Drupal 8 is that platform. It comes packed with powerful features that make it easy for you to create the best visitor experience on your website.
Here are the ones with a huge influence on your website's UX:
2.1. Drupal 8 is responsive right out-of-the-box
And responsiveness, along with top page loading speed, still is one of those factors with a great influence on visitors' experience with your Drupal website.
With:
all the available base themes now being responsive
the convenience of adapting your images to various screen sizes right from their display properties
… creating a compelling end-user experience in Drupal 8 is dead-simple.
2.2. Enhanced performance
From a performance standpoint, Dries Buytaert's post on Drupal 8's performance optimizations is still one of the most relevant sources.
If Drupal was already built to “inject” enterprise-level performance into static pages, Drupal 8, with all its caching enhancements, is designed to speed up dynamic web pages, as well...
2.3. Multilingual capabilities
Remember the user experience's main facets, ranging from useful to findable, to valuable, to credible to... accessible?
Well, Drupal 8 provides you with multilingual capabilities right out of the box. You get to translate your website's UI, content, configuration, etc.
Meaning that, with this multilingual system at hand, you can easily create an accessible user experience on your website.
2.4. Content personalization (by segment, login time, device, language...)
In this respect, the Aqua Lift Connector module is your most reliable tool.
What it does is bring together customer data and content, so that you can deliver targeted content experiences across multiple channels and devices.
The END!
And these are those robust features that stand behind the superior end-user experience in Drupal 8. The very reasons why this platform, and particularly this version of Drupal, makes your best ally in creating the most compelling UX on your website.
Photo by Lucian Novosel on Unsplash
Adriana Cacoveanu / Apr 17'2019
With the Twig templates replacing the old PHP templates, Drupal has been brought to a whole new “era”. We can now leverage the advantages of a component-based development in Drupal 8. But what does that mean, more precisely?
How does this (not so) new approach in software development benefit you? Your own team of developers...
And everyone's talking about tones of flexibility being unlocked and about the Twig templates' extensibility. About how front-end developers, even those with little knowledge of Drupal, specialized in various languages, can now... “come right on board”. Since they're already familiar with the Twig engine...
Also, we can't ignore all the hype around the advantage of the streamlined development cycles in Drupal and of the consistent user experience across a whole portfolio of Drupal apps/websites.
But let's take all these tempting advantages of component-based UI development in Drupal 8 and point out how they benefit your team precisely.
1. But First: What Is a Component?
It's a standalone piece of software that can appear in multiple places across your Drupal website/application.
One of the most relevant examples is that of a content hub. One displaying teasers of the latest blog posts, events... You could set up a component that would determine how each item in that content hub should look like.
In short:
one single component can be used by several types of content
any update to its template/style would automatically reflect on all those content types, as well
Accessible via an API, this independent piece of software explicitly defines all its application dependencies.|
Your team could then easily architect a new interface by just scanning through and selecting from the library of components.
2. What Is Component-Driven Development? What Problems Does It Solve?
A succinct definition of component-based software engineering would be:
A software development technique where you'd select off-the-shelf, reusable components and put them together according to a pre-defined software architecture.
“And what challenges does it address?”
It streamlines and lowers the level of complexity of otherwise intricate, time-consuming development and design processes. As the author of given components, your role is to get them implemented.
No need to worry about how they'll get “assembled”; this is what the well-defined external structure is there for.
Word of caution: mind you don't get too... engrossed in putting together the right components, in architecting the best component-based structure, for you then risk investing too little time in... building them properly.
3. Component-Based Development in Drupal 8
Now, if we are to focus our attention on the component-based UI approach in relation to Drupal 8 software development, here are the key aspects worth outlining:
with the Twig engine in Drupal 8, you're free to “joggle with” extensible templates; once you've defined a Twig template in one place, we get to reuse it across the whole Drupal website/app
the Component Libraries module allows you to set up template files (storing all their needed JS and CS), assign a namespace for them and place them pretty much anywhere on your Drupal filespace (not just in your themes' “templates” directory)
you then get to use the KSS Node library and define a living style guide; it's where you'll store all the component templates built for your Drupal website (styles, markup, JS behaviors, etc.)
By filling in your toolboxes with all these tools — the results of a joint effort of the Drupal and the front-end communities — you're empowered to design themes that are more modular. And, therefore, more efficient...
4. The Top 6 Benefits of the Component-Based UI Approach
4.1. It Ensures UX Consistency Across All Your Drupal 8 Websites
Take your library of components as the “headquarters” for all the teams involved in your Drupal project: QA, business, development, design teams...
It's there that they can find the pre-defined standards they need to keep the consistency of the features they implement or of other tasks they carry out across multiple projects.
A consistency that will bubble up to the user experience itself, across your whole portfolio of Drupal 8 websites/applications...
4.2. It Accelerates the Process of Turning Your Visual Design into a UI
Embracing the component-based development in Drupal 8 you'd avoid those unwanted, yet so frequent scenarios where the front-end developer gets tangled up in the wireframe he receives and:
he/she translates parts of it the... wrong way
he digs up all types of “surprise” issues
By using a component-driven UI approach translating a visual design into a user interface gets much more... event-less.
With:
a pre-defined component architecture to rely on
well-established standards to follow
a whole library of component templates at hand
… there are fewer chances of discrepancies between the UX defined in the visual design and the one delivered via the resulting user interface.
Not to mention the reduced delivery timelines...
4.3. It Streamlines the Whole Development Process
“Sustainability” is the best word to define this approach to Drupal software development.
Just think about it:
whether it's a particular grid, navigation or layout that your front-end developer needs when working on a new project, he/she can pull it right from the component library at hand
… and “inject” it into the app/website that he's working on
in case that element needs further updating, the developer will already have the baseline to start with
… there's no need for new components to be designed, from the ground up, with every single project: the already existing ones can always get further extended
And that can only translate into significant savings of both time and money.
4.4. It Reduces the Time Spent on Setting Up the Functionality & Defining the UX
And this is one of the key benefits of using component-based development in Drupal 8. Your various teams would no longer need to define the UX requirements and the functionality every single time during the design process.
With an easily accessible library of components, they can always pull a component standing for a specific requirement (display of complex data, filtering, pagination in grids, etc.) and just define its extensions. And the business logic, as well.
4.5. It Enables You to Systematically Reuse Your Components
And “reusability” goes hand in hand with “sustainability”. I would even say that it's a synonym for “future-proofing”, as well...
Just think about it: by having a Drupal 8 website in a component-based format you can always rearrange components as technologies grow outdated and new ones emerge...
In short, embracing a component-based development in Drupal 8 enables you to remove the need of rebuilding your website every time its underlying technologies “grow out of fashion”.
With your component library at hand, you'll be able to swap your guidelines, design patterns and various content templates in and out, keeping your Drupal app or website up to date.
4.6. It Integrates Seamlessly into the Development Process
By leveraging a component-based development in Drupal 8, you'd also gain better control over the whole development cycle. The update process here included...
Since you'd then build your components and manage your production quality user interface code in a repository like GitHub, every update that you'd make will be displayed in there. And be easily accessible to everyone in your team.
In short, your developers get to pull pieces of code from the repository to further extend them, then re-submit them to GitHub (or to another source code repository) for review.
With the ability to version your component library, your team can keep a close track of all your Drupal applications with their corresponding versions of the approved UX.
The END!
This is how the component-based development in Drupal 8 would benefit you and your team. Have we left out other key advantages of using this approach?
Image by Arek Socha from Pixabay
Silviu Serdaru / Apr 11'2019
Why would you still want to opt for a Drupal multisite setup? What strong reasons are there for using this Drupal 8 feature?
I mean when there are so many other tempting options, as well:
you could use Git, for instance, and still have full control of all your different websites, via a single codebase
you could go with a Composer workflow for managing your different websites
On one hand, everyone's talking about the savings you'd make — of both time and money — for keeping your “cluster” of websites properly updated. And yet, this convenience comes bundled with certain security risks that are far from negligible.
Just think single point of failure...
Now, to lend you a hand with solving your dilemma, let's go over the key Drupal multisite pros and cons. So that, depending on your:
developers' skill level
current infrastructure
project budget
hierarchy of priorities
host capabilities
multi-site infrastructure's specific needs
… you can decide for yourself whether a Drupal multisite setup does suit your situation or you'd better off with one of its valid alternatives.
And whether you agree that it should eventually get removed from Drupal 9.x or not.
1. Drawbacks for Using the Multisite Feature/Arguments for Removing It
Now, let us expose this built-in Drupal feature's main limitations. Those that might just make you think twice before using it:
there's no way to update the core of just one Drupal website from your setup; you're constrained to update them all at once, every single time
it becomes quite challenging to assign a team with working on one (or some) of your websites only
it's not as richly documented as other built-in features (especially if we consider its “age”)
it exposes your Drupal multisite setup to security vulnerabilities; it's enough for one website from the “cluster” to get corrupted (accidentally or intentionally) for all the other ones to get infected
reviewing code becomes a major challenge: you can't “get away with” writing code for one website only; instead, you'll need to rewrite code on all your websites included in the setup, to test it against all breakpoints and so on...
putting together test and state environments gets a bit more cumbersome
in order to efficiently manage such an infrastructure of websites strong technical skills are required; are there any command-line experts in your team?
having a single codebase for all your Drupal websites works fine if and only if they all use the same settings, same modules; if not, things get a bit... chaotic when, for instance, there's a security issue with one module, used on all your websites, that affects your entire ecosystem
also, since your shared database is made of a wide range of tables, when you need to migrate one site only, you'll have “the time of your life” trying to identify those tables that belong to some websites and those that they all share
2. Top 3 Reasons to Go With a Drupal Multisite Setup
Now that we've taken stock of the main drawbacks for leveraging this Drupal feature, let's try to identify the main reasons for still using it:
A heavy-weighing reason is given by the time and money you'd save on updating your “cluster” of sites. With the right experience in using the command-line you can run the due updates in just one codebase and have them run across all your websites simultaneously
It's an approach that becomes particularly convenient if you need self-hosting for your setup (e.g. take the case of a university hosting all its different websites or a Drupal distribution provider...)
You'd be using less memory for OpCache and this benefit becomes particularly tempting if you're dealing with RAM constraints on your servers
3. In Conclusion...
There still are solid reasons to opt for a Drupal multisite setup. Reasons that could easily turn into strong arguments for not having it removed in Drupal 9.x...
But there are also equally strong reasons for getting discouraged by the idea of leveraging this age-old feature. And where do you add that from Docker to Composer and GIT, you're not running out of options for managing your “cluster” of websites.
In the end, the decision depends on your situation, that's made of specific factors like budget, hosting capabilities, whether your websites are using the same modules, etc.
The answer to your “Are there any valid reasons for using the Drupal multisite feature?” cannot be but:
“Yes there are, but counterbalanced by certain disadvantages to consider.”
Image by Arek Socha from Pixabay
RADU SIMILEANU / Apr 03'2019