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.

Node.js App Development: 11 Coding Habits for Making The Most of This Framework
Last' year's “Should I learn Nodejs?” dilemma has turned into an “I'll strive to become a better Nodejs developer!” resolution this year. Nodejs is already developers' “adored” framework and building "the next big thing" in terms of Nodejs-backed apps is the new challenge in 2018! And this definitely calls for a shiny and new set of coding habits to integrate into your Nodejs app development workflow. New code practices to stick to when writing Nodejs apps, new coding standards that you should follow and techniques to master for using this framework to its full potential. To your future apps' advantage, of course. Speaking of which, here's a list of 12 Nodejs development pieces of advice for you to consider if one of your resolutions for 2018 has been: “To become a Nodejs padawan!”   1. Start to Learn The Basics of Import and Import() Think ahead of ES modules' current situation. Which is the following: ES modules have been supported since Node.8.5 it's true, though, that they're still wearing their “experimental-modules” flag yet they're already being used, intensively, with the @std/esm library (and transpilers) Do consider learning the basics and be ready to level up from there. Since it's pretty obvious that 2018 has lots in store for the ES modules. 2. Integrate Asynchronous Programming Into Your Nodejs App Development Workflow There are 2 ways of carrying out your input/output operations and setting up your Nodejs development environment: synchronously, having your resources blocked for some time  asynchronously (Node.js' innovative application of asynchronous programming): where tasks can be carried out simultaneously since the resources don't get blocked  Now just consider a scenario of multiple operations to be performed, where resources keep getting blocked... This would have a dramatic impact on your Nodejs app's performance! In other words: embrace the asynchronous code! Use async-await! Turn it into your own “trump card” for handling async events and embrace the simplified version of the once so overwhelming code bases. 3. Modularize Your Code: One of The Very Best Coding Habits to Develop  Keep it small! Get into the habit of writing “bite-sized” chunks of code replacing the tediously long blocks of code that you might be used to right now. Here's why: it will be fairly easier for you to embrace the asynchronous coding philosophy this way small-sized pieces of code will be easier to handle, adjust and closely monitor both for you and for anyone in your development team  handling a cluster of bite-sized chunks of code gets particularly convenient when it's a complex Nodejs app development project that you're dealing with 4. Master Containerization & Adopt the Microservice Architecture Since the Nodejs application architecture is a microservices-based one.  Therefore, one of the best code practices to incorporate into your workflow is using containers. Containerize your Nodejs apps and streamline your services deployment by tapping into these 2 techs this year:   Docker:   the software technology to generate your containers  … which are nothing less than all-in-one pieces of software encapsulating all the resources that they need to run: system tools, code, runtime, system libraries  containers that will increase your deployments' security level and that you even get to use for simulating production environments locally    Kubernetes:    an open-source system that you get to use for automating everything Docker containers-related: scaling, deployment, containerized apps management...   Friendly advice: before you jump straight to containerizing your services, take some time to upgrade your existing code; for this, apply the principles included in the 12-factor app methodology.   5. Nodejs Application Performance Monitoring: Make It an Ongoing Process Especially if it's a complex microservice ecosystem that you need to keep a close eye on! Monitor your system, using the ever-improving toolbox at your disposal, detect and fix errors before they even get to catch your app users' attention.  Close and on-going monitoring sure is one of the very best Nodejs app development habits that you could develop this year!   6. Mind The Bugs in the Code, That You Might Leave Behind Be alert and avoid those scenarios where you leave trouble-making bugs behind, as you “knit” your web of code.  And being alert means:   tracking your error events detecting errors in their early infancy   Note: luckily for you, incorporating this practice into your Nodejs app development process is somewhat easier when using this framework.    7. Get Acquainted With HTTP/2 Again: always be one step ahead of the game! And since we can't but anticipate that HTTP/2 will be going from experimental to stable this year in Nodejs, make sure it won't “take you by surprise”. HTTP/2 has multiplexing and server push, with a signification impact on the native module loading in browsers. So, there's no doubt about it: it's going to lose the “experimental” flag, that it has been wearing since Nodejs 8.8, and become the new standard with Nodejs this year.   8. Use Semantic Versioning: Another Nodejs App Development Habit to Form  And this practice is what sets apart a Nodejs padawan from a Node.js... enthusiast. If you've decided to learn Nodejs this year, make sure you delve deep(er) into its set of best practices (don't just scratch the surface): use semantic versioning for letting the users know that you've updated the app. To inform them about the actions that they should perform in order to update the app to its latest version. In short: by updating your packages without SemVer you risk breaking up your precious app!   9. Turn Securing Your Nodejs Application Into Your Top Priority Make sure your Nodejs app is 100% secure above all! Apps' security has been both the vulnerable aspect and the ultimate objective for app developers in 2017. And 2018 is no different from this standpoint! Run tests over tests to “challenge” your Nodejs app's security by tapping into all the apps that this framework puts at your disposal: Snyk Data Validation Node Security Platform Brute Force Protection Session Management If there's a vulnerability there, somewhere, within your app, make sure you track it down before... it gets exploited!   10. Adhere to The JavaScript Standard Style for Writing Your Code Following a set of coding standards will just guarantee you that no big issues will show up later on. In this respect, the JavaScript standard style makes the best choice for your Nodejs app development workflow. Here's why: you get to “hunt down” style issues and coding errors early in the development process it sets the single space after keywords “rule” it will automate your code's formatting by running standard-fix  it sets the “function name followed by space” standard and the “single quotes for strings” one 11. Put All Your “Require” Statements at the Top  “Pin” this app development advice right on top of your list of best practices! It will make all the difference! By grouping all your “require” statements right at the top you'll practically: steer clear of performance issues, since “Require” is synchronous and it will simply block the executions (thus avoiding ugly scenarios) Major tip: use Node's built-in module loading system; it comes with a "require" function which will automatically load the modules existing in separate files. END of the list! These are the top code practices & new “healthy” habits to get into this year for making the most of this framework. And thus turn your Nodejs app development projects into the next famous apps built with Nodejs! ... Read more
RADU SIMILEANU / Feb 15'2018
Drupal SEO Best Practices for 2018: 8 Easy Steps to Take to Boost Your Google Ranking- Part 2
I am a woman of my word and so, as promised to you in yesterday's post, I'm back now with a handful of Drupal SEO best practices to follow this year. Best practices, valuable tips & tricks and key Drupal SEO modules waiting for you to unlock their optimization power and “inject” it into your website... All which, once put together, will give you a significant boost in (Google) ranking. So, shall we?   5. Build Your Keyword List, One of the Drupal SEO Best Practices to Stick to So, you've given your links a “deep clean” (as seen in Part 1), turned on your Google Analytics “tracking” power and your Drupal SEO Checklist's engines, too. What next?  Putting together your targeted keyword list! And this is one of those Drupal SEO best practices that can either “turbocharge” or turn your entire site optimization strategy into worthless effort. That if you underestimate its “superpower”. And here are the tools to rely on when you go “keyword hunting”:   Google Keyword Planner:    it shows the no. of searches for each potential keyword that you could rank for so you'll know whether it's worth adding it to your list or not, depending on the traffic that it can generate   Google Trends:   it gives you an insight into how a specific keyword has “performed” over the years    Moz:   a whole SEO toolkit put at your disposal, including tools for keyword research, link building, site auditing, reporting, you name it...   WordTracker:    it puts a whole “ecosystem” of keyword-identifying tools at your disposal   6. From Lifeless Keywords to "Living", Keyword-Optimized Content Now it's time to sprinkle your keywords across your website. And not just anyhow, but... strategically! Your “battle plan” should include the following content optimization steps:   create (if there isn't one already) one page for each target keyword  consider removing certain keywords from your list before designing new keyword-optimized pages; some keywords may just not be suitable for your particular business write custom page descriptions, page-focused titles, add page-relevant keywords … and make sure to optimize the content on each one of these targeted pages, pulling off a proper keyword density    7. Add 2 More Essential Modules to your Drupal SEO Toolbox 2 Drupal 8 SEO modules, to be more specific: the RDF UI module and the Linkit module (available in Drupal 7, as well).   RDF (Resource Description Framework) UI:   it's built, from the ground up, with the idea of empowering you to (seamlessly) integrate Schema.org with your Drupal site (whether during or after the development process) … another one of those Drupal SEO best practices with a clear impact on your Google ranking with this on-page markup “on”, it will be fairly easier for search engines to “understand” what each page on your site is about … and thus deliver richer search results   Linkit:   it “spoils” you (or I'd better say your content team), with a convenient UI for easily setting up links right in the WYSIWYG, using the autocomplete field it sees that they're properly formatted, that they use the right path and that they're up to date, as well   8. "Fast" Is Just Another Word for "Optimized" As fast as your budget allows! Fast-loading pages will:   have a huge impact on the overall user experience “please” the search engines and signal them that your site's optimized for speed and thus for enhancing UX and implicitly give you the boost in rankings (the reason why you've put together this whole Drupal SEO strategy in the first place, right?)   From the dozens of techniques, tools & modules at your disposal, that you can leverage for optimizing your website for high speed, I outline just one: the Google AMP module. Integrating it with your Drupal site you'll be killing two birds with one stone:   you'll give your site a massive performance boost you'll make it mobile-responsive    A Note of Caution as a Conclusion Focusing on your links and forgetting all about the right keyword density across your site's content. Or injecting high speed into your website and forgetting to setup Google Analytics for your website.  Or undermining the meta tags' critical role and focusing exclusively on building your target keyword list, won't give you that boost in ranking that you're aiming at. Make them ALL work together! Take these 8 Drupal SEO best practices as a clock mechanism: in vain do 7 parts get all your attention. If you neglect just the 8th component, the whole mechanism/SEO strategy won't work /won't give your site that boost in ranking that you're expecting. ... Read more
Adriana Cacoveanu / Feb 14'2018
Drupal SEO Best Practices for 2018: 8 Easy Steps to Take to Boost Your Google Ranking- Part 1
Aiming high? Do you have big plans for your Drupal site? Maybe even propel it right to the front page of Google? Well, you're already one big step closer to your goal: you've chosen Drupal, a content management system geared at granting you unparalleled functionality and flexibility to optimize its every node, snippet of code and view. But which are the essential Drupal SEO best practices to adopt in order to harness this SEO machine's full potential? Which are the right Drupal modules for SEO, the updated tips & tricks: the SEO essentials of 2018 for optimizing your Drupal website? For Drupal (and even so more Drupal 8) might be "spoiling" you, the marketer, with an ecosystem of SEO-focused tools and modules to “fuel” your optimization strategy with. Yet, you can't actually rock Drupal SEO if you don't know exactly: which of them are the truly "can't live without" ones how to put them all together and (most of all) make them all work together... to your site's advantage In short: what precisely do you need to set up and tweak on your Drupal site to give it a mega boost in rankings? And this is why we've put together this step-by-step guide on how to use Drupal's out-of-the-box potential for SEO to the fullest.  Here's your list of 8 tips, tricks, Drupal SEO best practices for 2018: 1. Start By Giving Your URLs a "Deep Clean" Enabling clean URLs on your website should be on top of your Drupal SEO best practices list! Why? first of all, because all Drupal URLs get unique IDs instead of meaningful names secondly, because readable, clean URLs wearing the pages' titles, enhance both the search engines' crawling and the overall user experience And although in Drupal 8 you get clean URLs by default, there still are 2 particular scenarios that call for special Drupal SEO modules: when you move a piece of content to another section of your site and change its URL (Drupal won't automatically remove the old path and you run the risk to end up with duplicate content on your website) when you're facing the cumbersome SEO chore of manually naming each and every URL on your website Introducing the Redirect and Pathauto Drupal modules! Redirect: it creates 301 redirects which... redirect (obviously!) from the old URLs to the new ones it guarantees you that the links on your site preserve their value even when you apply changes to your Drupal content  it pretty much takes the burden of fixing every broken link, manually, off your shoulders Pathauto: it automatically creates SEO-optimized URLs based on the content that you, yourself, define for instance, you can set the URL for your blog posts to always have the following path alias: /blog/[blog title] also (and this is a huge SEO factor) if you have ideally keyword-packed page titles, the Pathauto-generated URLs will automatically contain all those valuable keywords, as well  2. Install The Drupal SEO Checklist Module: One of The Very Best Drupal SEO Modules  And, implicitly, the very first one to install before you go ahead and add any other Drupal tool or module to your SEO essential kit. “Drupal SEO Checklist is the most powerful Drupal module that "does nothing.” Robert Shea, IBM. And this says a lot, yet... not everything. For it's true, the Drupal SEO Checklist module doesn't show you how to optimize your website, yet it delivers you a full list of Drupal SEO best practices to adopt. Or a to-do list of actions you should take, modules you should consider implementing if you prefer. One covering several key sections on your site to focus your SEO efforts on: title tags paths content and more ... 3. One of The Key Drupal SEO Best Practices: Adding Meta Tags to Every Web Page "Letting Google (and other search engines and social media sites) know what the content on your web pages is all about", this is how we could sum up the meta tags' role. They're snippets of text that not only that: let Google know what each one of your web pages is all about but also indicate how you want the content of each page on your site to be described on other websites.   Now, can you imagine the arduous task of manually adding a custom browser and page titles, descriptions and keywords to every single page on your website? No need to, for you can always install the Metatag module, one of the must-have Drupal SEO modules to add to your toolkit! Here's how it works:   it enables you to add all the needed meta tags automatically, to each page on your Drupal site it places both the meta tags and the meta title in the pages' headers, which translates into less code to write for you and faster rendering   And since we've reached the meta tags "chapter" on your Drupal SEO best practices list, let's put another key module into the spotlight: the Alternate Hreflang Module! A particularly vital module if it's a multilingual Drupal website that you're about to optimize:   it adds hreflang tags to every page on your site alternative hreflang tags that search engines can then reference in order to serve the right language/regional URLs in their SERPs   Pretty convenient, don't you think?   4. Set Up Google Analytics for Your Website & Other Must-Have Drupal Modules to Enable "Help them help you!" Ease search engines' "job" of crawling and indexing your website, by making your website... easy to crawl into and to index (obviously!).  And by tapping into all those Drupal SEO tools put at your disposal for better “communicating” with them (the search engines). … for gaining a deep understanding of where your site's standing when it comes to its relationship with search engines and social media sites. Which brings us to 3 Drupal modules/tools that can intermediate (and enhance) your site's communication with the search engines: Google Analytics, XML Sitemap and Cron. Google Analytics:   it automatically adds the more-then-valuable Google Analytics code snippet to your site ... that you can control (deciding how and when it should be used) to your liking it "injects" Google Analytics superpower into your website: priceless insights into your site visitors' behaviour on your site, what keywords they've used to land there, their demographics etc. moreover, the module fixes Google Analytics' known drawback of tracking down ALL visitors, admins here included ... and it does that by showing the code snippet only when "regular" (non-admin) users are visiting the website   XML Sitemap:   it generates an ideally formatted XML sitemap listing the content on your website, that you can submit to the search engines this way, they (search engines) get to crawl in easily and index ALL the pages on your site (all those that you want them to crawl)   Cron:   a system that keeps your Drupal site conveniently updated and "clean" it checks for updates itself, it recreates the XML sitemap if needed, keeping it up to date, it indexes the newly added content...   End of Part 1! The second half of this post on Drupal SEO best practices to adopt in 2018 will tackle aspects such as: building your keyword list and using it to "fuel" your content with a few more essential Drupal SEO modules to add to your toolbox valuable tips and tricks on how to speed up your website (since top speed and search engine optimization go hand in hand) ... and more! Stay tuned! ... Read more
Adriana Cacoveanu / Feb 13'2018
On Reflection: OPTASY’s Journey to Canada Development Leaders
Continuing coverage of our latest recognition on Clutch’s annual report of leading firms in the United Kingdom and Canada, we wanted to dive deeper into what enabled us to achieve this success. While we are proud to showcase our leadership among web, ecommerce, Drupal, Shopify, and Magento developers in Canada, it is important to reflect on the past projects and relationships that drove us to these heights. Having evaluated our team across various development sectors, Clutch has taken the time to conduct interviews with many of our clients, framing an accurate picture of what it’s like to work with us; their conversations cover an array of questions regarding the challenges, solutions, and results of our time working together. Dedicating much of our success to our clients, we wanted to look back, not only to share some of the things they’ve had to say about our work, but to share how we’ve become a Canada development leader as well: “They really know their stuff in Drupal, more so than any other development shop I’ve worked with…their team was essentially available at any time to answer our questions, solve an emergency, or fix a mistake that we made,” referenced the Director of Design & Development for a digital agency. They went on to describe the measurable impact one of our team’s suggestions had on their project’s success: “After he made the switch, the site’s response time decreased by 53%. Immediately, the site started working faster. The dependencies that the site relied on went from over 200 to under 125. Overall, his recommendation made a huge impact on our business to the point that at the end of 2014, we grew by 400%. By the end of 2015, we were doing about 12 million pages with the website he developed.” Additionally, the Technology Coordinator for a school division, remarked on our project management expertise: “From day 1, the communication has been the hallmark and has been phenomenal. There have been no issues whatsoever with project delivery as a whole. They are far quicker than other services we have been involved in.”  Another client, the Technical Product Manager of a sports company, spoke on our dedication to the project and beating expectations: “Considering what we asked of them, and knowing they didn’t receive our mockups and wireframes until 3 weeks out, it was crazy that we managed to launch. They stepped up in terms of commitment.” To learn more about our clients’ experiences and how we’ve distinguished ourselves as a Canada development leader, follow our Clutch profile here.  ... Read more
Adriana Cacoveanu / Feb 08'2018
4 Free Drupal 8 Themes for eCommerce Trending Right Now
Just imagine: all that masterfully coded back-end, all that hard work performed in the “backstage”, all those great features that you've created from scratch... turned into a worthless effort. And this because you haven't invested the same amount of time and effort in selecting your e-commerce site's theme, as well. So the question that arises now is: what are the free Drupal 8 Themes for eCommerce worth checking out? So you can pick your perfectly suitable one, that would: meet, greet and retain your online visitors and spotlight your products. Well, we've read your thoughts and done our research for you! We've dug deep into the “pile” of free Drupal 8 Themes designed specifically for online stores and put together a top 4. And now, without further ado:   1. SShop, A Bootstrap-Based, Responsive Theme Let's get straight to the features that convinced us that yes, this is a theme that deserves its place in the top 4 Drupal 8 responsive themes for e-commerce sites: it “spoils” you with out-of-the-box Drupal Commerce  it's ideally quick & easy to install  it provides you with a homepage slideshow (delivered by the Views Slideshow module, one of the many modules that the SShop theme supports) you get a multi-level responsive header menu out-of-the-box, as well it enables you to add as many fields as needed to your Default Product type  and should I also add that you get Slider content types and a Blog out-of-the-box, too? A whole “plethora” of built-in features offered to you “on a silver plate” for this theme not to get levelled up from just “another one of those free Drupal 8 eCommerce themes available on the web” to... one of those “definitely worth checking out”!   2. eStore, One of the Feature-Packed Free Drupal 8 Themes for eCommerce If it's a fully responsive, Bootstrap Drupal theme, conveniently “overloaded” with e-commerce site features, that you need, than eStore is the one! Now allow me to dig deep into this out-of-the-box “load” and take out some of the key features and cool functionalities that you'll get: a product layouts collection for you to scan through and select from the option to add your own fields to the Default Product type content types included in the configurations an out-of-the-box Blog to integrate with your e-commerce website Slider content types   And the list of features could go on. Do check it out before investing valuable time in looking through a whole load of Drupal 8 Themes based on Bootstrap available on the web!   3. Commerce Bootstrap-Based Theme: Designed to Speed Up Your Theming Process  That's right, this is one of those free Drupal 8 ecommerce themes —  a sub-theme of the Bootstrap theme — geared towards speeding up the whole theming process of your e-commerce store. And how does it do that? It just overrides the Drupal Commerce templates so that they match both Bootstrap and all the other helpers.  So, it's practically your “trump card” theme boosting the theming process by automatically handling all the matching —  Drupal Commerce vs Bootstrap —  for you. Pretty convenient and definitely worth taking it out for a “drive test”, don't you think?   4. Belgrade: Fitted With Drupal Commerce in Mind Another Drupal theme suitable for your (future) Drupal 8 e-commerce site. An out-of-the-box one, designed specifically for Drupal commerce and developed via the previously mentioned Drupal theme here: the Commerce Bootstrap base theme. Built, from the ground-up, to meet any online store's specific functionality needs. Therefore, worth taking it for a spin, don't you agree? END of the list! Can't hide that I'm more than curious how your own top free Drupal 8 ecommerce themes looks like. What other visually-appealing, feature-packed themes does it include?  ... Read more
Silviu Serdaru / Feb 08'2018
Mobile App Development Trends in 2018 That Will Redefine the Digital World
That we're witnessing a major shift these days — from web apps' supremacy to mobile apps' domination — is definitely no news. It's been a while since it grew from a trifle into a (digital) world dominating... reality. And so, anticipating which of last year's trends will be growing into “megatrends” and which of the newly emerging ones will be the mobile app development trends in 2018 with the highest impact on the digital landscape … becomes crucial for anyone in the mobile app industry. Should you continue to bid on virtual reality and cloud technology? Is blockchain nothing but a bubble about to burst this year? What place should wearable apps and IoT have in your mobile app development strategy? We've done our research, approached the experts and the authority figures in the mobile app development industry apps and here's what we've come up with: An 8-point list including precisely those high-impact trends to keep an eye on in 2018: 1. Wearable Devices and IoT Are “Exploding”! And So Is Wearable App Development And I'm sure you, yourself, anticipated this: that IoT devices and wearable apps will go from niche to mainstream. With more and more industries adding up to the list of IoT adopters — education, smart health, automotive — and with Apple cutting off the price constraint, it's only reasonable to expect wearable devices/apps explode in 2018. … to expect to see more apps for wearable devices (and not just watches) and an increasingly powerful impact of IoT on mobile app development. Considering that smartphones are needed for controlling IoT devices...   2. Android Instant Apps, One of the Growing Mobile App Development Trends in 2018 It's a fact: Android Instant Apps will be one of those (not so) new trends in mobile app development to be growing like a beanstalk this year! The reasons behind this anticipated growth have a too powerful impact on the users not to turn from a predicted scenario into a... reality of the digital realm:   they're conveniently easy to use: no installation required and yet they're more on the native app's side and they work like websites they use fewer resources they can be accessed from anywhere (WITHOUT installation)   In other words: the border between the realm of apps and the landscape of websites gets even more... blurrier this year.   3. Accelerated Mobile Pages A huge “hit” ever since its “debut”, in 2016, Google's AMP is definitely on the up and up in 2018, too. And no wonder why this open-source initiative — accelerated mobile pages — still “runs the show” and continues to “seduce” mobile app developers: it's a publishing technology (HTML's stripped-down version) geared at boosting mobile pages' performance … practically it injects both sites (on mobile devices) and web apps with high speed … keeping the bouncing rate to a minimum Now, these are strong enough advantages for this trend to be one of the high-impact mobile app development trends in 2018. 4. Predictive Analytics Gains an Increasingly Powerful Influence on Mobile UI/UX What do you think about joining the “gang” of tech giants in the mobile app industry (Google, IBM, Apple, Facebook) and jump on this trend in 2018? Why bother? Well, because: we'll be witnessing a shift from mobile apps as “mere” utilities to apps as integral components of your workflow this advanced software is the “offspring” of AI and machine learning … with a major impact on your customer journey via your mobile app's UI/UX … since it provides valuable predictions related to your business (by leveraging the available data) for you to capitalize on (and to do what it takes to enhance your app users' experience) 5. On-Demand Apps Will Ride The Tide of Popularity How could they not? After all, they're making people's lives easier by simplifying their day-to-day activities, such as: looking for laundry services ordering food looking for cleaning services looking for rideshare and taxi services And not only that on-demand apps will be in... high-demand this year. They'll be one of those mobile app development trends in 2018 expected to “bloom” with new cool features and functionalities: business bots UI/UX enhancements predictive analysis m-commerce facilities 6. Blockchain: Newer Mobile App Development Trends in 2018 With Huge Potential Blockchain has been intriguing, “seducing” and gaining so much good press, that it can't but continue to grow, as a trend, in 2018, too. And it's no surprise why: it provides companies with a shared, unalterable ledger storing their information (transaction histories or bitcoins) presented in the form of blocks … “unalterable” meaning that the info can't be modified unless all the subsequent blocks get modified; which would automatically lead to the entire network's collision A principle of “openness” that continues to “seduce” legit businesses. Businesses that do seize the huge potential of providing transparent access to the blockchain. 7. Dare to/Continue to Bid on Cloud Integration This Year The future of mobile apps and their development is one where the benefits of cloud technology are being (finally) leveraged to their full potential. And here I'm talking about benefits such as: better storage reduced costs in hosting and equipment improved page loading times streamlined operations increased productivity and collaboration And nonetheless: developing mobile apps over the cloud will enable them (the apps) to run seamlessly across multiple platforms. Now that's superpower, don't you think? A huge “leap” into the future of mobile app development software! 8. AR/VR Will Have an Even Higher Impact on App Development Strategies These 2 technologies are already too well rooted in the long-term future of mobile apps that they can't go anywhere else but... UP. AR and VR continued to be developers' trump cards for creating jaw-dropping mobile app experiences. Even so more this year, with all the compatible hardware expected to invade the market. And it's not just the gaming sector that will benefit from augmented reality graphics and videos presented in VR, but others will fall under its “spell”, as well. Here I can only think of the huge potential that these 2 technologies have in the retail sector. Speaking of which, are you think what I'm thinking? About Amazon Go and all the doors that it has opened for other similar apps to steal the spotlight this year? End of the list!  These are, judging by the stats, forecasts, and expert opinions that we've analyzed, the 8 high-impact mobile app development trends in 2018. Also, judging by all the enhancements in hardware: button-less mobile devices more and more powerful chips … and the emergence of a new level of digital speed — 5G — I can't but be certain that these 8 trends here will get turbocharged in 2018. ... Read more
Adriana Cacoveanu / Feb 05'2018
How to Document & Estimate Your Drupal 8 Content Migration Project
About to get your Drupal 8 content migration project off the ground? Still a bit hesitant? No wonder, since just the perspective of: setting up a thorough schedule, including all the major milestones and endless control points deep analyzing the entire source data “overload” setting up a detailed approach to content migrations actually building the new website but not before you've actually put together its Drupal 8 specific technical architecture (with all the Drupal 8 specific content types, modules, entities...) testing till you... drop then rolling back and testing some more ... can get quite discouraging. So, let's simplify it! The entire Drupal 8 content migration process I mean! Let's break it down into multiple phases. And in this blog post here I'll be pointing out to you, briefly, what goes into the: content audit phase (along with an audit of all the features/functionalities) documentation phase (including the project tasks assignment & checking off specific skills that your teams should have) estimation phase With a focus on security best practices to adopt throughout the process. Shall we dive in? 1. What Does “Migration” Even Mean in this Particular Context? It comes down to moving data from one supposedly outdated website to a new one. And in our particular context here “outdated vs current” translates into “an old version of Drupal vs a newer version of Drupal”. The newer one is Drupal 8. 2. (Re)Considering Your Content: 2 Predictable Decisions You'll Take I'm sure you already predicted this step of critical importance when planning your migration to Drupal 8. A content audit is, without question, a critical step to take, yet it shouldn't be a pointlessly overburdening one. By “pointless” I mean spending too much time creating the perfect migration path for... outdated content. Content that you won't be using anyway once you migrate it to your (or your client's) new Drupal site! And so, these are the 2 actions you'll most likely take after auditing your content: you'll be pinpointing outdated, no longer relevant content on the “old” Drupal site, that you don't need to transfer onto your Drupal 8 site you'll be restructuring the current information architecture and covert your content chunks into a more semantic data format (think outside the conventional HTML contexts and about using content as API on your future site) 3. Which Features Stay, Which Ones Go? Undertake a “brutally honest” audit of your current site's features and functionalities this time: Which ones of them are your site's visitors actually using? Which ones of them are they constantly... ignoring? What brand should new functionalities you should implement on your new Drupal 8 website? And speaking of this last question: you should start seeing your Drupal 8 content migration as a site rebuild, as well. You'll be actually setting up, from the ground up, the proper environment in Drupal 8 with new functionalities added to! That should “welcome” and seamlessly accommodate the transferred content. 4. Assigning Your Drupal 8 Content Migration Project to the Right Team(s) At this stage of the migration planning process — the documentation stage — 3 people, standing for 3 district roles in your team, should get co-opted: a project manager/analyst a marketing manager a developer With a focus on the first 2 of them.You'll see why in a minute. Now here are the skill sets and hands-on experience to look for when selecting these key people to work on your project: the assigned project manager (or/and the analyst) should also be a competent information architect; well familiar with the usability principles that the content to be migrated need to comply with they marketing manager (or senior content editor) should be the one deciding precisely what content gets migrated and the form it should take your assigned teams (and this calls for the Drupal developer's expertise), should be well aware of each system's capabilities — your current sites and your future Drupal 8 site's  capabilities — and thus get a straight answer to the question: “What content is, indeed, transferable and how precisely?” also, it's recommended that your team gain an in-depth understanding of your site's traffic and of its usage by the time this Drupal 8 content migration process starts and also, one of them should have the necessary know-how and configuration management experience to set up &export content types and fields As you can see, the Drupal developer's contribution to this documentation & analysis phase is minimal. And this because his technical expertise will be most needed in the next step of the process (when the data gets actually migrated). It's then that he'll be... “stealing the show”. Nevertheless, as already mentioned, his/her input should be asked for to make sure that content can be transferred to the target system. To ensure feasibility of the entire data migration process from a technical standpoint. 5. From “It Depends...” to a Rough Time Estimate  That “Well... you know... it depends...” answer causes a lot of (legitimate) frustration, doesn't it? But there must be some sort of guidelines to help you give a time estimate, right? Even if a very rough one. And there are: Node/User/Taxonomy migrations 1-5 content types 6-10 content types 11+ content types Initial analysis 16-24 hours 32-40 hours 48-56 hours Content type creation & export 16-40 hours 40-80 hours 8 hours/type Configuration Grouping 16-24 hours 24-40 hours 24-40 hours Content migrations 16-40 hours 32-56 hours 8 hours/type Testing 24-32 hours 40-56 hours 8 hours/type   Additional Migrations Files & media migration 32-56 hours Other entity types 16-40 hour per entity type Migrations from non-Drupal sources 16-40 hour per source type Once all the project management aspects of your migration are clearly defined, the process itself should go smoothly, according to the detailed schedule. Also, as you can easily see, numbers state the obvious: the heavy weight of the entire Drupal 8 content migration process gets lifted right at this planning and documenting stage. Implicitly, the developer will start reusing the same fields (or some pretty similar ones). Which leads to convenient code and configuration overlaps. 6. Make User Data Security Your Top Priority And this should be the case when undertaking any web development project after all. Looking on the bright side of a migration process: it's a one time project! Therefore, at the end, you just disable all the custom modules you will have written precisely for this data transfer and leave no traces, no security breaches behind. Yet, common sense precautions and best practices are definitely required! Especially when it's user data (along with other sensitive data) that you're handling. Here are some critical safety measures to apply: ensure that no user data (XML files, database dumps etc.) gets accidentally sent around via emails (or any other unsecured form) ensure your database and development server infrastructures are upgraded to the latest standards ensure that your git repository isn't (God forbid!) public consider clearing your development database off all the email addresses and user accounts still lingering there As you can see, these are nothing but common sense safety measures. Make sure your entire Drupal 8 content migration process complies with them and take no risks. And this is how you, plan and put together your migration strategy, select and prepare your teams and give a close-to-accurate time estimate! What do you say: what other key steps to take/best practices to apply at this stage of the process should I have mentioned here? ... Read more
Serge Karpyuk / Jan 31'2018
OPTASY Is Twice a Leader on Clutch: Top Web & Top eCommerce Development Agency
  We did it again! OPTASY's got featured on Clutch's latest research on the leading Drupal developers in Canada. And there's more to it! Being included in this research is already a confidence-boosting honor in itself. Yet... we can't hide that we feel like jumping for joy (literally) right now since we've also got recognized as “leaders” in web development. Not just for one, but for 2 industries:   Canada: Top Web Developers (ranked 7th) Top Canada eCommerce Developers (ranked 6th)   This is — with the risk of making it sound a bit like an inflated speech —  the most rewarding recognition of our work as a Drupal 8 agency and Drupal eCommerce agency that we could get! Considering that Clutch's researchers and implicitly its tops, too, are conducted and based not just on the analyzed companies':   expertise in certain industries presence on the market  ability to deliver high-quality results to clients   … but on their past and current clients' feedback (although we're more fond of the word “partners”). That's why we're “overly” honored by this recognition! For this cannot but certify that yes: we did succeed to live up to our partners' expectations. And so all the efforts that we've put in:   attracting only one particular type of people into our team: those who're far from “just” knowledgeable in their fields, but... curious and overly passionate about their work  constantly striving to provide irreproachable customer service always tailoring our approaches — to the web development process itself — to each project's needs and to each partner's particular requirements … have paid off.   And have made our clients turn into our... advocates! Their recognition of our work is a huge push forward for us, both as a Canadian web development and as an e-commerce development agency!  Moreover, seeing our five-star “neighbors” on those 2 Clutch tops has simply overwhelmed us (another big word, yet we cannot help it)... Drupal development teams that we've been looking up to, that inspire us and challenge us to grow. And we're right next to them, among all these leaders, on Clutch!  Now since we don't want to turn this post into a boringly long, slightly narcissistic type of award-winning speech, we feel like ending it now with an honest: “Thank you!”. To all our partnering companies and organizations, who took the time to go on Clutch and to write down a feedback for their overall experience with us. And, of course, to the Clutch team itself for the time and efforts they've invested in this research. ... Read more
Serge Karpyuk / Jan 29'2018
Docker Image vs Container: Closely Related, But Distinct. What's The Difference?
Welcome to... Dockerland, a place of never-ending confusions! The most frustrating one of them all — for every novice planning to explore Docker — being the “Docker Image vs Container” dilemma. “What, aren't they one and the same concept?” But you know that this is a rhetorical question: you just sense that they're 2 distinct concepts... Yet, you can't really identify the differences: How are Docker containers and images different after all? Now let's clear up the Docker Image vs Container confusion once and for all: First Things First: What's a Docker Image? A file (or file-like... thing) that gets built from a Dockerfile, by running a "build" command.  Moreover — and this is particularly important in defining a Docker image and setting it apart from containers — it's an inert, immutable type of file. A template-like file (you could also imagine it as a snapshot of a container). It's only when started, with the docker command, that a docker image starts producing a container. And since images in Docker tend to grow quite large, they're built on a layered structure (multiple players of other images). This way, only a small “load” of data gets sent when loading images over the network. Wrapping Up:   you can take the docker image as an application that you'd like to run a docker image can't be “running” or be “started”; once the “docker run” command is... run (obviously!), the image grows into a docker container, so... mind the inevitable confusion   Which Leads Us to The Question: “What's a Docker Container Then?” The not 100% accurate, yet generally accepted (even if halfheartedly) definition is:  “A container is a running instance of an image” Now, let me detail... Practically, the very act of running a Docker image produces a Docker container. You won't find a more straightforward explanation than this one! And containers are (or they should be) the very reason why “learning Docker” turned into one of your top resolutions for 2018 in the first place. For they're:   lightweight using fewer resources portable easy-to-be-deployed   … ways of running and managing your applications. If you're fond of analogies, here's one that will undoubtedly help you come up with a clear answer to your “Docker container vs image” dilemma: If a Docker image was a class, then a Docker container would be an instance of a class (a runtime object).  Wrapping up now:   once you start an image in Docker (so once you use the “docker run” command) you basically have a running container of this image in question   a container is created by adding a top writable layer to a Docker image and thus by initializing multiple settings (container name, ID, network ports etc.)   and it's due to that very writable layer, storing all the changes applied, that you can have multiple containers running off the same image; each and every one of them preserving its own distinct data state   Docker Image vs Container: Key Difference Revealed The most significant difference clearing up the confusion is the following: There is a top writable layer setting Docker images and Docker containers apart It's that very layer, storing all write operation corresponding to the containers in question, which:   gets deleted along once/if the container, itself, gets deleted, while the underlying image remains intact   enables multiple containers to share the very same underlying image   Now to better explain the key differences founding this dichotomy, let's reduce everything to a simple, clear-enough (hopefully) formula: a docker image + a docker run command = a docker container (meaning a running instance of the docker image) … a container equipped with its own writable layer and which can get listed via a "docker ps" command Is everything any clearer and simpler to you now?   Or Maybe a Metaphor Example Suits You Best? In addition to my “class vs instance of a class” analogy, let me try now explaining this tricky Docker dichotomy by using a metaphor... or two:   Let's say you have a film and a VHS of (which stands for our “image” in Docker). Then, imagine you'd place that VHS into your “virtual” VCR. In this case, the VCR stands for your Docker container. Better?   Or you could see the Docker image as an executable file on a disk (an app's file); once you run your application, it promptly creates an instance running in its memory. Now that very instance is our metaphorical Docker container.   Have I managed to clear up your confusion or just... deepen it instead?   Docker Image vs Dockerfile: How Do You Set Them Apart in “Dockerland”? Now, let me rewind to the stage where we can't even be talking about containers (not just yet). Where not even Docker images are yet built: the Dockerfile stage. You can take a Dockerfile as a... recipe for creating Docker images. And here's how the “cooking of an image” takes place:   a Docker command is run in that Dockerfile and so an image gets built   Clear as daylight: a Dockerfile is a... file that you create which, in return, creates a Docker image when you run a separate build command.   The END! Do be honest now: have I managed to clear up your “Docker Image vs Container” confusion? If so, then “solving the puzzle” around this dichotomy will make a huge jump start on your Docker learning plan for 2018. Happy learning!             ... Read more
Silviu Serdaru / Jan 23'2018