LATEST FROM OUR BLOG

Take your daily dose of (only) relevant news, useful tips and tricks and valuable how to's on using the latest web technologies shaping the digital landscape. We're here to do all the necessary information sifting for you, so you don't have to, to provide you with content that will help you anticipate the emerging trends about to influence the web.

7 Anti-Spam Drupal Modules to Spam-Proof Your Website With
When you say “SPAM” you say “facts of life”! The life of any Drupal site/app/blog owner or administrator out there! And aiming for a 100% spam-proofed website is as realistic as toiling hard to eradicate... social inequity for good. And yet, you can still cut it down to the very minimum thanks to this heavy weighting “offer” of anti-spam Drupal modules available to you! Depending on the spam prevention Drupal approach that you'll supercharge your website with you'll be fighting spam via:   challenge-response interaction real-time filtering a “deadly” combo of the two approaches more or less user intrusive methods (meaning featuring CAPTCHA or not)   And if the Mollom module for Drupal still is you site's old and familiar “shield” against spambots, you should know that the popular, non user-intrusive  spam filtering service will cease to exist as of 2 April 2018.  Since no one knows how it's going to get configured after this date, whether it will continue to safeguard all sites or none, you'd better be open to alternatives. Now to spare you of a time-consuming research, here are 7 anti-spam Drupal modules that our Toronto web development team has already hand picked for you! Scan them through, compare them and go for the one that best suits your site's anti-spam needs:   1. Honeypot Honeypot is, by far, THE anti-spam module! Basically, when they say or think of “spam prevention”, 99% of “Drupalists” out there say/think of the Honeypot module, of the Honeypot method (for yes, there's even an anti-spam “method” named after it). So, you get the idea: in Drupal world spam-filtering means “honey-potting” in 9 out of ten cases! “How does it work?”, you say? It fights back spambots on two fronts:   It uses a simple, yet surprisingly effective little “trick”: it adds a hidden field precisely to those forms on your Drupal site that it spam-proofs. An easily configurable “bait field” named something like “website” or “URL”. Once that hidden field gets filled in, it's a sign that a spambot has taken the bait. Sneakily-clever and effective! It uses a timestamp (which, again, you get to configure to your liking, the default time being of 5 seconds). If a web form on your Drupal site gets filled in quicker than that specific timeframe that you've set, Honeypot will instantly block its submission. It will identify the “submitter” behind it as being a... spambot.   So simple, so effective and where do you add that Honeypot falls into that category of anti-spam Drupal modules that are 100% non intrusive. The ones that don't keep “bugging” your site's visitors with captcha tests to be solved in order to prove their humanity! There's no user interaction involved, since Honeypot runs its “spambot-detecting” tests on the web forms directly! Note: a con of this module is that those particular web forms on your Drupal site placed under Honeypot's anti-spam protection can't get cached! The module disables caching for these particular web forms.   2. http:BL Now here's another spam blocking Drupal module worth your full attention! Compared to Honeypot's own methods, the HTTP:BL's one is completely different: it blocks any requests coming from Ips included on a DNS blacklist! A blacklist put together by all the Drupal sites using this module for spam protection. A sort of collective fight against spam, one that your own site will be involved in and “reap” the benefits of! Note: the http:BL module can be installed on Drupal 7 websites only for the time being.   3. Captcha, One of The Reference Anti-Spam Drupal Modules How could we have left out, from our list, precisely the module leveraging the “reference anti-spam method” itself: the CAPTCHA method? It does precisely what its name says: it integrates CAPTCHA into your web forms! A challenge-response system meant to block any attempt of automated spam posting, based on “inconveniencing” the user to pass a given test (answering a question, solving a math problem etc.) The module comes with its own default challenge-response tests, so it can be used as a standalone spam-blocking solution, and it can also be used as a base API for other anti-spam Drupal modules. Notes:   our Toronto digital agency's team strongly recommends you to go for the second scenario, to make it just part of an entire “ecosystem” of anti-spam solutions on your Drupal site. There have been quite a few cases when spambots did manage to solve these challenge-response tests.   do keep in mind that captchas are always a deterrent for your users and can easily turn into a factor responsible for the low conversion rate on your Drupal site   4. reCaptcha Take the CAPTCHA and the Re-Captcha modules as a “check and double check” spam-preventing method! The ReCaptcha module goes even tougher on bots as it leverages the “squiggly words” method for blocking spam. Basically, words difficult to read by spambots get taken from old books and turned into captchas. Note: a potential disadvantage of using this anti-spam Drupal module is that some users, too, might find it hard to recognize these “hard nut to crack”, less common words!   5. Antibot, One of the Anti-Spam Drupal Modules to Supercharge Your Site With Here's another representative of the group of anti-spam Drupal modules that are totally unintrusive! It uses its spam-preventing “superpower” like this: it practically assumes that bots are discouraged to spam pages using Javascript, therefore users enabling JavaScript in their browsers are, implicitly, spam-proofed by default. For those cases where spambots do attempt to render precisely these “safe” JavascripT-based pages, the module will inspect your visitors' mouse movements and keyboard key presses in order to identify them as “humans” and to allow them to submit their filled in forms. A pretty clever check-up if you come to think of it! Note: one of the Antibot module's notable features is that, unlike other anti-spam Drupal modules, it doesn't disable cache on the web forms that it protects. A performance-enhancer you just can't overlook!   6. Botcha Take the Botcha module as an all-in-one spam-blocking solution for websites running on Drupal! And where do you add that it doesn't involve any user interaction (and therefore “user bugging”) either! There are 3 methods that this module uses for detecting and blocking spammy form submissions:   the honeypot method: it adds that hidden, “spambots luring” field to the protected web forms on your website the source calculation-based method the time-based method   And there's more! Once enabled, this module will also prevent any attempts of resubmitting the same form by using its own “NoResubmit” formula. Note: the only downside is that there's no Drupal 8 version of the module. Not just yet!   7. Simple Anti-Spam         This module's main “role”, in its mission to prevent spam posting processes, is to block automatic spam coming from anonymous users. And its name says it all; it's a simple “two-ingredient recipe” that it relies on for blocking spam:   there's an “I'm not a spammer” checkbox and there's an “I'm a spammer” hidden checkbox   Once the later gets checked or the former is left unchecked, it will just “warn” the module of a “suspicions activity” on your Drupal site. It's then that Simple Anti-Spam displays a warning message or simply blocks that specific form from being submitted to your Drupal site. Moreover, from:   blocking web forms by maximum text length blocking them by stop words to blocking form by number of links and the list can go on   ...the Simple Anti-Spam module is one of those anti-spam Drupal modules that can report a form as being “suspicious” (automatically blocking it, too) based on a whole array of criteria. Note: there's yet no Drupal 8 version!   Your turn now! What other approaches have you adopted on your Drupal site for... pulling the plug on any type of spam activity?  ... Read more
Adrian Ababei / Jul 04'2017
How The Drupal CDN Module Can Speed Up Your Site
It's speed that excites them all, with no exception! While some of the users prefer a minimalist web design, others might go for a maximalist design instead. Some have a weakness for content infused with storytelling, while others prefer just simple, “raw” data... And still: online users ALL have a thing for high page loading speed. And the Drupal CDN module makes such a powerful tool for you to supercharge your site within the name of top speed!   “Why should I even integrate a CDN when I can as well continue to use web hosting? What difference would it make?”   2 more than legitimate questions that we'll try to answer as we'll do our best to point out to you how precisely a CDN can boost your Drupal site's performance and why you should add it to your whole “arsenal” of speed-boosting tactics (moving CSS and JavaScript in the footer, perfecting the caching on your site, compressing your heavy load of images, etc.). So, let's dig in, shall we?   How Precisely Can a CDN Guarantee You a Lightning Fast Website? A short version of the answer to your valid dilemma would be: “compared to a shared web hosting, a CDN is built with speed in mind; it's equipped with the capacity to withstand huge fluxes of visitors”. In other words: while shared hosting is simply geared towards delivering you a stable environment for your website, a CDN's infrastructure setup is developed precisely to ensure high page loading speed, irrespective of the influxes of traffic on your site. And this is no news that we're sharing with you here: just consider with how many other websites your own Drupal site is sharing its hosting sever with and... you do the math! Try to imagine how many times its performance would get boosted if it had a server all by itself. Dedicated exclusively to its own needs for speed and to answering its particular traffic challenges.   1. It Will Lighten That Heavy Load of Plugins On Your Site Plugins! Who can resist them?  Once installed on your Drupal site, they just unleash their “encapsulated” functionalities. And each one of them comes with its own too-cool-to-resist-to functionality! Piling them up, adding more and more, eager to impress your visitors, does have the “taste” of a “guilty pleasure” doesn't it? “Guilty” because with each new plugin, with each new load of JavaScript and CSS files that you add on, your Drupal site gets even more bogged down. And how can a CDN, via a dedicated tool such as the Drupal CDN module, help you out here? For it certainly cannot point out to you which plugins to keep and which ones to disable! Well, what it CAN do, instead, is compress and minify their scrips! Therefore your site's heavy load of content will get considerably lighter and its performance dramatically improved!   2. It Will Speed Up Content Delivery Anywhere on The Globe Basically a CDN infrastructure's built to serve content worldwide, irrespective of the website's own location on the globe. In short: users located far away from your site's location, shouldn't be disadvantaged, in any way, in terms of content delivery speed. And how does a CDN manage to deliver content, at high speed, to an international audience? It relies on its entire “ecosystem” of proxy servers, located in various locations worldwide. It's them that catch and then replicates content (images, CSS, JavaScript files) precisely from those locations which are geographically closest to your users. Wrapping up: if your Drupal site's located in Asia and a visitor from Europe makes a content request, that particular user will get its content delivered as quickly as a visitor from Asia would. Thanks to that network of servers, placed all over the globe, that your CDN will leverage.   The Drupal CDN Module: A Handy Tool for Integrating CDN on Your Website Now, where do you add that you even have a dedicated module for it?  Once you've convinced yourself of the CDN's key advantages and once it's more than clear to you how its integration can benefit your own website, just go ahead and... enable it! Practically what this module will do is change your files' URLs so that they should no longer load from your current shared web server, but from your CDN instead!   A Step-by-Step Guide to Installing and Configuring Your Drupal CDN Module Now let's point out to you all the steps you need to take, along with some useful tips and tricks, so that you can use your CDN at its full potential on your website:   You install and enable your Drupal CDN module on your website   You navigate to its configuration page    See the “General Settings” tab? It's there that you can set the module's status (enabled, disabled or on testing mode)   Next, click on the “Details” tab and wisely scan through the whole set of options that you have there: pick “Origin Pull”, select the “CDN mapping” setting, and so on. It's the latter that enables you to specify which files on your website should get loaded via your CDN from now on   Select the “Far Future Expiration” setting and this way you will ensure that files delivered via CDN will “expire” in the future to come (enhanced cacheability on your client's side). Also, since these two settings go hand in hand: keep in mind to enable your “Aggregate and Compress CSS files” option in your Performance settings   Select “CDN supports HTTPS” (you'll find this setting in your “Other” tab) if it's the case, meaning if your Drupal website does use HTTPS   And that's it! Your site's all set for reaching... high page loading speed now! ... Read more
Adrian Ababei / Jun 29'2017
Speed It Up: Use the Image Lazyloader Module on Your Drupal Site!
Lazy loading (images, in this case) leads to energy preserving, which leads to a significantly improved site performance! Pretty ironic, isn't it? Well, this is precisely the logic on which the Image Lazyloader module in Drupal has been developed! Saving your website's energy goes hand in hand with increasing its page loading times. It goes hand in hand with “sparing” HTTP round-trips and taking some heavy load off the browser's “shoulders”, which otherwise would be “pressured” to relentlessly load thousands of images, even before they would be visible in his/her window browser. Basically what this module does is both unexpectedly simple and impressively smart : it loads images on your Drupal site only when they're in visitors' viewports.  In other words: when there's no one opening them up in his/her browser, why bother loading an entire “cargo” of images? Why put an unnecessary pressure onto your site and the browser? And now let us detail to you this “energy-saving” tool that Drupal puts at your disposal and which we encourage you to leverage in the name of a... faster loading website:   The Image Lazyloader Module: How Does It Work Exactly? What Makes it a Speed Booster? The whole “mechanism” behind this Drupal module is surprisingly simple, if we come to think of it: it loads images (lots and lots of them) only when they're displayed in a site visitor's browser window. Not before! And this is a “dream come true” especially for web designers, who're constantly dealing with the challenge of optimizing heavy loads of images. As you can surely guess it yourself, the module's an incredibly useful tool precisely for those Drupal website carrying heavy “cargos” of images. For no matter how many they might, how heavy the load is, the Image Lazyloader module's capable to... lazy load them all and therefore to keep your site's performance at optimum parameters.   How Do You Use It? How Do You “Exploit” Its Full Potential on Your Drupal Site? Now allow us to give you a few tips and tricks or, better said, a step-by-step guide on how to fully leverage this module on your Drupal site:   Step 1: you download (and install, obviously) the module itself along with the Libraries module in the sites/all/modules/contrib; the latter is, in fact, a dependency for 2.x branch  Step 2: next you download your echo library and place it in sites/all/libraries Step 3: it's time to enable your Image Lazyloader module now Step 4: don't forget to clear your cache   Essentially all these preliminary setups will actually grant you the much-needed freedom to quickly enable and to disable your Lazyloading module any time you want to. Which turns it into such a powerful convenience when you just need to run some tests on your website, for instance. And speaking of “empowerment”, there's an entire array of options to choose from and setups to enable, depending on your site's needs and on your purposes:   you have the loader icon letting you know if the images are not (yet) fully loaded   you get to set the distance from the viewable screen part and to go for a placeholder image of your choice   you're even enabled to select those particular web pages on your Drupal site where there's no need for an image lazy loading process to be performed   And voila! These are the answers to your “why” and “how" to use the Image Lazyloader module! Questions deriving, of course, from the main one: “how can I boost my Drupal site's performance?” Feel free to test its image optimization power and to determine how much faster your web pages will then load.  ... Read more
Adrian Ababei / Jun 27'2017
5 Modules for Building Popups in Drupal
You know what they say: “there's always a module in Drupal for... pretty much any type of functionality you might need!”. And pop-up messages are no exception! You have a whole “arsenal” of modules for building popups in Drupal, each one of them “specialized” in providing you with a certain type of “refinement” or  set of particularities that you might need to leverage on your site. You might want to trigger a pop-up taking the form of:   an announcement displayed in an overlay   a redirect pop up message   or maybe you simply need a pop-up opening up a form   There's a dedicated module to suit any type of site-specific expectation you might have. And now, without further ado, let us “unfold” before you eyes the list of 5 useful modules for building popups in Drupal:   Popup It's not without premeditation that we've put this particular module on top of our list. In terms of pop-up building “tools” in Drupal the Popup module can easily get perceived as an entire “toolkit” at your disposal! Therefore, it's much more than just a stand-alone module, but rather a “cluster” of sub-modules, each one of them adding its own functionality to the whole suite.  As a whole, it helps you (your team of Drupal site builders) trigger menus, nodes, blocks, forms, php-generated content and views as pop-ups. Taken individually, these sub-modules are:   Popup descriptions: turns item descriptions into popups   Popup filter: puts an input filter at your disposal, one turning popup tags into popups in filterable content   Popup: delivers a couple of basic popup styles and the basic popup framework, as well   Popup block: the one “responsible” for the block configuration options (the ones that make every turning of a block into a popup possible)    Popup menu: which, as you surely can already guess, provides the needed blocks of popup menus corresponding to each menu within your system    Popup UI: “dealing with” all the display formats, integrating node-reference fields and handling cck, as well    Take the Popup module as some sort of “Swiss army knife” standing out from the group of modules for building popups in Drupal. Just name a pop up-related functionality that you need to leverage on your site and this suite of sub-modules is ready to provide you with!      Popup Message It's the answer to your “How can I display a pop-up messages, one per each browser session, to my Drupal site visitors?”. And here's how you configure it so you can “harness” its functionality:   you navigate to admin/settings/popup_message where you define your message's body and title   next you navigate to admin/user/permissions in order to set your permissions    Note: if it's a Drupal 8-powered site that you own/administer, then you should know that the team of developers behind this module is working hard on its migration to Drupal 8 as we speak. In short: is patience one of your virtues?   Pop-Up Question Redirect  Here's another module that shouldn't miss from your “toolbox” when you need to display a pop-up window to your Drupal site's visitors! You get to leverage its functionality for:   informing them about a certain promotion running on your website   getting them to complete a survey   putting a certain (new) page or section on your site into the spotlight!   The moment the user clicks on the “Yes” button included in your pop-up window, he/she will get automatically redirected to that specific page that you're trying to draw his/her attention to! And speaking of them, your visitors, here are the 3 user-oriented functionalities that this module provides:   The “Yes” function, which guides your visitors to the page that your pop-up is targeting   The “No, remind me later” function, which will trigger the pop-up window, once again, after a certain amount of time   The “No, don't show this again” function, which blocks the pop-up   As for all the needed configuration “backstage hocus pocus” that you need to make in order to fully “exploit” this module's functionality, it's actually just a 3-step procedure:   Just define your popup title and message   A textfield where you need to enter a redirect link   Set the time for the “remind me later” functionality   Note: you even get “spoiled” with a more-than-useful “extra” functionality, that of being able to exclude certain user ip's; this way you decide which ones of your visitors shouldn't be “bugged” with your pop-up message.   Popup Forms, One of the Key Modules for Building Popups in Drupal  First things first: you should know that this module doesn't “trigger” any pop-ups itself, instead what it DOES do is provide API for themes or/and modules! So, it displays any given type of Drupal form as a popup, via an jQuery UI dialog. Compared to other “kindred“ modules, the Popup Forms module does not display any type of popping-up content except FORMS. This being said, let's see which are the key features that you'll want to use:   It can easily integrate multi-step forms   It enables you to set up various parameters to your form callback   It can pop up https forms from non-secure pages, too   As aforementioned: it uses a jQurery UI dialog for displaying your pop-up forms   Once your forms are successfully submitted, you gain unlimited access to the $form_state from Javascript   Note: you'll need the jquery.postmessage plugin for “harnessing” this module's power on your Drupal site!   Pop-Up Announcement It's the handy tool to rely on whenever you have an announcement to make; whenever you need to establish this type of interaction with your website visitors. Basically it enables you to communicate with them via pop-up announcements displayed in overlays. And it's you who'll determine on which ones of their visits on your site these pop-ups should appear (on their first visits, their third, their fifth; it's you who'll define this parameter). Moreover, you even get to determine which is that specific page on your site that your announcement should pop-up on, as well! In short: when you say Pop-Up Announcement you say “utter flexibility”! Basically you get to customize your pop-up interaction with your users the way you like it! And now, just a quick overview of its most “tempting” functionalities:   The pop-up announcement shows up in an overlay   You'll get your own admin page, your own “control tower” where you get to manage all your announcements   Your announcement pop-ups can be written in html, too   As already mentioned here: you get to define on which ones of your users' visits your announcements should get triggered; and it's on your dedicated configure page that you get to make all these key set ups.   And speaking of functionalities and parameters that you're empowered to define yourself: you even get to set up a specific visibility for each one of your announcement messages; for instance you can have different degrees of visibility on different sections of your site   Note: OK, so you're granted tones of flexibility and power of customization, but there still are some limits, as well. 2 actually: you can't set more than one announcement pop up per page or more than one pop-up per user visit! As for the configuration part, just navigate to admin/config/popup_announcement/list and make all the right selections and set ups for tailoring your announcement pop-ups to your site's needs! It looks like our list of useful modules for building popups in Drupal ends here! Do you happen to have other “favorites” that haven't made it to our list? Which one of the 5 modules mentioned here do you find most effective, most feature-rich and helpful for your own team's pop-up building “tasks”? ... Read more
Adrian Ababei / Jun 23'2017
How to Create Role-Specific User Registration Forms in Drupal
More functionality, more possibilities, right? Yet it can also lead to more complexities and more challenges that you need to face as you start harnessing it (the enhanced functionality!). For instance: Drupal's entire ecosystem of user roles and, implicitly, of permissions! On one hand it streamlines your efforts to put together an organizational infrastructure and a solid security policy within your enterprise, on the other hand: what do you do when you need to create role-specific user registration forms?  Well, then you start your research work and dig into Drupal's heavy load of modules! Or you aim for efficiency instead! You “reap” the benefits of our own experience as a digital agency in Toronto and simply run through our here below selection of 3 modules that are up for the job. And here are these Drupal modules which, once combined into a powerful trio, will help you solve your “how to build a custom user registration page” puzzle:   1. Build Your Role-Specific User Registration Forms with Multiple Registration It's not for no reason that we've put this Drupal module on top of our list of “tools” that will help you build your role-specific user registration forms. This is the module that will be playing the leading role in your little “orchestra” of 3 modules fit for this “job”. Now let's find out what it does precisely:   it enables you to create your custom user registration forms, adapted to the particularities of each one of the user roles currently existing on your Drupal site    it allows you to add specific fields, fields that you don't want to enable for the “standard” or “general” registration forms, as well    moreover, its functionality extends beyond the registration form: it empowers you to add fields to your “target” users' (having “special” user roles) edit pages, too; fields that you don't want to get displayed on their registration pages, as well. You can do that, too, once you start running this module at its full potential.   How to install it:   you install it (obviously) and once the installation's compete, you access your Roles page (admin/people/permissions/roles)   once on your Roles page, you'll see that you're enabled to add a custom user registration form to each one of the user roles listed there; in other words: to create your role-specific user registration pages   for “assigning” your registration pages to your “target” user roles, simply enter the pages' paths there   Note: needless to mention that before you rush in to add your custom registration forms to specific user roles... you should first of all put together the hierarchy of user roles on your Drupal site. You should have your roles created BEFORE you start “attaching” them custom registration pages! If everything went well, it's here that you should be able to see all your role-specific user registration forms: admin/config/people/multiple_registration! Last but definitely not least: access the needed field settings form and “assign” it to your recently created custom registration page. 2. Registration Role With Approval  You most definitely need to trigger this module's functionality if you (and we're pretty sure you do) need a “tool” helping you to determine which user roles needs your approval, as your Drupal site's admin. How does it work precisely? It's pretty straightforward: the user gets all the available user roles listed on his own registration form and gets to select the role he/she'd like to “play” on your site.  If the selected role is listed as “needs admin's approval”, his account gets blocked until you, the admin, has checked his request and assigned him that specific user role.  Maybe, let's say, you don't want any user, having any type of user role on your website, to instantly gain access to all information stored on your website. Therefore, being able to approve, beforehand, the requests for some of the “critical” roles, is a huge “empowerment”. A much needed tool to help you organize your whole “infrastructure” of user roles on your Drupal site, don't you think? How to install it:   Start by copying the module folder to your Sites/All/Modules directory   Next, enable it at Admin/Build/Modules   Then navigate to Site Configuration -> Registration Role With Approval   There you get to determine which user roles will get displayed on the users' registration forms and also (most importantly) you get to specify which ones of them need admin's approval before users can use them   Save   Once you log out and navigate to user/register, if your module installation process has run smoothly you should be able to see your Role checkbox list    So, it looks like you've just added one more useful Drupal module to your list of “3 tools” that will help you build your role-specific user registration forms. 3. Profile2 Registration Path Why would you need a third module, as well, for the job? Well, because you don't want the same user registration form to be presented to two different user profile types from, from two different audiences (let's say that you have the “doctors” and “the visitors/patients” audiences, if it's a Drupal-powered health portal that you own). The solution to this “problem” is the Profile2 Registration Path module itself, which enables you to set unique registration paths for each Profile2 profile type. And it's these unique paths that make sure that the users registering via them will get precisely the fields corresponding to their own profile types. How to install it:   Enable your module   Navigate to Admin/Structure/Profiles for editing a profile type   Once there, check the “Enable unique registration path” option   Type an URL path for this profile type   Save and log out and next check your [your-path]/register   Key Features:   You get automatically generated registration blocks for each profile type on your Drupal site   Custom confirmation message once the user registration has been successfully completed    You're enabled to either: build a distinct registration environment for each profile, with forgot password pages and separate login   simply add a new registration tab to the already existing user path    And there you have it: your “emergency kit” of Drupal modules to use when you need to create some role-specific user registration forms! Not only that you'll get to build the needed custom forms, themselves, but to add all kinds of “refinements”, as well, such as admin approval functionality and unique paths. You have "problems", we have solutions! ... Read more
Adrian Ababei / May 19'2017
Decoupled Drupal: What Does This Mean for Your Own Site?
Should you decouple? When? How? What are the risks that a decoupled Drupal site involve? What are the undeniable, hard-to-resist-to advantages of “teaming up” your Drupal site/mobile/native app with a fast, cool JavaScript framework and of using Drupal as a back-end content repository “only”? And, most importantly: is a “headless” build suitable for your own web project?  Our web development team here, in Toronto, comes with its very first piece of advice for you now, when you're facing all these crucial questions: always use the context of your very own web project to filter all the “trends” seeming to dominate the digital landscape at some point or another! Before deciding to go for a decoupled implementation, make sure that all the members of the team involved (Drupal developers, project managers, content editors) clearly understand what a decoupled Drupal architecture is. And whether the technical risk involved is worth the effort. Whether this approach is exactly what your web project needs. Now, let us help you find the answer to your legitimate decoupling-related questions: 1. “But What Is a Decoupled Drupal Architecture, After All?” To put it simply: decoupling Drupal means separating the back-end of your website/app from its front-end (either partially or totally). Now if we are to detail a bit, we would have to add that:   in a decoupled Drupal context we would have Drupal playing its role in the back-end, that of storing and sending forward pure data   the front-end (aka, the “responsible” of everything related to the user experience) role will be played by a JavaScript framework (e.g. Backbone.js, Angular.js)   the presentation layer can range from Alexa to Raspberry PI, to pretty much anything that can consume the data sent over by the Drupal-powered back-end   Drupal's “role” can easily resume to what the content producers...produce, while the coupled front-end framework will be “responsible” for what the users see on your site/app. Responsible for creating a faster and richer user experience. In other words: Drupal will be handling the editorial, content creation and administrative tasks, while the coupled framework will be handling the front-end, communicating with the Drupal back-end via API. The obvious “points of attraction” of such an API-only approach are the unlimited freedom and flexibility granted to front-end developers.  Unchained from the “need” to know how to write or to decipher Drupal-specific code each time they need to improve the look and feel of a website, front-end developers get to choose from different approaches of building a website. They're free from the monolithic Drupal architecture with the presentation layer backed in through the Drupal theme itself. Free from the tightly interconnected back-end and front end. 2. “Why Should I Decouple? What's In It for My Own Site/App?” Now this is a more than legitimate question that you should be asking yourself once you've fully understood what a decoupled Drupal build is. Here are some key advantages if you decide to go for a “headless” Drupal site/app:   it allows you to create some truly interactive user experiences (it's the browser who'll take over the user experience responsibility and so all the back-and-forth interaction will be a real-time one; a key aspect to consider when developing in-browser apps)   it grants your team of front-end developers almost unlimited creative power; no more restrictions coming from the back-end + total freedom for front-end developers to use their native tools and to craft the user experience while they still get to harness Drupal's power via APIs   it enables you, as a decoupled Drupal site owner, to future-proof your website; once you decide to redesign it, you can do that without having to re-implement your whole  back-end, too. And vice versa. Flexibility and convenience!   it enables you, the site owner, to hire non-Drupal specialists, too, since front-end developers won't need to be Drupal experts, as well. You will no longer be limited to collaborating exclusively with developers having a deep understanding on the Drupal back-end architecture, of the Drual-specific code. Even more flexibility for you! 3. “What Type Web Projects Would Benefit Most from Decoupling Drupal?” And this might just be the best headless Drupal-related question you've asked yourself so far! It's definitely a matter of: “Is this solution a perfect fit for my own site/app, too?” See if you can identify your own type of Drupal web project in the examples here below and you'll have the answer to your question. So, decoupled Drupal is best used for:   Native mobile apps, especially now, that you're “spoiled” with RESTful services in Drupal 8 core, creating clean APIs is easier than ever. Your mobile apps users won't even need to interact directly with your Drupal site when accessing your native app. Your website's front-end will be using the same APIs as your native mobile app! Also, you get to build new and new mobile apps without the need to access the data that your back-end stores.    Web projects involving front-end developers with no Drupal expertise   Web projects that include multiple development teams   Web projects with front-end teams depending on unlimited freedom for structuring and displaying the content   Web projects where the presentation layer combines data coming from several API sources: social media, CMSs, video management systems   Web projects with multiple content consumers that are live simultaneously (e.g. a Drupal site plus several mobile apps, as well) 4. “Which Are The Main Drawbacks of a Decoupled Drupal Site?” “So, do you suggest that I should just go... headless, that Drupal 8's new them layer is just something I can easily do without?”  This might just be the question bumping into your head right now, isn't it?  Well, it's true that going headless comes with its drawbacks. You risk to throw away some of Drupal 8s' “goodies”:   permissions a well-enhanced, seamless admin experience in Drupal 8 user authentication   The best approach is the “moderate decoupling” or, if you prefer, the “progressively decoupled Drupal”. This means that instead of going reckless and losing all of Drupal 8's out-of-the box flexibility and power as you go for a fully decoupled Drupal site, you should:   Still leverage Drupal's theme layer's power, using it to render most of a given web page   Decouple only SOME of the web page's components, mostly those that require a faster and richer user experience    In a nutshell: moderation is key! No need to waste time, energy and a good “load” of incredibly powerful Drupal elements and... reinvent the wheel! And now, to support our pledge for the progressive approach to decoupling, let us back it up with one single example: NBA.com! This site's using Angular 2 for rendering only certain parts of its web pages, while their static components are rendered by Drupal! And speaking of this site using the “hybrid” approach, here's a Drupalcon Baltimore 2017 session filled with all the details and “enlightening” infos that you might find useful:   https://goo.gl/4jEhhu In Conclusion: It's not for no reason that decoupled Drupal makes such a tempting type of CMS architecture, but you should first of all:   not take API-fist Drupal 8 for an API- only CMS   give it a very deep thought, lest you should decouple too much of your site and lose some of the already-built, powerful Drupal tools.          ... Read more
Adrian Ababei / May 18'2017
Develop Your Website With a Leading Drupal Agency In Toronto
Despite it being a relatively new CSM system, Drupal has gained on and overtook major players in the field, such as Wordpress and Joomla. It has a number of advantages the veteran platforms just can't match. Until and unless they gain on, your business website is certainly better off developed by a Toronto Drupal agency. Especially now that Drupal 8 has come out and gave us all the amazing functionality it has to offer. But let’s be more specific and give our readers the four main reasons Drupal is your best choice and why you should consider assigning your web project to a Drupal 8 agency. Not from a Drupal developer’s perspective, but from the point of view of a business person aiming at a powerful yet easy to use system that will get your business firmly planted on the digital map. We give you the four reasons you should choose a Toronto Drupal agency. Functional Benefits Drupal is more complex than Wordpress but it’s exactly this complexity which packs all the additional functionality and power it has to offer. It has more features, more content types, more views and metrics. Developing your SEO and content strategy on Drupal gives you more options for fine control and greater reach. Greater Flexibility Unlike other CMS platforms, Drupal themes are considerably more varied. What’s more important, they are also considerably more customizable. There are many more free modules too. Yes, you will still need a Drupal company to handle and install them for you, but their variety and power definitely make it worthwhile. It’s also more robust and has better capabilities when it comes to eCommerce and handling huge amounts of content. Improved Usability While it has a learning curve somewhat steeper than other CMS platforms and requires more technical skills to learn, Drupal is amazingly easy to use once you know how to do it. It can produce sites that are more advanced, powerful and varied, in a streamlined workflow that Wordpress developers can only envy. And moreover, Drupal 8 is made easier for non-developers to work with, so once your Toronto Drupal agency completes the job, you can take over from there. Superior Security Security is a big factor for most businesses and Drupal is definitely displaying top performance in this area. There are government sites, including the official White House website that prefer Drupal for its enhanced security and monitoring features. While other CMS platforms are notoriously vulnerable to hacking, Drupal gives your business a safe space for confidential information and client transactions. Want to know more about Toronto Drupal web design? Let’s talk! ... Read more
Adrian Ababei / Apr 20'2017
Avoid These Common Pitfalls In Drupal Module Development
Just like anything and everything else, Drupal also has a learning curve. Until you had mastered the techniques, tools and options it offers, got familiar with the best Drupal themes and have a good sense of knowing what you’re doing - mistakes are going to happen. Which is the reason we’re publishing this article - to minimize those mistakes and help you get ahead of the game. So, without further ado, let’s get to work and cover the main pitfalls that await when creating Drupal modules. Too Code Heavy The main goal of a module is to simplify things. When a module is created, it will compete with tens of thousands of other modules that are already there and those that are coming out right now. Look for shortcuts to streamline and make your process more efficient. If it’s too long to read, it may be too long to write. Cumbersome Modules Keep it simple. One module that does one thing well is easy to understand and a pleasure to use. A module that tries to do too many things at once may be cumbersome, inefficient and frustrating to users. Moreover, producing 10 modules with one function each will take less time than coding one that does all 10 things all by itself. Workflow problem solved! Ignoring Drupal Core API Drupal module development best practices hinge on using the core API. It makes things easy, fast, comfortable. And yet, there are developers who somehow manage to avoid it. You should generate links using l(), static strings should be passed via t() and so on. It makes your code easy to maintain and consistent with Drupal’s internal logic. Make sure to always use it. Not Using Caches Caching policies should be your standard practice from the very first stages of the project. There are so many cache-related bugs which can be avoided this way, you’d be surprised how much easier it becomes once you start doing it. Neglecting Inter-Module Integration When you install Drupal modules, you want them not just to work independently, but together as well. You need to make your modules work with other entities, permissions, views and domains. This integration will result in a more cohesive website that doesn’t snag on itself when trying to do work that involves modules interaction. Want to know more about how to create modules in Drupal 8? Let’s talk! We’re here for you. ... Read more
Adrian Ababei / Apr 18'2017
Drupal 8 Ubercart Vs Drupal Commerce: Important Factors to Emphasize
With online sales being a huge and growing phenomenon, more and more entrepreneurs take their business online. The amount of e-commerce stores, platforms and services is growing as well. In this particular blog, we’d like to compare two options that are out there: Drupal 8 Ubercart vs Drupal Commerce.   Drupal 8 Ubercart vs Drupal Commerce There will be those who’d say that Drupal is a reboot of Ubercart, especially since the lead developer from Ubercart is the one who’d now gave us Drupal Commerce, a set of Drupal modules. While this has some truth to it, there’s more to consider here than a superficial comparison can provide. There are similarities, naturally, but like any reboot, there is a vast difference as well, with massive improvements and upgrades. Let's examine the two eCommerce platforms from several different perspectives.   1. Popularity Points While Ubercart is more popular at the moment, more and more businesses are migrating and getting a Drupal shop instead. Either way, at tens of thousands of users on each, we can say they are roughly equal in this respect.   2. Future-Proofing Both platforms look like they’re in for the long haul. Drupal 8 Ubercart has its base of loyal users and Drupal’s strong forward-momentum makes this a close competition. This is promising for both players of course, and reassuring for their users.   3. Customizable Features Both are very configurable platforms, but Drupal Commerce themes are often much more impressive. This is mainly, but not only, due to the fact that Drupal 8 comes with themes that are mobile-first, making shopping a breeze from any device. A great bonus.   4. Edge Cases Or, in other words, what’s missing and how bad is it when you hit that wall? There are things you can only do in Drupal shop configuration and not in Drupal 8 Ubercart. Especially when it comes to the Drupal 8 shopping cart - both in terms of design and functionality. Then again, there are things that Ubercart does well and Drupal is still working on. It will surely catch on soon enough, however, so we’re not worried.   5. Ease of Use In terms of basic use, Ubercart seems easier than Drupal Commerce. The ease is a fair price to pay however, for the power, integrations, and security that Drupal 8 offers and Ubercart can no longer match. Want to know more about Drupal eCommerce development and the best Drupal modules to power your online store with? We’re here, just give us a shout! Your Drupal shop and internet marketing success are one short click or call away. ... Read more
Adrian Ababei / Apr 16'2017