Adrian Ababei

Adrian Ababei

Adrian is our CEO, a full stack Drupal web developer with no less than 14 years of experience in designing, implementing and supporting interactive websites and applications. Completing his Drupal expertise with project management skills, as well, he's the one ensuring that we deliver all the Optasy's projects on time, within budget with no compromise on quality whatsoever.

Back to Blog Posts
Which Drupal 8 Ecommerce Modules Are Truly Indispensable to Your Site? 
Would you settle for out-of-the-box functionality and still dare to “dream big”? To aim at above-the-average conversion rates on your Drupal ecommerce site?  Or are you determined to go beyond the “by default” set of features and to supercharge your online store with some extra power, too? With a couple of additional Drupal 8 ecommerce modules, as well? And it's only then that you'll feel entitled to hope for “truckloads” of online shoppers! Now if the second scenario best fits your strategy, then you must probably be slightly overwhelmed right now as you dig through the wide array of modules for Drupal ecommerce sites.  How do you avoid “stacking” non-essential Drupal 8 modules on your website? How do you filter them and “extract” only the “bare essentials”, the ones that shouldn't miss from your ecommerce site if you have big plans for it? You use our list here below for sorting them out, that's how!    1. Drupal Commerce  Take it as your site's transition from a basic online store that pretty much just... takes orders, to a fully-fledged, feature-rich and perfectly equipped ecommerce “machine”! And this “transition” is actually made possible thanks to a heavy “arsenal” of features and functionalities that the Drupal Commerce module supercharges your site with. Let's list just the most notable ones of them:   it enables you to have multiple payment gateways   it integrates social media   it comes with mobile responsiveness capabilities   it enables you to display international currencies   it empowers you to create product types having tailor-made attributes    it grants your web designers more freedom   it's PCI compliant (your servers won't ever store your customers' credit card details)   it makes “joggling with” dynamic product displays possible   And the list is actually a never-ending one. It's a multi-purpose, “Swiss army knife” type of module (or “cluster” of sub-modules?) that covers all aspect related to:   products  orders customers payment processing   If you dare to go big, to build out a large-scaled website, to go international, as well, then this module shouldn't miss from your own “arsenal” of essential Drupal 8 ecommerce modules!    2. Ubercart Now if you want to start small (right away) and grow big, then Ubercart makes the perfect Drupal e-commerce solution for your strategy! It will help you get your basic shopping cart system up up and running in no time! Take it as a basic online shop “kit” that you can assemble hassle free! And when we say “online shop” we do refer to a wide variety of ecommerce industries that a Ubercart-powered website can serve:   digital downloads selling physical, shippable goods  subscription billing services   … and it's ideally easy to administer it, as well! Once you've set up your online store, you get to instantly “harness its power”, to use the entire plethora of Ubercart features at its full potential:   manage products and orders   keep track of your stock levels with a simple mouse click   create configurable product catalogs   incorporate your favorite payment system (and even add a whole “bunch” of them, that your customers can choose from)   generate product and customer reports   add multiple images to each one of your products   set up an automatic organizer for your items   display shipping quotes   Note: by far the most notable Ubercart feature is the one-page checkout functionality. And we all know to what extent a simplified, just-a-few-steps check-out process can positively impact UX and, therefore, the sales, too, right?   3. SEO Checklist: One of the Must-Have Drupal 8 Ecommerce Modules  So let us recap! You want:   a module that should instantly supercharge your site with all the needed functionality that would turn it into a powerful sales-generating “machine”   another Drupal module that could help you set up your store hassle free, providing you with all the needed features in the form of a kit to put together   Yet you'd end up with nothing but a “deserted” site, that no one would visit (for no one would know about it) if you didn't have your on-page SEO in place, right? And since “SEO” sure means a never-ending “to do” list, what more convenient way to take care of your ecommerce site's SEO than by actually... checking off a list? A functional list presenting you with all the tasks you need to carry out! Guess-working is out of question, maybe hiring a team of SEO “gurus”, as well, and venturing all by yourself into the “deep see of SEO possibilities” doesn't sound like a strategy. Therefore, installing and leveling this module's “convenience” and superpower is a must! Haven't you “sprinkled” enough (proper) keywords across your piece of content? Have you entered the right title tags? Have you chosen a riskily lengthy title?  When in doubt, let the SEO Checklist module show you the right way to optimize your site! When you've missed to complete a certain SEO task, the same module will instantly signal it to you! Moreover, it's regularly updated! So, you don't need to worry about being left behind Google's algorithm changes. Your list of tasks to check off will get automatically adjusted to those changes! Note: not only that your SEO checklist “warns” you about the wrongly completed or missed tasks, but it enables you to keep a close track of your work, as well. To closely monitor your progress! Take it as more than just one of the indispensable Drupal 8 ecommerce modules: take the Drupal SEO Checklist as a “handbook” including all the best SEO practices that ensure you a place right into the spotlight on the search engines' stage!   4. Adsense Thinking of running Adsense adverts on your Drupal 8 ecommerce site? There's a module for that! Practically what Drupal Adsensde module does is providing you with the needed “kit” of add blocks that you can then easily move around and display on your site to your liking. It even enables you to point out the roles that it should disable those ads for! Note: do keep in mind that you'll need to sign up with Google Adsense first things first, before you go ahead and trigger this module's functionality on your site!   5. Currency Now let's go back to your “go international” plan! You're now facing a whole plethora of challenges, ranging from “going multilingual” to... displaying your product's prices in each one of your visitors' currency, right? Well, you know there's always a module in Drupal for pretty much every functionality you need. And currency is no exception! The Currency module is one of those Drupal 8 ecommerce modules that “encourages” you to keep dreaming big! What it does is what its name says:   it displays your prices in multiple currencies, along with relevant currency information, too   it boosts your site with a currency conversion functionality   And it looks like we've reached “the bottom” of our list including all the “can't live without” Drupal 8 ecommerce modules! How does you own  list of “bare essentials” modules look like? Does it include other modules indispensable to your online store, as well?  ... Read more
Adrian Ababei / Jul 21'2017
5 Ways to Build Out a Well-Organized CSS Architecture 
Would we be wrong if we stated that the very “easiness” of writing CSS code is this language's “Achilles' heel”, too? It “lures” you in, it boosts your confidence as a programmer and than... nasty surprise... your web projects gradually turn into unmanageable messes! This is why the need of building out a CSS architecture, that we can organize and structure our CSS codebases by, has rapidly gained importance in developers' community! And where do you add that there are multiple well through-out methods for you to use for neatly and effectively structuring your CSS files! We've hand picked just 5 of them, “la crème de la creme”. But before we go on with our CSS organizing techniques, let's “look our enemy in the eye”! Let us highlight the challenges that we're currently facing while trying to effectively managing our CSS projects:   it uses global namespaces, leading to inevitable collisions and leaking styles   it's purely declarative: zero logic and no well structured workflow which would let all the other developers working on the same project know about the state of the project itself   it operates with inheritance: meaning that everything is interdependent and, therefore, highly “fragile”, prone to getting broken     And the list can go on.  So, now that we've pointed out the obstacles that we need to overcome when it comes to “taming” our load of CSS files into a scalable, easy to maintain CSS architecture (suitable for long-running, large projects, needless to add) let us point out to you the 5 “chaos proofing” methods:   1. OOCSS Which stands for “Object Oriented CSS”. The whole “philosophy” behind this CSS structuring and planning method revolves around the idea of creating pages/views by putting together multiple CSS objects! CSS objects which are independent from one another (see, the CSS's interdependence issue that we've just pointed out in our list of “drawbacks”). And when we say “independence” from a CSS code's standpoint, we can only imply that:   design and structure are separated  container and content are independent of each other, as well    And this whole “separation of concerns” driving principle has 2 major results:   the entire “load” of code gets considerably lighter (and this is a tremendous asset if we take large, code-packed web projects into account)   yet things get trickier the moment one of your Toronto developers tries to apply a change to a certain element's style: not only that the CSS will need to be modified, but classes will have to be added to the markup, as well    2. SMACSS “Scalable and Modular Architecture for CSS”, a style “guide” (rather than a strict framework) developed by Jonathan Snook. Now this approach to organizing your CSS code is more than “tempting”: it promises you a lighter code “cargo” and simplified code support. What more could you ask of a CSS organizer, right? Moreover, this technique operates with 5 sets of rules:   base rules: targeting a site's main default elements such as body, HTML, a:hover, input, button etc. They target your CSS assets, too, and “constrain” you to use attribute selectors and HTML tags mostly (and classes, too, but extremely rarely)   layout rules: which segments a web page into multiple sections including global elements such as header, footer, sidebar, article, defining each one's style too.    modules rules: includes reusable blocks, modular elements that you get to use several times on the same web page. Keep in mind, though, to avoid using tag selectors and id for module classes!   state rules: define the various statuses of those modular elements (e.g. hidden, active, inactive etc.). Moreover, you should know that all these variations get prefixed as following: is-active, is-hidden.   theme rules: define the design styles, how your modules will look like and they're particularly useful in case of larger sites with shared modules having different layouts throughout the websites.   Note: take the SMACSS approach as a guideline rather than as a strict method, or a set of rigid “rules”. As a web developer who'll use this method to build a well-structured, maintainable CSS architecture, you'll still be free to use your own namespaces for your class categories, to display them to your liking and so on. The only “common sense” rule is that of documenting your CSS code, so that all the other developers in your team should easily follow you along. But this “rule” stands irrespective of the CSS structuring approach that you might decide to adopt, right?   3. BEM, An Increasingly Popular Methodology for Building Out a CSS Architecture  … or “Block Element Modifier”, if you prefer, developed at Yandex! Expect it to be more prescriptive than SMACSS (for instance). BEM is more than just a set of basic guidelines: it delivers a strict method for you to structure your CSS classes into independent modules! And speaking of this method, although you'll find multiple variations on it, the basic structure looks like this: .block {} .block__element {} .block--modifier {} .block__element--modifier {}   It's only just “fair” that we presented each one of this structure's components right?    a block: any object on your site (a menu, a person, a login form)   an element: part of a block performing a certain function in the context of that block only: a login button, a menu item...   a modifier: the way you'll represent the variations of a given block (a search input field having a particular button style, a menu “tailored” to adjust itself to a footer or a sitemap etc.)   Key Advantages to Using the BEM Method as a “Backbone” for your CSS Architecture:   it's perfectly scalable, being a perfect fit for both small and large projects   it keeps you from nesting selectors (a well-known drawback when it comes to Sass codebases) thanks to its long, descriptive class names   it enables you to reuse your code: basically it works as a “code container” for you, which turns out to be a major asset especially if you're working on a large project where your team has to move “clusters” of CSS, JS and HTML code from one project to another   it's ideally suited for large, modular web development projects   4. Atomic CSS … or maybe you prefer “Functional CSS” instead? As for this CSS “organizer's” philosophy, so to say, we could formulate it like this: creating one separate, single-purpose class for each and every reusable property, while naming it according to its visual function! The undeniable advantages of such an approach to organizing your CSS code are:   a significantly lighter load of CSS code, since you'll get “empowered” to reuse your declarations an easy way to modify code (it makes applying changes to your modules less complex, for instance)   Yet, this method does come with its own flaws, too. Here are some of the most “painful” ones:   the class naming conventions come along with a high learning curve, too   it makes the style code closely linked to the Atomic CSS framework used for generating the classes   the class names aren't semantically linked to the elements, but rather describe property names    the display settings are in the HTML   as new CSS modules get added to the specifications, everything gets overly complex    Note: Atomic CSS has “succeeded” to split developers' community into 2 major groups: those that keep highlighting this methodology's major flaws and those that, on the contrary, qualify specifically these flaws as benefits instead:   the “semantic nature” of the elements are, in their opinion, already properly described by the element tags and your components' names   the fact that the settings are displayed in the HTML might turn out to be more convenient: this way you won't need to go through your entire maze-like CSS codebase to find out what settings are defined there   5. ITCSS: Build Your Manageable CSS Architecture for Large Projects Harry Roberts' “Inverted Triangle CSS” implies, as the name suggests: visualizing and structuring your project as a triangle. An upside-down one! This triangle-shaped structure would include the following “layers” of CSS code:   Settings Tools Generic Elements Objects Components Trumps   Practically, the IRCSS technique “constrains” you to order your CSS codebase not by the usual human-oriented patterns, but by those metrics defined by the programming language (along with its particularities) itself! Ordered this way, your code will get better “understood” and “exploited by both browsers and by the specific design of the programming language itself. It will no longer get organized by how a person thinks, but rather adapted to the language's own features and to the way browsers perceive it. This way, your ITCSS-based CSS architecture will end up to be:   easily scalable logical manageable  predictable rule-based   ... instead of an “untamed mess”!  Which one of the above presented 5 methods better suits your team's coding style? Your current project's specific needs and requirements? Go for the one that you find more suitable for your own team's specific workflow, coding style and for your web project's particularities and get your own “unmanageable CSS mess” ideally structured, too! ... Read more
Adrian Ababei / Jul 20'2017
5 Image Recognition Tools: Take Full Advantage of The Visual Web
Beware of visual content taking over the web or... even better: embrace the trend and stay on top of it! Maximize its potential to your brand's full advantage! Simply rely on some of the most powerful image recognition tools for “scanning the visual web”, for analyzing how your company's images and logos are being used. And by whom! Remaining deaf to all the possible “threats” lurking out there, in the visual web, and blind to all the opportunities that all those publicly shared images might carry is such a reckless thing to do! “Visually listen” to the user-generated content involving your brand! Deep analyze and collect priceless data from those scanned images and you'll manage to:   grasp a more accurate understanding of how your brand's being currently perceived, of how users interact with it gain an in-depth knowledge of your customers  turn the collected data into a valuable resource for hyper targeted demographic segments  supercharge your marketing strategy with a “visual listening” strategy, too   And now that we've pointed out to you the “whys”, let us reveal to you the “hows”, too! The best 5 image recognition tools that you could use for “visually listening” to both your customers and your competitors:   1. IBM Image Detection An AI vision software whose developers have taken image recognition to a whole new level! A whole new level of machine learning tasks automation! The whole image recognition technology powering the IMB Image Detection, supported by its Power AI toolset, enables it to “interpret” the images' contents: faces, approximate age, “rotten” food, gender, a clothing item's fashion style etc. And there's more! To its “out-of-the-box” image detection and visual content “understanding” power, add the flexibility that it offers you, the brand using it, to actually tailor its “detection tasks” to your own needs.  Take this scenario for instance: "You own a grocery store and you get to use this image recognition software that scans products during the checkout process and instantly signals to you the... spoiled veggies, let's say." Now only that it's “powerful” by default and that it empowers you to adapt its image analysis tasks to your brand's specific needs, but it's developed with easiness of use in mind, as well!  Your developers get to tailor the software's image detection tasks and to deploy the image recognition models right away!   2. GumGum The team of “visionaries” behind this in-image advertising platform has launched a new image detection software that will enable your marketing team to track down, by scanning through the visual web, the most suitable photos for their brand. It might still be the “new kid on the block” when it comes to image recognition tools, yet it sure is a highly promising one.  Now what this visual intelligence software actually does is help your brand “activate imagery”, as these folks like to describe their new “baby's” mission! It's developed to supercharge your advertising campaigns with the most relevant pictures on the web. Just sit back and let it do the job of an entire team for you! It will dig deep into the visual content on the web and pick precisely those images that compliment your brand! And when we say that you can relax, sit back and... sip a cup off coffee, we literally mean that: where do you add that this computer vision platform can collect, assimilate and analyze all the key social media data for you! Speaking of convenience in terms of turning images into powerful insights to fuel your marketing campaigns with, right?   3. LogoGrab Do you know how your logo's performing on the “immense” scene of the visual web? What visual content is “starring” it or how “popular” it is on social media, for instance? Who's using/sharing it and how everyday people and other brands are interacting with it? It's time you closely monitored your logo's “activity”! And LogoGrab is the only one from our list of image recognition tools here that's specialized in “tracking down” brand logos only! In detecting and analyzing all the images on the web containing a certain brand's logo. A “logo” detection technology! Harness its power to track down even just parts of your brand's logo and turn the collected data into powerful insights. You get to:   find out the circumstances when your logo's being misused gain a crystal-clear view of all the images featuring your products that get publicly shared on social media (overall) gain powerful insights deriving from spotting and digging through the entire content across the visual web that contains your logo (or just parts of it)   4. Google Lens, One of The Revolutionary Image Recognition Tools  “A picture is worth a thousand words” will become more than just a “saying”, for it will gain its literal meaning thanks to Google Lens! The giant search engine's launched an AI-driven visual search app, supercharged with powerful visual recognition capabilities, meant to revolutionize the way brands connect with their customers. A visual recognition technology that we here, at our Toronto web design agency, are looking forward to witness growing into a major digital trend. Predictions around it say that:   it will cut down the middle man, since each object/product surrounding your potential customers can easily get identified and presented to them by the app itself (providing them with plenty of relevant information and suggestions, as well)   it will make it even more important for brands to have a psychical presence that customers can easily connect to (take Amazon's retail space as a more than relevant example!)   it will gradually “force” brands to have a distinctive visual identity (thus making it easier for the Google's AI-driven technology to locate and identify your store/restaurant etc.)   Now let's talk facts, shall we? Let's talk easy-to-be-turned-into-reality scenarios where Google Lens' vision-based computing capabilities would simply open up the era of “the real-world search”:   a given user, standing in front of a restaurant, still hesitant whether he should enter or not, can easily take a photo of it and Google Lens will instantly provide him with the restaurant's name, ratings and other relevant info    a given user can take a photo of his router and Google Lens can automatically scan and memorize the “impossible” password written on it and connect that WiFi network in a bit   a Google Lens-powered “camera” could easily scan the products in a grocery store and instantly display their prices, eliminating the need of running them, one by one, over the scan bar   In short: Google Lens's developing team promises us a technology leveraging computer learning for interpreting any given image and, moreover, for delivering users real-time information and recommendations, too.    5. Clarifai Organize and use your visual content to its full potential by leveraging Clarifai's visual recognition APIs! How you get to do that? And how can you, later on, take full advantage of having perfectly structured your image collection?  Here's how:   it makes filtering out unsafe user-generated visual content so convenient    it speeds up and even allows you to customize your image searching and sorting techniques (for instance, you get to sort the results by your logo)   it automatically tags all your pictures by content and thus perfectly organizes your inventory    it offers you the so much more convenient (and here we go back again to the “a picture if worth a...” theory) query with an image option, making searching through your own gallery so much more effective    it instantly fills in your product images catalog with search-able tags (a win-win situation: you can forget all about manually “tagging” an entire image database and your customers get only visual content that's relevant for their queries)   In a few words: Clarifi makes a powerful visual intelligence AI which can easily rival powerful image recognition tools such as the IBM Image Detection or the so very-praised Google Lens! How about you? Have you triggered any of these image recognition technologies' capabilities to your brand's advantage? Or maybe you've tried other image recognition tool(s) instead? Do share! ... Read more
Adrian Ababei / Jul 18'2017
Turn Raw Data Into Alluring Content for Your Company Blog
Tell your stories with... numbers! Craft data-focused content to keep your company blog's readers “hooked”! And no, it's no “utopia”: you can turn raw data into alluring content. It all depends on whether you manage to masterfully “exploit” it, on how you harness it! Speaking of it, here are 4 avenues to “spice” up your data and turn it into blog content that resonates with your readers and captivates:   1. Relate Your Data to Your Target Audience Serving your readers nothing but a big chunk of “raw” data will only get them an instant... “indigestion”! Not even 1% of them will go all the way to the end of your blog post. And why should they? Data is “machine talk”, not human talk! In other words: you'll need to dig deep though your “raw” data and select the “relatable” one only! The one that will your readers will instantly resonate with.  So, before you go on and dig deep into your heavy load of data, how about trying to set up a couple of criteria that you could select and group them by? These can be:   geographical economical social cultural criteria   More often than not, it's the geographical criterion that prevails. And, in this respect, it's precisely those “enviable” data-driven pieces of content that already earned lots of traffic that make the best examples! And how do you get to craft your own geographical data-based piece of content that will act like a magnet for your readers/potential customers? Here are 2 handy approaches for you to adopt: harness your Google Adwords data and craft a blog post that all your potential customers, living in different regions of your country, could easily relate to   use the Google Keyword Planner and target the city of your company's headquarters and, based on the generated data, run a comparison to other cities in your country It's a proven fact: once they'll see their city's, their state's or their country's names listed in your blog post, included in a comparison with other cities, states and countries, your readers will instinctively grow curious about your data-focused content! We're all emotionally connected to a certain location on this globe and whenever we read/hear its name, an inner bell rings! And it's the same thing with all the other aforementioned criteria that sets us apart and define us (the cultural, biological, economical ones and so on).   2. Show Off Your First Party Data You're sitting on a “gold mine”, no doubt about that!  That's right, you have huge first party data resources that you could show off to your readers in the form of enticing pieces of content! They're right there, at your fingertips! You just need to "strategically exploit" it, to turn raw data into alluring content. And no, there's no such thing as “I do not have an impressive user data or unique data-generating sources to go to. I haven't piled up any data that my readers could possibly be fascinated with”. Dig deeper! Any online business owner has at least an active Google Analytics account. See? There's a start! Now keep digging! When it comes to making that “raw” data fascinating, that's:   part knowing precisely what data to hand pick (the one that your readers would resonate with, remember?) part placing it in the right context   That's all! And speaking of sources of first party data, here are 3 unique data generators that our team here, at our web development agency in Toronto, recommends to you:   Google Analytics, Google Adwords, Search Console data: they all contain unique, valuable user data that only you and your team have access to. Tap into these great resources of data, run your selection, add a sparkle of creativity, too, and turn it into the perfect “fuel” for that future viral post on your company blog!    survey data: can't underestimate the power of user surveys! Leverage the collected results by turning them into interesting insights. For example, how about correlating personality-related answers with the type of products that your questioned customers usually shop on your e-commerce store? Wouldn't this personality traits-shopping preferences association make an attention-grabbing type of content for your readers?   sales data: here's another insufficiently exploited “data gold mine”! Turn into interesting content that data revealing to you during which season(s) of the year or at what hours of the day your sales are at their highest. Are there certain events (holiday?) that this “peak” coincides with! Extra tip: use Google Correlate, such a handy tool that will point out to you exactly which keywords are relevant precisely to that sales data that you will have collected!   Take it from there: turn raw data into alluring content!   3. Do Share Your Data Set An avenue that so many ignore! Don't be one of them! Be smarter than that majority of webmasters/online business owners and, once you've crafted that data-driven piece of content that's going to “write history” on the web, remember to add your data set, too. You never know when a big player in your market (and not just in your market, it could by an authority in any other related industry; take a news publication for instance) picks it up and uses it, turning it into a valuable links generator for you!   4. Add the Surprise Factor: A Sure Way to Turn Raw Data Into Alluring Content  Isn't this a hard nut to crack? How could you intrigue and, even so more, “fascinate” your readers with... numbers? With data? You get creative and spice those numbers a bit, that's how! Here's a tried “recipe” that you could follow for crafting intriguing content out of numbers:   you “frame it” in a rightly chosen context, one that will shade a new light on your data, making it stand out   you provide an unexpected perspective (an historical perspective, for instance)   you use comparison: nothing adds more meaning to “raw” data, nothing makes it more “intriguing” than getting it compared to other periods of time, to other locations where your products might have been used or other age groups of customers that might have bought one of your items etc.   Contextualize it and compare it! This is the (not so) secret “recipe” to follow whenever you want to turn raw data into alluring content! Wrapping up:   harness precisely that data that relates to your target readers/customers (so, don't start digging through your whole data resource without this selection criterion in mind!)   put your numbers in a context    come up with comparisons that will add intriguing perspectives to your provided data    Now go ahead and turn raw data into alluring content for your company blog, removing “writer's block” from your vocabulary for good! ... Read more
Adrian Ababei / Jul 14'2017
Designing Your First Conversational Interface? 5 UX Principles to Apply!
“Riding the waves or caught in the tide?” Do you simply comply with whatever is hot in digital product graphic design at the moment or do you dare to go beyond just following the trend of designing a conversational interface and turn it into an experience instead? A natural, authentic, “human-like” one! If you've chosen the first option, then you can remorselessly go back to doing what you were doing and spare the time you would invest in reading this post. But if you're determined to go beyond the very basics of conversational UI design and to strive and “humanize” the experiences that you deliver, then you'll find the “UX toolkit” that we've “wrapped up” for you here more than helpful! Basically, it contains all the core principles for designing a conversational interface that's closest to a human-like conversational experience.  Let's dig in:   First Things First: What Is a Conversational Interface? When you say “conversational interface” you instantly say Siri or virtual assistant M! And it's precisely these 2 examples that “authorize” us to divide them into:   chatbots (besides Siri, think of H&M's chatbot for instance!) virtual assistants (Amazon's, Alexa's virtual assistant, etc.)   What these conversational UIs do is practically mimicking human chatting!  And it's the verb itself, “to chat”, that “warns” you that there's a shift of focus (as compared to the graphical user interface) from visuals to words themselves. With this in mind, you'll implicitly need to revise your set of core UX design rules that you would have normally designed your GUI interface by!   But What Turned Conversational UI Into Such a Phenomenon? That conversational interfaces have become ubiquitous is no news for anyone.  But what are the factors that keep influencing its ascension in the digital world? Let us point out the 2 most impactful ones:   natural language processing technologies   artificial intelligence: is rapidly improving its capabilities to accurately “grasp” intentions interpreting the user's uttered words   last but definitely not least: our human nature itself; chatting is carved in our very DNA as social beings   In short:   recognizing the user's uttered input is no longer a challenge for nowadays technologies   as users (and “chatting human beings) we're instinctively drawn to this “new” type of interaction with technology   The Challenge You're Facing From a Conversational UX Standpoint For there is, indeed, a challenge that you need to respond to once you go ahead and start designing your (first) conversational interface: adding the authentic human touch to your bot! That's right! Since accurately interpreting the user's spoken input is no longer a challenge, “humanizing” the conversational experience that you deliver via your interface is a serious challenge!  How do you craft conversations that sound natural and authentic, that are both helpful and... delightful? This is the question! And now let's dig deeper into our list of UX design principles to apply for successfully responding precisely to the aforementioned challenge: creating human-like conversations!   1. Create a Consistent Persona  How could you possibly “humanize” your conversations with no information (or with just vague info) precisely on those “humans” that your bot will be chatting with? This being said: defining a persona is the very first step to take, way before you even start to design a “draft” of your future conversational UI! Draw your target user's “portrait” by determining and then writing down its personality traits. It's these traits that will let your team know how to approach him/her. What conversational scenarios to put together. What vocabulary to start setting up and so on. And did we mention “consistent persona”! By “consistent” we meant that once you have your user's backstory and personality traits established, your conversational UI needs to remain consistent in the tone, words, and phrases that it will use.  You don't want a banking app to start with a formal tone and then “spice it up” with one or two slang words, now do you?   2. Create and Maintain a Natural Conversation Flow Conversations between your users and your chatbot/virtual assistant should simply... flow fluidly, naturally! This means that at no time should your user feel like he/she's putting some sort of effort to overcome obstacles for establishing good communication with your system. And here are some UX “hints” for keeping that conversation flowing: 2.1. Promptly Guide Your Users With Hints … don't wait till they get too confused and clueless about how they're supposed to start the conversation with your chatbot or about how precisely this one can help them! How? By simply providing them guiding hints!  For instance, your chatbot/voice assistant can initiate the conversation itself via a short introduction and a clear call to action button!  2.2. Set Up Your System's Purpose What should your voice assistant/chatbot do? What user problem should it solve, promptly and effectively (with at least input/effort from your users as possible)? Make sure you define one clear purpose that your chatbot should serve! Make it:   unique (no need to go for a multi-purpose, too-hard-to-handle type of system) make it clear (for your team) 2.3. Strategically “Sprinkle” Some Well-Timed Earcons And we feel like stressing out the word “strategically”! For it's only the proper, well-thought usage of earcons (well-timed earcons) that will help you liven up your conversations! When triggered precisely at key stages of the conversation these audio sound effects (applause, musical feedback, beeps) will come to break an otherwise monotonous tone of the conversation. To infuse some personality! It's also a sign for users (take Siri's “Ding!Ding” earcon) that it's their turn to ask questions, that the app is then “listening” to them.  2.4. Keep Away from Open-Ended Questions! “And from the rhetorical ones, too!” Once you've given your users the chance to choose from a multitude of possible answers to the questions asked by your chatbot... you'll “lose” them! And it's the same case with rhetorical questions, too, since users tend to respond to them anyway and confuse your system. In other words: stick to close-ended questions, giving your users no possibility to confuse your system with a “surprise” answer, one that you haven't pre-set in its conversational scenarios!   3. Keep The Conversation Natural and Authentic Modeling the conversation to an authentic, real-life human one should be your main objective once you start designing your conversational interface! And here are some universal principles of UX design to follow for achieving this level of “authenticity”: 3.1. Humanize It Go beyond the “robot-like” chatbot and aim for a human-like one! And you'll only get to this level of “humanization” if you properly leverage those persona traits and back-story that you will have established! Don't be afraid to throw in a slang word or two (if your target audience's profile and your own app's nature permit), to go informal and to use that specific tone and vocabulary that your target users would use in their day-to-day life. Familiarity is key here! If you manage to make your chatbot talk like a member of that specific community, then you will have won them over, you will have convinced your users to go on and keep engaging in conversation with your system! 3.2. Keep It Concise and To the Point Since mimicking natural, real-life chatting sure means sticking to short phrases. For that's how we communicate, in brief, succinct phrases, and your system should stick to this pattern of the conversational speech. And speaking of concision in real-life conversations, here are 2 “paths” that your conversational UI should stick to:   avoid asking multiple questions at once request information from your users one by one   Note: It's true though that utterly concise and straightforward “yes” and “no” answers tend to make a conversation sound a bit mechanical. This is why our Toronto web development team's advice to you is to masterfully alternate phrases/answers of different lengths and to rely on turn-taking, too. This way, even if the answers are just the simple “yes” or “no” type, the conversation becomes far more engaging, less robot-like.   4. Let Your Users Be in Control  Make them feel that they're in control at all time! During the entire conversational experience! Now here are some user experience design tips and tricks to apply for placing total control into your users' hands: 4.1. Enable Them to Start All Over Again It's crucial that you provide this possibility! Your users should be able to reset the conversations that they'll engage it. At any time! 4.2. Provide Helpful Guidance and Assistance  Whenever your customer/user feels lost and confused make sure to prompt in some help messages and to suggest him several options to choose from! 4.3. Provide "Undo" and "Cancel" Functionalities And this is a key UX principle to apply, both in case of a graphical user interface and of a conversational one!  Allow them to change their minds and don't turn wrongly inputted data into an “irreversible mistake”! Remember to integrate those two crucial functionalities into your conversational interface and thus enhance your customers' experience! 4.4. ASK Them to Confirm, Don't Just State And following this “rule” is critically important when you're dealing with sensitive user inputs (credit card details for instance). Each time you need them to confirm an option that they will have selected or an action that they will have asked the system to carry out for them, it's always best to “ask” for their confirmation. To “double-check” with them, instead of just stating the action that's being performed on their behalf.  Needless to add than by asking them to confirm you're making them feel in control of the app!   5. Boost Their Confidence  Reinforcing users' perceived self-efficacy goes hand in hand with restoring their confidence. And with smoothing their experience with your chatbot or voice assistance, too, of course! Let them know that your system has understood their questions and requests! That your chatbot has validated and confirmed the data provided. So, “sprinkling” some “Got it”, “OK” and “Sure” acknowledgers throughout the conversation will just keep your users going, keep them listening to your bot and willing to chat with your system. Note: for a more natural conversational experience randomize your acknowledgers! It will make the conversation sound less monotonous and more fluid! And our list of 5 universal principles for user experience design to apply when you design your conversational interface ends here! Have we missed any key “rule(s)” to be followed for “humanizing” chatbots/voice assistants? ... Read more
Adrian Ababei / Jul 12'2017
5 Contributed Modules for Building Your Drupal 8 Multilingual Site 
Do you want to stick to the basics or go beyond it? In other words: would you offer your visitors the same multi-language experience that they would get on any other Drupal 8 multilingual site or are you ready to take multilingualism to the next level and enhance it with an extra contributed module or two, as well? Especially when you have an "overwhelming" collection of multilingual contributed modules to choose from for picking precisely the one(s) that cover your site's specific needs! Since going multilingual doesn't have to mean using the same "recipe of modules", irrespective of the Drupal 8 site's particularities, right? This being said, let us reveal to you the list of 5 Drupal 8 contributed modules, each one loaded with multilingual functionality, that you might want to supercharge your  website with:   First: A Few Words About the Out-of-the-Box Multilingual Functionality in Drupal 8 You can easily consider yourself a spoiled one: Drupal 8's been built with multilingualism in mind! Therefore, if you would have had to mix and match an entire "array" of contributed modules for building a basic multilingual website in Drupal 7, it only takes 4 CORE modules to build a perfectly functional one in Drupal 8! You practically get multilingual functionality "by default"! A huge jump-start! And now speaking of this multilingual pre-built “kit”, made of 4 key modules, let us enlist them for you:   Language Interface Translation Content Translation  Configuration Translation    Note: Upon building your multilingual Drupal 8 site we advise you to go for another one of the languages available on your website instead of English; this will automatically trigger the installation of some key multilingual-friendly modules. And now, let us proceed with our list of contributed modules that will help you tailor Drupal 8's multilingualism to your own site's specific needs:   1. Language Cookie  A more than useful tool whenever you need to identify your visitors' mother languages.  And how does it “detect” it for you? Easily: basically it adds a new “cookie” field to the Language Negotiation settings. And therefore, the language on your site will instantly be set in accordance with this extra cookie.  As simple and yet as effective as that! You can just “relax” knowing that the languages on your Drupal 8 multilingual site will automatically get “paired” precisely with their native speakers.   2. Localization Client  Need to fix or create and add translations to certain pages on your website? Don't worry, you definitely don't need to sift through all your pages and take them one by one for finding precisely those with missing or “flawed” translated content. You simply install and enable this module here and harness the power of its on-page translator editor. Just navigate around your pages precisely to your target one(s)... edit/add your translation... save it and... that's it!   3. IP Language Negotiation, A Key Module for Your Drupal 8 Multilingual Site “Kindred” with the Language Cookie module, we could say, since this one, too, helps you detect your visitors' mother languages. It's just the means used for this "language detection" process that differs: the IP Language Negotiation module “teams up” with the “country language detection” module, ip2country,  for that. By detecting the countries that your visitors access your multilingual Drupal 8 site from it instantly displays the content on your website in their own languages.   4. Language Fallback  Call it a “safety net” or a “plan B” module if you like! Take this use case scenario, for instance: “You're using multiple regional variants of a language of your website: Welsh English and Scottish English, let's say. Well, first of all, you define your site's default language, English, then define its 2 “variations”: Scottish and Welsh. Whenever a string needs to get translated, the module will first look for the Scottish translation, then for the Welsh variant.” Take it as an “insurance policy” that if something unexpected happens, meaning that a certain translated string can't get delivered to your visitors in your custom language, they will always get the requested content in another familiar language/dialect (the “fallback language").   5. Language Selection Page  Instead of striving to “detect” your site visitors' mother languages, how about empowering them to choose the languages they'd like to see your site's content translated to? And how does this module empower them to do that? By presenting them with a landing page where they get to choose their preferred languages from those available on your Drupal 8 multilingual site. Now how does “placing the power of choice into your users' hands” benefit your website?  It's a helpful strategy to adopt whenever you don't have enough relevant data on your site users, for instance (you don't know what each visitor's mother language is, what countries they access your website from, etc.) Or it could simply be the fact that you don't want to influence their choices. “Empowering the end-user” is Drupal's philosophy after all. And even so more Drupal 8's, right?   This is our selection of contributed Drupal 8 modules “loaded” with multilingual functionality that our team has carefully put together for you! How does your own “arsenal” of multilingual-friendly modules look like? ... Read more
Adrian Ababei / Jul 12'2017
Create Once Publish Everywhere With CONTENTA, The Latest Drupal Distribution!
The “create once, publish everywhere with close to zero knowledge of Drupal” is nothing but a myth! And you must have surely convinced yourself of that by now!  This is why harnessing the power of decoupled Drupal has been a discouraging “mission impossible” for non-Drupalers. A “privilege” exclusively for those familiar with decoupled back-ends, for those who do know a thing or two (or more) about each of the Drupal modules' particularities. Well, it looks like the Drupal community is innovating for a brighter future! One where you, the non-Drupaler, get to leverage the decoupled Drupal 8's power hassle-free!  And this future (which recently turned into present) is called “Contenta”! What started like an innovative and promising initiative at Drupalcon Baltimore is rapidly developing into a powerful, stable API-first Drupal distribution adapted to the needs of the non-Drupal “gurus”.  How do its initiators plan to do that? By providing the users out-of-the-box Contenta “kits”, with all the needed tools, configuration, and demos that they could possibly need to start “fueling” their cutting-edge apps with content in no time (having Drupal 8 as a backend CMS to rely on)!   What Was The Context That Favored Contenta's Emergence? Two key factors defined this favorable context:   The app development process in a decoupled situation itself: for non-Drupalers it could easily turn into a daunting “ordeal” with all the setups to be made, the tools to be put together, master matching the app's front-end with its Drupal back-end etc.   Drupal 8's outstanding capabilities for building decoupled applications   A solution had to be found so that everyone should be able to benefit from a decoupled Drupal CMS at its full potential, especially since Drupal 8 already provided a truly powerful “toolset” to be leveraged.   What Goals Has The Development Team Set For Contenta? Now that we've outlined the “problem” that this Drupal distribution comes to solve, how about pointing out the “objectives” that its team has set for it, as well?   it should be highly accessible to non-Drupalers thanks to the provided “out-of-the-box” kit of tools (or quick installer) they'll need when building their apps (content models, demo content, modules suggestions, example consumer apps, default setup...)   it should be quick and easy to use (thanks to its “load” of helpful demos and inspiring consumer examples)   it should also turn into a go-to source of needed documentation   it should be full-featured, perfectly equipped for powering decoupled projects, irrespective of the used front-end technology: Angular, Ract, Vue, Ember etc.   How Do You (Quickly) Install It? Since we've already mentioned Contenta's “quick installer” feature, it's time we come up with proofs, right? Here are the simple steps to take for installing your API-first Drupal distribution, so that you can start building your consuming app in no time:   first things first: install Composer    ensure that you have the sqlite-extension installed in your local machine, as well ( sudo apt-get install php-sqlite3 in debian/ubuntu)   then enter the following command for creating your new project: composer create-project contentacms/contenta-jsonapi-project MYPROJECT --stability dev --no-interaction    next, just install Drupal as usual   What Type of Demo Content Model Will You Get, Out-of-The-Box? “A recipe magazine”! That's right, this is the type of pre-built content model and demo content that you'll get to implement and to work with once you've installed your content API.   What Front-End Technology Should You Go For? “Whichever you prefer”, since Contenta “spoils” you with a whole load of inspiring examples of consumer apps built in different technologies. And there's no need for you to get “suspicious” once you notice that all these examples feature the same structure.“In real-life” it's the front-end technology that will be powering them that will determine their look and feel (if it will be Angular, then your app will feature that already iconic material design, if it will be Elm, then...)   Wrapping Up: Hypothetical Contenta Use Case  Now, what a more suitable way to sum up our short presentation on this API-first Drupal 8 distribution here than with a hypothetical use case scenario, right? Let's proceed: “Let's take Matt, our hypothetical non-Drupaler (let's assume that he is a React developer instead). Matt here is in search of a powerful back-end CMS for that impressive app that he's planning to develop. He'll just need to install Contenta, quick and easy, and dig through the out-of-the-box collection of React-powered app examples that Contenta will deliver him, by default.” This way, via a quick installation process and helpful examples of consumer apps to get inspired by, Matt will be able to develop his React and Drupal 8-powered app in no time! Now we're curious to read your own thoughts on this initiative! How do you feel about this project? Which are your projections of its future? Are you currently looking forward to using it in your future decoupled Drupal projects? ... Read more
Adrian Ababei / Jul 07'2017
3 Ways to Translate Language Strings in Drupal 
Does anyone of the following scenarios sound familiar to you?   you need to translate a few language strings on your Drupal site due to a certain dialect that the great majority of your site visitors use       you simply prefer to see certain messages or labels on your website written slightly differently (let's assume that you prefer the “Add new content” textline to the “Add Content now” default one)   you need to go multilingual (on your Drupal site at least) and you have a whole heavy load of language strings to be translated into those target languages   What do you do? Which are your options? Which one guarantees you a streamlined translation process? And most importantly: which one makes the perfect fit for your own site-specific scenario? Let us try and answer all your questions by presenting you 3 approaches to language string translation in Drupal:   1. Use the String Override Module Now before we go on with our short step-by-step guide on how to install and to turn this module into your handy translation tool, we feel like pointing out its “limitation”. It makes a more than handy tool mostly for all those small changes that you need to apply to just a few strings on your Drupal site. Therefore, using it for a full-site translation “marathon” is probably not the most inspired choice. This being said, let's break down further with our step-by-step installation and configuration guide: Step 1: Download and Install Your Module You'll find it here: https://goo.gl/aCJGyy you've successfully downloaded it, go to “Modules” > “Add New” > use your “Browse” and search for the file you need to upload > “Install” Next just briefly “scan” the enabled boxes corresponding to your two String Overrides fields there and, if everything looks OK to you, hit the “Save configuration” button!   Step 2: Trigger Your Module from the Configuration Menu Now navigate to “Configuration” (you'll find it “neighboring” the “People” and the “Modules” tabs on top of the page) and, unfolding its menu, go to “Translate Interface”. It's the last option listed there (after the “Regional and Language” one). Next just give it a click! Step 3: Now Go Ahead and Replace Your Language String Just enter the exact string that you want to replace/translate on the left side of your screen (in the “Original” section) and its replacement string/its translated version on the right side (in the “Replacement” section). Easy peasy! And where do you add that the module even enables you to streamline things even more: you even get to replace multiple language strings simultaneously just by adding some extra rows.  Wrap Up: as already mentioned, the String Overrides module makes a great choice for “small-scale” string translations only. It enables you to track down the strings you need to change and to replace them with the new ones in no time. Yet, when it comes to translating an entire Drupal site, manually overriding every single language string using this module is hardly an effective solution. Such a “challenge” to respond to calls for a more powerful module such as the Locale module. 2. Use the String Translation Module for Handling User-Defined Strings Also known as the i18n_string module (falling under the Internationalization project's “umbrella). Now if the just mentioned Locale module (along with the .po files) enables you to translate hard-coded language strings, the String Translation module empowers you to translate the user-defined ones, too. And here we're referring to taxonomy terms, menu items, field names, which are a bit “trickier” when it comes to translating them, since you can't just rely on Drupal 7 core for that. Also, another important specification that we need to make is that this is an API module! Therefore, it doesn't work as a standalone solution, but rather “supports” other modules from the Internationalization group. And when it comes to the UI that you get to use to translate language strings in Drupal using this particular module, you should know that it's incorporated in the localization system: go to Administer > Site building > Translate interface for translating your user-defined language strings. "And how does it work exactly?" you might legitimately ask yourself. Here's how: it uses the Locale's module standard translation page (the above mentioned UI) for enabling you to translate the user-defined strings that it will have collected    but not before you haven't defined your site's default language (and it's not always English)   and it does this by grouping strings into “text groups” (you can find these groups of user-defined strings named “Profile”, "Menus” or “Taxonomy”, at admin/build/translate/search, under the "Limit search to:")   Notes:   do keep in mind that whenever you're translating your user-defined strings, the source strings that will get stored will be displayed in your default language    in case the default language on your website is not English, you still get to import/export English translations relying on your localization UI   a sort of “warning”: whenever you change the default language on your website you'll need to remember to redefine all your source language strings, too (the user-defined ones, of course)   in short: get yourself informed of all the implications deriving from changing your default language, since this goes hand it hand with a never-ending string editing “ordeal”, too   all the other translations on your website will be kept “unharmed”   yet, as a rule of thumb, you should be changing (if it's necessary) the default language on your site at the very beginning of its development process; later on, once you have your site up and running, changing it back and forth and in several different languages will only lead to... “language string chaos”   3. Use the Strings Overrides in Settings.php to Translate Language Strings in Drupal You'll get to carry out the entire process in the settings.php file and where do you add that you don't even need to download, install and configure any extra module: it all happens in Drupal core. Yet, you should be fully aware that it's not a method for the inexperienced either. We're not going to hide it from you: it does require a certain level of coding “expertise”. Moreover, the same specification that we've made for the String Override module applies to this method, too: it's a tool to be used for small-scale string translations. Not the best choice when you're faced with much larger-scale translations! And now, shall we proceed with our explanations on “how it's done”? 1. Edit your settings.php file and go right up to line 430 (or somewhere 'around” it) 2. Next, uncomment this code (so that you can later on enter your translated strings)   434 # $conf['locale_custom_strings_en'][''] = array( 435 #   'forum'      => 'Discussion board', 436 #   '@count min' => '@count minutes', 437 # );   Note: in case the default language on your Drupal site is not English, remember to make the due modifications in the array key locale locale_custom_string_en so that it should reflect the actual language on your website! Now let's assume that you're being “dared” to translate a whole lot of language strings on your website.Then you sure need to streamline things a bit, right? For this you can rely on the i18n_string module, the API String Translation Module that we've just put into the spotlight.  Just edit your settings.php file by entering this new line of code: $conf['i18n_string_translate_langcode_en'] = TRUE; Or, if you're not that much into “tweaking” code in settings.php you can always rely on the variable_admin module (part of the Variable module). Here's how you get to leverage its functionality to translate language strings in Drupal:   first you navigate to admin/config/system/variable   next you click on the "Multilingual settings" tab   then on the "Enable translation for language" tab   set your default language   hit the “Save” button   And voila! Now you get to translate your language strings! How about you? Have you, by any chance, discovered other more effective ways to translate language strings in Drupal?     ... Read more
Adrian Ababei / Jul 07'2017
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