Planet Drupal

Syndicate content
Drupal.org - aggregated feeds in category Planet Drupal
Updated: 19 hours 3 min ago

Aten Design Group: Add to Calendar buttons with AddEvent for Drupal 8

Tue, 10/20/2020 - 23:28
Add to Calendar buttons with AddEvent for Drupal 8 Travis Tomka Tue, 10/20/2020 - 16:28 Drupal

The AddEvent module for Drupal 8 lets you place easy-to-use Add to Calendar buttons on your website that integrate with Apple, Google, Yahoo, Outlook, and Office 365 calendar apps among others. The module also lets your users subscribe to entire calendars managed by AddEvent, adding all of your scheduled events to their calendars and keeping their calendars updated if your event details change.

The module is powered by AddEvent and you’ll need an AddEvent account for it to work properly. Free accounts include one calendar, restricted event-adds, and limited functionality; paid accounts include multiple calendars, higher subscriber limits, and a wide variety of other features. You’ll be able to build Add to Calendar proof-of-concept functionality with the AddEvent free version in just 15-20 minutes — but a professional tier account is necessary for any commercial level use.

First things first: Create an AddEvent account

Head over to AddEvent.com and register for an account. AddEvent is a paid service that offers a variety of features and high volume usage for licensed customers — but they also provide a free Hobby account that will get you started. After creating and verifying your account with the free Hobby plan, navigate to the Account screen by clicking on the user menu in the upper right corner of the screen, then clicking Account. From there, click Domains in the left-hand navigation, then follow instructions to add your domain.

The domain where you will be using an Add to Calendar button needs to be whitelisted with AddEvent.

The Hobby plan only allows the use of one domain — but you’re able (at the time of writing this, anyway) to add a local development environment so that you can test without deploying to a publicly accessible website. When you’re ready to make the switch, you can simply remove your development domain and add in your live domain.

Install the Drupal 8 AddEvent module

Once you’ve registered for the service you’ll need to install the AddEvent module in your Drupal 8 website. You can install a Drupal 8 module in a variety of ways, but the easiest is probably using your terminal, starting from your project’s root directory. First require the module using composer:

composer require drupal/addevent

Then enable the module using drush:

drush en addevent

Now you’re all set to start using the AddEvent module. You can immediately create single-use Add to Calendar buttons using custom blocks, or combine custom blocks with a custom Event node type and the Token module to automatically produce Add to Calendar buttons for all of your events.

Add to Calendar: Static event buttons

Creating a static Add to Calendar button for a single event is super simple. Before we configure a block with our Add to Calendar link, though, we’ll need to fetch our Client ID from AddEvent. To do that, simply navigate to the Account page at AddEvent.com using the menu in the upper right corner of the screen. You should see a Client ID and API Token — just keep this window open or paste the Client ID in a safe place.

You'll need the Client ID to render your Add to Calendar buttons without the AddEvent branding.

Now on your Drupal site navigate to Structure > Block layout (/admin/structure/block) and click on Place block in the region you would like to place your Add to Calendar button. In my case, I’ll demonstrate adding the button to the Content region of a basic page that lives at the URL /my-basic-page.

From the Place a block dialogue that follows, click Place block next to the Add to Calendar item. Fill out the following fields as indicated to get your first example working:

  • Title: Add to Calendar
  • Display title: not checked
  • Button text: Add to Calendar
  • Title: My example event!
  • Description: My example event description!
  • Start: 10/31/2020 8:00 AM (the format is important, the date isn’t)
  • End: 10/31/2020 9:15 AM
  • Client: [Client ID from above]

Under the Customization portion of the form, paste your Client ID in the License field. This will remove the AddEvent branding from your button dialogue.

Finally, in the Visibility section of your block setup, choose Pages and write in the URL of the page you’d like the block on — in my case I’ll use /my-basic-page. Click Save block and navigate to the page you configured your block to appear on.

A basic Add to Calendar button will present options for adding to Google, Yahoo, Apple, Office 365, Outlook calendars and more.

That’s it! Click the button and choose a calendar type to add the event to your calendar — it’s that easy. Next we’ll look at dynamically adding buttons to a custom Event node page.

Add to Calendar: Dynamic event buttons

You can create dynamic event buttons by using the Token module with a custom Event content type. Any node type with a properly configured date field will work. Make sure the Token module is installed before proceeding — use whatever Drupal module installation method works best for you. For this example, we’ll create a super simple Event node type. In my example below, I’ve added two custom fields of the Date type: field_event_date_start and field_event_date_end.

A custom Event node type with date fields for start date and end date, for use with dynamically created Add to Calendar buttons.

Once your Event content type is set up, you just need to add a new Date format that will work well with the AddEvent module. To do that, navigate to Configuration > Date and time formats (/admin/config/regional/date-time) and click the Add format button. You can see below that I’m calling my format AddEvent and using the format string m/d/y g:i A which will translate to something like 10/30/20 4:45 PM — exactly what we need for our Add to Calendar button.

Define a custom AddEvent compatible date format to get your Event content type working with Add to Calendar buttons.

Now we’ll place a new Add to Calendar block just like in the previous section, only we’ll use tokens for the Event title, description, and the start and end dates. When you open the Configure block interface for your new Add to Calendar block, click the Browse available tokens link in the description area of the Event Information section. The tokens you’re looking for will be in the Node group. Notice that the token options for field_event_date_start and field_event_date_end indicate our custom AddEvent format — tokens will be available for all of your custom date formats. Check out my example below.

The Token module lets block configuration be dynamic, allowing your Add to Calendar buttons to pull data from Event pages.

Everything else will be the same as it was in the first example in the section above, with the exception of the Visibility settings. For this block, we’ll restrict visibility by Content Type, ensuring that the block only appears on our custom Event node type pages.

Set block visibility to the Event content type to automatically create an Add to Calendar button on Event pages.

Once you’ve clicked Save block you’re all set. Now your Add to Calendar button will appear on every Event page in the region you specified, and it will inherit all of the event details from the specific event page.

Subscribe to an AddEvent calendar

Paid AddEvent accounts can manage multiple calendars of events on the AddEvent dashboard, and they have access to robust features like RSVP, custom fielded calendar events, subscriber reports, analytics, and more. While the Hobby account can demonstrate how Subscribe to Calendar works, the feature isn’t much use with the free-version restrictions in place.

Setting up a Subscribe to Calendar button is super simple. Before setting up the block on your Drupal site, you’ll need the Unique Key for your AddEvent calendar. From your Dashboard on AddEvent.com, click the menu options icon next to your calendar of choice (Hobby accounts only have one calendar) and click Calendar Page. Now copy the Unique Key for use on the block configuration below

The Unique Key of your calendar used with the Subscribe to Calendar block type subscribes your users to entire AddEvent calendars.

On your Drupal site, navigate to Structure > Block layout (/admin/structure/block) and click Place block in the region of your choice. Choose the Subscribe to Calendar block type, then paste your Unique Key from above in the Data-ID field. You may want to place your Client ID in the License field like in previous configurations, to remove the AddEvent branding from the interface.

You can set up the Visibility settings however you wish, for my example I’ll stick with the /my-basic-page URL like before.

Subscribe to Calendar buttons add all of the events in an AddEvent calendar to your users calendar, and updates them regularly.

You’re all done! Now your users can subscribe to the calendar(s) you maintain on your AddEvent account. As you add and edit events on your AddEvent calendars, your subscribers’ calendars will be automatically updated. Very cool!

NOTE: Different calendar services synchronize at different speeds and some are very slow. Google Calendars, for example, can take up to 24 hours to synchronize changes from calendar subscriptions.

If you have suggestions, comments, or issues related to the AddEvent module, please let me know on the AddEvent module page! And feel free to leave questions or general comments below.

Specbee: All about Progressive Web Apps and Implementing it in Drupal 9

Tue, 10/20/2020 - 13:23
All about Progressive Web Apps and Implementing it in Drupal 9 Shefali Shetty 20 Oct, 2020 Top 10 best practices for designing a perfect UX for your mobile app

The internet was first built with a purpose of better communication for the military and scientists during the 1960s. Soon, the Web transformed into a revolutionary phenomenon around the 1990s and has been unstoppable ever since. Although the purpose for the web kept changing, one thing that remained constant was convenience. 

The need for convenience and effectiveness brought about many innovative ways to access the internet. Native mobile apps and Web apps are two such technologies that have made internet browsing easy and convenient. In this article, we will be talking about Progressive Web Apps and how you can implement it with Drupal using the Drupal Progressive Web App module. But before we dive into all of that, let’s look at the features of native and web apps and how progressive web apps actually fill the gap between the two. 

Features of Native Mobile Apps
  • They are platform-specific apps. Which also means that they need to be rebuilt for every new platform (iOS, Android). 
  • Need to be downloaded.
  • Usually super-fast.
  • Rich in features and functionalities. 
  • Can blend seamlessly into any device and feel like a part of it.
  • Can work offline.
  • They can access device data, device hardware and local file system easily.
  • More expensive to develop, maintain and upgrade.
  • Are pre-approved for security and can be downloaded at App stores. 
  • Hard for search-engines to crawl.
Features of Web Apps
  • Works independent of platform. All you need is a browser to access them. Supports most modern browsers. Does not need to be downloaded.
  • No particular SDK for developing them. Frontend is developed using either HTML, CSS, JavaScript and a LAMP or a MEAN stack for backend.
  • No need to upgrade. Lesser development and maintenance costs.
  • Although it needs authentication, security is an issue because it can be vulnerable for unauthorized access.
  • They don’t work offline and can be slower than native mobile apps.
  • They aren’t listed on App stores so discovering them may be harder.
What are Progressive Web Apps and how do they fill the gap?

So, in short, native web apps are highly capable but lack in terms of its reach. Whereas web apps have a wider reach but lack in capabilities. And that is where Progressive Web Apps come in to bridge the gaps.

Progressive Web Apps is an ideal combination of the benefits of native apps and web apps. Using modern web capabilities, Progressive web apps (PWA) can deliver app-like experiences to users. It combines features offered by most modern browsers with the benefits of mobile experiences. You can build native-app-like, extremely complex and installable apps. With Web Assembly being supported by most browsers now, PWAs can be built in languages of the developer’s choice, thus widely increasing the scope and flexibility of the functionalities it can offer.

Features of Progressive Web Apps
  • They are platform and device independent. Works beautifully on any browser.
  • They load fast and are extremely reliable (even with a low internet speed). Scrolling is very smooth and fluid.
  • Can work offline too.
  • Native app-like push notifications can be enabled.
  • Can access device hardware and data like native apps.
  • Shortcuts can be added on the user’s home screen (instead of downloading them)
  • No need for complex installations. Can share the URLs easily.
  • Responsive across all devices.
  • They are easier and faster to develop. Maintenance is easy as well.

Before talking about the PWA module in Drupal, let’s look at the minimum requirements to build a PWA -

  • Should be run over HTTPS. 
  • Should include a Service Worker – Service worker is a script (javascript) that runs over https on the browser and provides browser access. It provides the native app-like features like offline content delivery, push notifications, etc.
  • Should have a Web App Manifest – which is a JSON file containing metadata with information about the web app like the name, description, author and more. This is also useful for search engine optimization.
The PWA Drupal Module – How to make Progressive Web Apps with Drupal 9 (and 8)

The Drupal PWA module is easy to install comes with the Service Worker (for caching and other offline app-like capabilities) and Manifest.js that you can configure. You will however need to make sure you have SSL installed before you begin with the PWA installing process. If your requirement is extremely specific with tons of customizations, you can develop the PWA by using front end frameworks like Angular or React and customize your own Service worker. 

Installing the PWA Drupal 9 Module

With Drupal 7, installing the Progressive Web App Drupal module was as easy as downloading and enabling the module. You could generate the manifest.js file via a config form and validate it. However, in Drupal 9, we cannot integrate this functionality directly just by enabling the PWA module. The reason being it does not provide you an option to configure the manfest.js file. 

  1. Install the module by downloading and enabling the PWA Drupal module.

     

  2. For Drupal 9, apply this patch

  3. Once done, navigate to configuration -> PROGRESSIVE WEB APP -> PWA settings and add the required information.

             

Service Worker

URLs to cache - This is where you can specify the pages that you need to be made available even when offline. The URLs mentioned here will be cached -make sure you flush the cache whenever you make any updates here.
URLs to exclude – If you have pages that absolutely need to work only with the internet, mention them here.
Offline page – Display a personalized page to your users when they get offline and the page isn’t cached. 

Manifest.json

The Drupal manifest.json file is what allows users to add the PWA to their home screen. It contains configurations that you can modify to change how your PWA will behave – like the name, display name, background color, orientation and more. 

 

The file will be added to the head tag of your index page.

 

       Manifest.json

The below image shows the “Add to the home screen” option and an icon will be created on the home screen.

 

With Progressive Web Apps, you can get the best features of both native and web apps. Drupal 9 lets you create them easily while enabling you to deliver immersive experiences to users. I hope this article has made you fall in love with PWAs as much as us! Contact our expert Drupal developers to know how we can help build your next innovative Drupal project.

Thank you @Megha and @Shruthi for helping me put this article together!
 
 

Drupal Planet Drupal 9 Module Drupal 9 Drupal Development Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image All about Progressive Web Apps and Implementing it in Drupal 9 Image Business Process Automation with Drupal – Top Drupal 8 (and 9) modules and distributions Image Get Up to Speed with the AMP module for Drupal – A brief Tutorial Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Know more about our technology driven approach to recreate the content management workflow for [24]7.ai

link

Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.

link

Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.

link

Dale McGladdery: Ansible Impressions

Tue, 10/20/2020 - 05:13

After using Ansible as a personal DevOps tool for a couple of months, here are some impressions.

Context
  • Outside of work (web development) I look after six Drupal 7 and WordPress sites on shared hosting
  • My local development is done on a MacBook using apache (with some dabbling in Lando/Docker). I've done some wildcarding with dnsmasq and vhosts to streamline local dev site configuration. CMS code is in git repos.
  • My Ansible work is a personal project and I'm the only stakeholder
  • I learned Ansible doing this work
Ansible Tasks

I'm using Ansible to:

  • backup hosted sites to a local, external hard drive
  • automate sync'ing my local dev site from the production site
  • automate deploying Drupal 7 and WordPress updates using git as the deploy tool
  • automate parts of my WordPress update workflow
Impressions / Observations / Thoughts

In no particular order.

  • I love using the Ansible inventory for host data

    Having a single source for host data is nice. I didn't realize how big an issue/pain point this was until it was solved.

  • Agentless is wonderful
  • Ansible has some unique terminology

    It was initially hard remembering Ansible roles are not a security thing.

  • Maintaining a consistent set of host variables was more work than I thought

    As I iterated writing playbooks and adding or changing host variables, consistently maintaining the variables across hosts became a challenge. I eventually wrote a verification playbook to ensure the required variables existed and had correct values.

  • Documenting really helped

    Writing the verification playbook in turn inspired me to document the host variables. It was more useful than I expected. This inspired me to document other project conventions. Not only did it help consistency, it helped me maintain a high-level view of what I was doing.

  • Single stakeholder is good while learning

    I've done a lot of refactoring as I've learned. I'm happy I started Ansible on a personal project with the luxury to make drastic changes.

  • The console output can be awful

    In many situations the Ansible console output is hard to read or confusing. And there is no easy method to output custom strings to help create understandable output.

  • Thinking about a playbook "wrapper"

    Ansible runs the playbook task list on each specified host and reports by host. For some playbooks it would be nice having a customizable playbook wrapper for better host specifiation and summary reporting. In the greater Ansible world there are web based interfaces with the AWX project and RedHat's Ansible Tower product. Both are overkill for my situation. A shell script will likely be my solution.

  • Not for Drupal 8/9

    Composer and CI/CD tools provide a lot of automation options that don't require learning a new language (a colleague is doing some cool stuff with Robo). So far I don't see Ansible being a better solution, though it could augment a CI/CD workflow in some situations.

Tagged:

OpenSense Labs: Managing your development workflow for Drupal projects

Mon, 10/19/2020 - 14:55
Managing your development workflow for Drupal projects Shalini Rawat Mon, 10/19/2020 - 19:25

“Development workflow aligns team members, keeps them engaged, and drives a balance between speed and quality of code changes.”

In today’s competitive environment, organizations are constantly engaged to create new ideas that can act as the leading front doors to building businesses. Starting a new web development project means a blank slate that comes along with the opportunity to try out new technologies. Over the past few years, the concept of developing a strong and influential workflow is no longer limited for the sake of process only. In other words, having a robust development workflow is looked at as an opportunity that can make a huge difference to the efficiency of your team as well as the quality of your product. 

However, when it comes to Drupal development workflow, things are not easy as it may look. That is to say, many Drupal-based organizations suffer from a standard process that needs to be adopted and implemented. Consequently, it leads to real problems, right from a chaotic approach to code submission to a review of the inability to determine where and why things inevitably break.

Therefore, this article is written to demystify the basics of Drupal development workflow to appeal to a wide audience including both work from home as well as work from office. Moreover, after reading this article, you will become familiar with the development techniques we employ to achieve the best possible results and with how we adapt to alterations during development.

Forming a standard development workflow vis-à-vis specific project’s requirements

While perfect planning may seem like the key to a worthy goal, there are chances that even the most perfect plan may require a change in the development workflow. Yes, you heard it right, change in development workflow strategy is not breaking news but a part of the job which every organization undergoes. Managing development workflow helps the organizations to stay flexible and responsive to change without slowing down the work at hand. 
Since different projects have a different workflow, it becomes important for businesses to implement, plan, and fine-tune the architecture and development practices in accordance with the project-specific need. Let's take a look at a few scenarios:

Microservices

The monolithic architecture is a traditional way of building applications. However, this workflow is harder to implement changes wherein the application is large and complex because of highly tight coupling. Any slight change in code affects the entire system which often makes the overall development process much longer. Well, in a situation like this, something like microservices architecture is required which has a different workflow than monolithic architecture. Organizations that require a collection of smaller independent units rather than a single unified unit must shift their development workflow to a microservices architecture wherein the entire application is divided into independent services, owned by small separate teams.  

Pattern Lab

Organizations that are design-focused may require a front-end framework or a completely different workflow that can offer a convenient and easy way to enforce component-driven design. Or let us envisage that you have a project where designing is the foremost thing for which you may essentially look for a refreshing way to create sophisticated designs. In both situations, the standard or existing workflow might not hold up and the development team has to look for a workflow that can serve as a hub for your design system. Born out of design principles, Pattern lab can be used in the aforementioned situations to create and maintain thoughtful UI designs. Development teams that are well-equipped with Pattern Lab create reusable components, thereby speeding up your team’s workflow, and further allowing you to save huge amounts of time and money in the process.

Decoupled Approach

In traditional Drupal websites, Drupal handles the front-end and the back-end functions single-handedly. As a matter of fact, in addition to being a robust content store, Drupal’s powerful frontend takes care of your site design, behavior, usability, and management. It’s perfect for creating impressive visual designs and cutting-edge interactivity. However, with consumer touchpoints like connected devices and wearables taking center-stages, organizations are looking for front-end technologies like React or Gatsbywhich can help them deliver the best digital experiences to potential clients. And in order to fulfill this need, organizations need to make necessary changes in their development workflow. This is because the Drupal development workflow that was applied for creating websites with traditional approaches may not be suitable for decoupled Drupal architecture. With separate teams working on the frontend and backend side of things, your standard development workflow would have to be tweaked in a way that both the teams are able to work parallelly.

Having the right project management tools

Project management refers to an umbrella term which is a compendium of the application of knowledge, skills, tools, and techniques that are required to meet the project requirements. The main intent of project management is to produce an end product that will affect some change for the benefit of the organization that had instigated the project. It is basically the initiation, planning, and control of a range of tasks that are required to deliver the end product using various tools. 

Project management tools are vast and can serve many different functions. For your consideration, we have listed down some of the most common project management tools which play a pivotal role in the Drupal development workflow. So, let’s give each one of them a quick look.

Confluence


Confluence being one of the most popular collaboration tools helps you create, collaborate, and organize all your work in one place. Irrespective of the team size and type including people with mission-critical projects to people looking for a space to build team culture, Confluence serves as a team workspace where knowledge and collaboration meet in a more open and authentic way. Organizations that utilize Confluence are able to make quick decisions, gain alignment, and accomplish more together. Some of the key features of Confluence include: 

Page: This is the place where your content lives. This feature allows you to create pages for almost anything, starting from project plans to meeting notes, troubleshooting guides, policies, and much more. 

Space: Pages that you create are stored in spaces. They are nothing but workspaces where you can easily collaborate on work and keep all your content organized. You can create as many or as few spaces as per the requirement. However, it is always suitable to group related content together in the same space.

Page Tree: This feature organizes space content with a hierarchical page tree in order to find work quickly and easily. It also nests pages under related spaces and pages to organize pages in just about any way. 

Bitbucket


Bitbucket can be called a real worthy competitor to GitHub which comes with different operating systems to provide support to the professional teams. Being a section of the Atlassian family along with tools like Confluence, Jira, etc, Bitbucket is made in such a manner that it provides complete support to the technical teams to explore the entire potential. Bitbucket offers organizations a central place to manage git repositories, collaborate on the source code, and guide through the development flow. A great way to extract maximum advantage of everything that Bitbucket offers is to integrate it with your task management software. The deployment of Bitbucket is made in three different options which include Bitbucket cloud, Bitbucket data center, and Bitbucket Server. Besides these aforementioned advantages that Bitbucket offers, it also allows user to use some awesome features that include:

  • Access control: This feature allows you to restrict access to your source code.
  • Workflow control: Using this feature, you can enforce a project or team workflow.
  • Pull requests: Can be used with in-line commenting for collaboration on code review.
  • Jira integration: This feature gives access to full development traceability.
  • Full Rest API: Provides easy access to building features custom to your workflow if they are not already available from our Marketplace.
Jira


Originally built to track and manage bugs in software development, Jira has now become a famous agile project management tool that helps teams to manage their work under a single roof. Products and applications built on the Jira platform help the team to perform various functions such as plan, assign, track, report, and manage work. If you wish to bring your team together for everything, right from agile software development and customer support to managing shopping lists and family chores, then Jira is your tool. Jira is a family of products providing several products and deployment options that are purpose-built for Software, IT, Business, Ops teams, and more.

Three products have been built on the Jira platform: Jira Software, Jira Service Desk, and Jira Core. Each of these products come with built-in templates for different use cases and integrates seamlessly, so teams across organizations can work better together.

Jira Software: Used to plan, track, and release world-class software.

Jira Service Desk: Used to give customers an easy way to ask for help and your agents a faster way to deliver it.

Jira Core: Used to manage the business projects including marketing campaigns, HR onboarding, approvals, and legal document reviews.

Implementing CI/CD Pipeline

A CI/CD Pipeline implementation, or Continuous Integration/Continuous Deployment, is referred to as the backbone of the modern DevOps environment. The CI/CD pipeline is held responsible to bridge the gap that exists between development and operations teams by automating the building, testing, and deployment of applications. 

In DevOps, a continuous and automated delivery cycle acts as a catalyst that makes fast and reliable delivery possible. As a result, there is a need for proper continuous integration and continuous delivery (CI/CD) tools. The marketplace is flooded with a wide variety of CI/CD tools that can be used to speed up delivery and ensure product quality. Some of the tools are given below:

OpenDevShop

With a front end built in Drupal (Devmaster) and a back-end built with Drush, Symfony, and Ansible, DevShop is a "cloud hosting" system intended for Drupal users which makes it easy to host, develop, test as well as update drupal sites. 

DevShop uses git to deploy the sites, thereby allowing you to create unlimited environments for each site. Moreover, it’s very easy to deploy any branch or tag to each environment using DevShop. Data including databases and files can be deployed between environments. Further, you can run the built-in hooks whenever code or data is deployed, or simply write your own.

Jenkins

Built with Java, Jenkins is an open-source automation server wherein the central build and continuous integration process takes place, regardless of the platform you are working with. With Jenkins, organizations can easily escalate the software development process by simply automating it. This particular powerful open-source server holds the potential to manage and control software delivery processes throughout the entire lifecycle, including build, document, test, package, stage, deployment, static code analysis, and much more. 

Checks during Pre-Code merge

There are certain CI/CD tools that are used by organizations as a strategy to help development teams integrate code easier and find bugs before they are released into actual production. 

-   Code Review 

It refers to a systematic examination to find and remove the vulnerabilities in the code that are often not readily apparent when compiled, such as memory leaks and buffer overflows. 

Example- Sonarqube, an automatic code review tool that is pretty helpful to detect bugs, vulnerabilities, and code smell in your code. 

- Drupal 9 Deprecation

Instead of working on Drupal 9 on its own git branch from the scratch, Drupal 9 was built in Drupal 8. Further, it involves the removal of all deprecated APIs and changing the remaining small number of deprecations to be deprecated for Drupal 10 instead. 

Example: Drupal Check, this tool allows you to run a standalone PHP executable from the command line and get a report of deprecated code, if used any.

- Security Checks 

It refers to the process which involves a Drupal-based site and gets a high-level overview of the site’s security posture to avoid future vulnerabilities or threats.

Example: Snyk, a security tool that developers use and love. It helps software-driven businesses to develop fast and stay secure. 

- Prod code performance reviews

It refers to the process wherein errors are detected that might have been produced during the development process and can potentially hinder workflow productivity. 

Example: Sentry, a leading SQL Server performance monitoring tool that helps developers to diagnose, fix, and optimize the performance of their code.  

Checks during Post-code merge

Just like pre-code merge, there are certain tools that act as a strategy to help development teams to examine and get an insight into the overall scenario after pre-code merge.

-  Performance 

It refers to the process of determining the speed, response time, stability, reliability, scalability, and resource usage under a workload.

Example: Sitespeed.io, a set of open-source tools that allows you to monitor and measure the performance of your website with ease.

-  Accessibility 

It refers to the process to ensure that the site built is usable by people with disabilities like hearing, color blindness, old age, and other disadvantaged groups. 

Example: Pa11y, a command-line interface with a job function to load web pages and highlights accessibility issues, if any. This tool is quite useful to run a one-off test against a web page.

- Warnings/Errors/Ngnix

The process to identify and configure the logging of a few warnings or errors that can further be used to debug your application or website.

Example: Jenkins Next Generation Warnings, a plugin used to collect compiler warnings or issues that are reported by static analysis tools and visualizes the results. 

- Periodic load tests on API level

It refers to a way that allows you to check whether your application is robust enough to handle the load you want it to handle before your users find that out for you. 

Example: k6, an open-source load testing tool to catch performance regression and problems at an earlier stage thereby allowing you to build resilient systems and robust applications.

Conclusion

To conclude, we hope this article has given you a good idea of what a workflow is and how you can use it in order to run your business. To be upfront, planning a development workflow for Drupal 8 projects takes a little bit of effort as well as time but it pays off considerable dividends in the near future. In other words, organizations with a good workflow have seemed to receive a part of the profit in terms of increased productivity, reduced stress, and a better quality of working life in general. All you need to do is give yourself some space to get started and make gradual improvements over time. Doing so will help you reap the possible benefits sooner rather than later. 

Want to know how to automate your own development workflow? Feel free to contact us at hello@opensenselabs.com and our industry experts will help you optimize your development workflow. 

blog banner blog image Drupal Drupal 8 Drupal 9 Blog Type Articles Is it a good read ? Off

Chromatic: Preventing Conflicts when Upgrading to Composer 2

Fri, 10/16/2020 - 21:16

Composer 2 RC2 is now in the wild and the official release of 2.0 is quickly approaching:

The current plan is to release a 2.0 final before [the] end of October.

This is exciting for anyone who has complained about Composer’s performance in the past as Composer 2 brings signifigant performance improvements.

Zoocha Blog: How to fix the Chrome 80 cookies issue in Drupal

Fri, 10/16/2020 - 15:15
Drupal How to fix the Chrome...

There’s plenty of articles out there explaining what the changes are ( https://blog.chromium.org/2020/02/samesite-cookie-changes-in-february.html ), why they’ve been done ( https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy ) and how to ‘theoretically’ fix them with simple code examples, but we haven’t stumbled upon many articles explaining ‘practical’ solutions to apply to a Drupal site to actually fix…

16 Oct 2020 How to fix the Chrome...

OpenSense Labs: Atomic design methodology: Explained

Fri, 10/16/2020 - 12:59
Atomic design methodology: Explained Tuba Ayyubi Fri, 10/16/2020 - 17:29

The concept of atomic design was introduced by Brad Frost and it helped accelerate the process of creating modular designs. The universe is made up of a set of elements, that are the building blocks of everything around us, and these are known to us as the periodic table of elements. All these elements have fixed properties that define each of them. The same way in which these elements combine together to form the universe, the design system is created by the combination of different elements of atomic design.

Let’s dive into these elements and understand the process!

Atoms

We have all read about the atoms in chemistry. They are the building blocks of matter. Every chemical element has different properties and they cannot be broken down without losing their meaning. Now, if we relate the same thing to our design system, the atoms are the foundation building blocks of the user interface. These atoms have basic HTML elements, for example, buttons, labels, spacings, etc that cannot be further broken down without suspending its functions.

Molecules

In chemistry, molecules are a group of atoms attached together that can have different properties. Two molecules made of the same atoms behave differently and show distinct properties. In the same way, Molecules in the user interface are a group of elements working together. For example, if we put the label, button, and search input together, we will get the search form molecule. After they are combined together, they have a purpose and define the atoms that are put together. To construct a user interface, we assemble elements to form molecules like the search molecule.

Organisms

Organisms are comparatively complex UI components. They form a distinct section of an interface. The organisms in the design system are a group of molecules. The search molecule that is created by a group of atoms can be combined with another molecule that creates complete page navigation to make an organism. 

The organisms can have similar or different molecule types. They can be a search form or a logo image, etc.

Templates 

The chemistry analogy ends here. You just read about the basic structure of a design system i.e. the atoms, molecules, and organisms. Now let's see how they can be used to create a consistent product.

At this point we see the design coming together to form pages. Templates articulate the design's content structure and place components into a layout. While crafting a design system, it is important to see how the components look and function when put together. You basically create a skeleton of a page. An important characteristic of templates is that they focus on the page’s content structure in spite of the final product.

Pages

Pages show how the UI looks like when placed with everything in place.
This stage is the most important and concrete stage of all. We are able to understand and have a look at how the page looks when real content is applied and if everything is looking and functioning as planned.

Why go for atomic design?

Atomic design involves breaking off a website into the elements that we just talked about and then forming a website. Now that we have understood them, let’s understand why atomic design should be used and how it makes our life easier.

Mixing and matching components

When components are broken down, it becomes easy for you to understand what part of the website can be reused and mixed to form molecules and organisms.

Creating a style guide

If you have created your site according to the atomic design guidelines, then the atoms and molecules created before the site is built can be a help as a basic style guide.

Consistent code

The chance of writing duplicate code is reduced with atomic design. It also becomes easy to understand which components are used for different parts of the website.

Understandable layout

The documentation of atoms, molecules, and organisms and where they are being used makes it easy to understand what each part of the code is representing. The best part is that it is much easier to explain the codebase to a new developer.

Quick prototyping

Making a list of elements before the website creation starts helps you mockup pages instantly by combining the elements of the page.

Fewer components

If the website creator has a list of all the atoms and molecules, he will more likely use the existing elements rather than creating new ones.

Easy update and removal

With one atom, molecule, or organism changing at a time, it is easier for any update to be done across all other instances of the site. In the same way, the removal of unwanted components becomes easy.

Implementation of atomic design

Getting started with atomic design needs you to understand every part of it and dividing into the basic elements that are, atoms, molecules, and organisms. You can always start by conducting an audit. This will help you look into discrepancies and areas that are lacking. This will make sure that you and your team are familiar with the structure of the website. 

After you have conducted the audit, look for a platform where you can build your design system. Take help from the developers to know more about which tools will be more efficient. Make sure that the tool that you have chosen is easily accessible by everyone in the team. Tools that will help: 

Now that you have a good understanding of the design system and its principles, you can start building your website. Start by the construction of components piece by piece and don’t forget to document what page every component is for. Read about web components and component-based development to know more.

Conclusion

The atomic design provides a clear methodology for creating a design system. It makes sure that we are explicit with our creations and also that our designs are more manageable, consistent, and that the user interface is faster than ever before. For a faster and more efficient user interface for your website, contact us at hello@opensenselabs.com  

blog banner blog image Atomic design methodology design system Component Driven Design Component-based development Blog Type Tech Is it a good read ? On

Lullabot: Perspectives of Women in Technology - Part 3

Thu, 10/15/2020 - 20:34

To highlight and share stories of women in technology, we've rounded up a group of Lullabots to talk about their journeys into technology, which tools they use on a regular basis, the skills they're learning, and what advice they'd share with their younger selves. 

Promet Source: Drupal Enabled Drag and Drop Content Management

Thu, 10/15/2020 - 17:01
Until recently, content management systems essentially fell into one of two camps: Intuitive, easy-to-create and manage SAAS solutions, such as WIX and Squarespace, or Flexible and scalable solutions, such as Drupal, for websites with complex data models and a depth of content.   Quantum leaps in functionality that leverage component-based web design systems have broken down the wall between these two camps. This gap can now be bridged within Drupal, allowing for drag and drop content management capabilities. 

OpenSense Labs: Monolithic and Decoupled Drupal Architectures

Thu, 10/15/2020 - 14:01
Monolithic and Decoupled Drupal Architectures Gurpreet Kaur Thu, 10/15/2020 - 18:31

Websites have become a necessity in the 21st century. From gathering traffic on them to creating a buzz about its brand and resultantly leading to a higher sales figure, websites can do it all. However, not all websites are able to do that. A successful website is often considered to be one with the best user experience and performance. A low bar at these may just be the doom of the site developers. And when you combine the impressiveness of the site’s UX and performance with its overall aesthetic and product quality, success is almost guaranteed.

So, the process of building a website has to be done with the utmost care and expertise because doing a half-hearted job at first and regretting it later would not be prudent for anyone. The build and functionality of the website entirely depends on its developers and the CMS at work. Choosing the right architectural approach should be the first priority for all business owners and site builders. 

Getting into the architectural aspect makes me highlight the two variants that are the most popular amongst Drupal websites, the monolithic or the traditional architecture and the decoupled architecture. This article will accentuate all the areas of these two and discuss their aptness for different business needs.. 

Introducing the Contenders: Monolithic and Decoupled Drupal Architectures

Drupal is a pretty versatile content management system, it has the capability of building your websites for you, taking care of each and every aspect of the same. That should sum up Drupal’s capabilities, yet it doesn’t. With its different forms of architectural options available, Drupal has become the embodiment of versatility. The choice of deciding between Monolithic and Decoupled forms of Drupal architecture is proof of just that.

Starting with Monolithic architecture, in the terms of a software engineer, it means a single software that has the potential of handling every aspect of work done on it or with it. A monolithic architecture will always be single-tiered, wherein the UI and the code for data access are merged into one platform. And that is what Monolithic Drupal architecture or the traditional Drupal architecture means. The coupled Drupal is well-equipped to make a website up and running, both in terms of the front-end and the back-end. You would not need to rely on anything else, if taking the Monolithic approach. You would have all the Drupal resources in your corner, as your project would be entirely nestled inside it.

Drupal is regarded highly in the community for its back-end capabilities, its front end deserves equal regard. Using Drupal’s many behaviours, themes and templates, you can easily create impressive visual designs that would also provide state-of-the-art interactivity to your presentation layer that can be customised on the go. And there is more, any problem with your site’s design, behaviour, usability and management can easily be tackled by Drupal’s frontend aspects. So, it won't be wrong to presume that the traditional Drupal is a versatile software easing the process of building web applications. 

However, if you want to tap into the other frontend technologies, then there is a possibility for that as well, with the use of Decoupled Drupal architecture.

In simple terms, decoupled Drupal architecture separates the front end from the back end. The Decoupled Drupal separates the UI from the presentation aspect. Although the UI and the content management would be provided by Drupal, you would have free reigns over the presentation layer. You would not be bound to use any of the themes and templates. This approach mainly needs Drupal to act like its content repository. Although it is a relatively new trend in the CMS, many all over the Drupal community have taken it up. It has been gaining more and more traction because of the freedom Decoupled architecture provides to its users offering the advantage of capitalising on the many front-end technologies available outside of Drupal. Learn everything about Decoupled Drupal here.


In essence, both Monolithic and Decoupled approaches can be deemed similar in the sense that they have the back-end Drupal technologies. However, when the front-end or the presentation part comes to play, they start to seem vastly different. 

Different Ways of Leveraging Decoupled Drupal Architecture

Now that we know how the traditional and Decoupled Drupal architecture are different on the foundational level, let us delve deeper into the different ways of decoupling Drupal architecture.

Drupal was founded as a monolithic software performing every aspect needed for website development. This architecture has total control over a project, in terms of its presentation, all the visual elements along with in-place editing and layout management as well as in terms of data. In an attempt to not sound like a broken record, I would add that Drupal in its traditional sense is still the most used version of the software primarily because of the control it gives to the editors.

Coming to the Decoupled architecture, the story changes. Like I have already told you, the Decoupled approach mainly relies on Drupal for its backend capabilities, the front-end may or may not entirely become independent of Drupal.There are two broad categories of this architectural approach.


Progressively Decoupled Drupal Architecture

A major motivation behind taking up the Decoupled approach is the developer’s wish to use more JavaScript. However, the use of JavaScript does not necessarily mean that you have to give up Drupal’s front-end action. With the progressive approach you can do both. You get to keep Drupal’s front-end and add the JavaScript framework of your choice to it. JavaScript framework can be used for a block, a component or an entire page’s body. 


However, there is one thing to consider in this approach, more use of JavaScript on a page will make Drupal’s administrative abilities less in control. Read more about progressively decoupled Drupal here.

Fully Decoupled Drupal Architecture

In a fully decoupled Drupal application, you see a full separation of the presentation layer and other elements of Drupal.What this means is that the client’s framework becomes a server side pre-renderer, which ultimately leads to uninterrupted workflow. The CMS is a data provider in this instance. And an API layer acts as the connection between the two, retrieving data from the back end and providing it to the front end. It has to be understood that many Drupal features like in-place editing will lose their functionality or rather become unavailable in this approach. However, you will be able to exert a great deal of control over the presentation layer with other available technologies, React, Angular and Gatsby being a few of them.

You can also go for fully decoupled static sites. To tackle the increased complexities of JavaScript without affecting the performance of a site, static sites were introduced. For this approach to work, a static site generator like Gatsby is a great tool to use, which will take data out of Drupal and generate a site for you. So, Drupal basically becomes a data source throughout the process. 

Being API-first CMS: Drupal Web Services

Like the name suggests, being API-first means building an API before building a web application, which is basically created around the former. For the Decoupled applications to work effectively, Drupal has to be equipped with a top-knotch API that would essentially be the thread holding the front and backend together. The Drupal community has done a great job in this matter. 

The provision of pretty impressive web services that have been years in the making are proof of that. REST API can be considered as the paradigm here, however, for the applications that do not communicate using it, Drupal has other web services modules as well. Since Drupal was able to provide these and transcend the degree of functionality provided by REST API, it is all set to become the best open-source API-first CMS.

Primarily, the Decoupled Drupal has been known to use any one of the three APIs I have mentioned below. I would like to add that since the Monolithic approach does not need an API to provide a connection, these would not be relevant while using it.

REST API 

REST or Representational State Transfer API is one of the most popular ways to let the HTTP client get the responses it wants from the content repository, which is Drupal. Drupal  provides this web service out-of-the-box that includes RESTful Web Services, Serialisation, HAL, and HTTP Basic Authentication. With its proficiency at executing HTTP requests and responses, it easily aids in operating the data managed by Drupal, be it comments or nodes or maybe even users. 


In a simpler sense, REST API is like a mediator along with the HTTP client because they help the front and backend to work harmoniously on any framework they like. 

JSON API 

JSON:API is gaining momentum as the go to mediator in the Decoupling process of Drupal. A reason for the same is the fact that it is the better version of REST API. It offers a relatively high degree of productivity in comparison to REST API with minimum requests to the server and providing related resources without asking. It is phenomenal at filtering, pagination and its sorting capabilities along with caching use are almost impeccable. You tell me how can it not be the go to option here?

GraphQL

GraphQL is a query language that was developed by Facebook. It is used for custom queries to retrieve data from the backend with a single request. The GraphQL Drupal module works on the same principle and even lets you update and/or delete content or an entire configuration. Moreover, GraphQL has the ability to act as a base-line for the generation of custom coded schema or its extension. I find this one detail to be really helpful when the plugins are to be used to form a sub-module. 

Check out more alternatives on the modules available in the decoupled Drupal ecosystem here

Front-end Technologies

Apart from the different APIs used in the Decoupled Drupal architecture, the languages used are also quite distinct from the Monolithic version of the software. It is because the traditional Drupal does not have them as its core. Although it has its own JavaScript Library, the JS Framework is out of its jurisdiction. And this is one of the major reasons for seeking the Decoupled approach.
 
Let us have a look at some of these.

JavaScript 

A lion’s share of frontends are designed with a JavaScript framework at its core. Since JS offers a higher degree of interactivity, it often acts as a wiser choice. There are three popular frameworks at use which are;

React 

React is known to deliver the most amazing digital experiences when it is combined with Drupal. With big names like Facebook, Reddit and Airbnb as its users, it does not come as a surprise. React has the ability to split a code in varying components, which is immensely helpful in debugging and enhancing the reusability of the code. If you want to produce results that are both SEO friendly and very responsive, then React is the perfect option for you.  

Angular 

Angular was initially introduced by Google in 2009, but the 2016 re-released version was entirely rewritten to make the development of mobile and web applications very easy. This is especially true because it uses HTML in the simplest form to clearly define user interfaces, eventually making web applications a trifecta, interactive, functional and extremely hard to break. Perhaps, this is why The Guardian and Gmail are proud users of Angular for their frontend aspects.

Vue 

Vue is a JavaScript framework which is primarily used for building UIs and single-page applications. Its best implementation is seen in creating the view layer of a web application. Since Vue is quite lightweight, it makes it highly adaptable. It can also integrate itself with other libraries and tools to get whatever is desired in an application. The combination of Drupal and Vue is indeed a powerful one, as the former control over the backend and the latter’s client side handling make the creation of large-scale applications a walk in the park. 

Static Site Generator 

A Static Site Generator or an SSG is a tool that is used to build static websites which have a pre-existing set of input files. It is often regarded as a middle ground, wherein a hand-coded static site is used with an CMS. There is one particular SSG that deserves to be mentioned.

Gatsby 

An open source framework that is based on React, with every advantage of the JAMstack (JavaScript, API and Markup), be it performance, scalability or security. This is the simple definition of Gatsby, impressive, isn’t it? It would be suffice to say that Gatsby is jam-packed with features, the best of which is of course, its ability to pre-generate pages, making it much faster than the dynamic sites. You will actually be able to build a complete website faster than many will be able to create just a prototype.

Metalsmith

Metalsmith is one of the simplest SSGs to be used and it is pluggable. It can effectively produce static build files by extracting information from the source files, manipulating it and writing it to files in a destination directory. These indeed seem to be a lot of files. From grouping files to translating templates, it can perform numerous manipulations, all using its plugins and all consecutively. Not only does the use of plugins simplify things, but it also provides the user the liberty of choosing and implementing only the ones that he needs.

Tome 

Tome  stores your information in static JSON files, which are generated from static HTML form your very own Drupal site. With Tome, you can choose from the large number of themes and modules found in Drupal, create content and simply push the static HTML to production and your work is done. The fact that it allows you to use Drupal without any security or performance worries is another bonus.

All of these are regarded as the top-notch front end technologies for web building and you may very well know that nothing can beat Drupal at its back end game, so with Decoupled Drupal you get to have the best of both worlds, the worlds inside and outside of Drupal.

Conclusion 

The fundamental difference between Monolithic and Decoupled architecture can be detected with the degree of usage of Drupal’s entire software. There is no right and wrong approach amongst these two, when choosing Drupal for your project. Your choice will come down to the needs of your project and what your intentions are for the same. For instance, you might not want to create JavaScript interactions for your project, so you could use Drupal as is, which is the Monolithic version. 

On the contrary, if your project mandates the use of JS or static site generators, the traditional approach will not cut it for you. Decoupled Drupal has to be taken up and there is no harm in that as well. There are so many big names, like the Weather.com, NBC.comand Warner Music, who have been using the Decoupled architecture and they have experienced great results. 

Whatever approach you may think you want has to be aligned with the needs of your project. And when they do, trust me, whichever approach you will choose, it would be a winner for you.

blog banner blog image Monolithic Drupal Architecture Traditional Drupal Architecture Decoupled Drupal Architecture Decoupled Drupal Coupled Drupal Headless Drupal Blog Type Articles Is it a good read ? On

Tag1 Consulting: Using Gaggles to distribute your load testing

Thu, 10/15/2020 - 13:52

Goose, the load testing software created by Tag1 CEO Jeremy Andrews has had a number of improvements since its creation. One of the most significant improvements is the addition of Gaggles. A Gaggle is a distributed load test, made up of 1 Manager process and 1 or more Worker processes. The comparable concept in Locust is a Swarm, and it's critical for Locust as Python can only make use of a single core: you have to spin up a Swarm to utilize multiple cores with Locust. With Goose, a single process can use all available cores, so the use case is slightly different. As we discussed in a previous post, Goose Attack: A Locust-inspired Load Testing Tool In Rust, building Goose in Rust increases the scalability of your testing structure. Building Goose in this language enabled the quick creation of safe and performant Gaggles. Gaggles allow you to horizontally scale your load tests, preparing your web site to really take flight. ## Distributing workers Goose is very powerful and fast. Now, it’s so CPU-efficient it is easier to saturate the bandwisth on a network interface; you'll likely need multiple Workers to scale beyond a 1G network interface. In our Tag1...

Read more lynette@tag1co… Thu, 10/15/2020 - 05:52

undpaul: Jira for task management

Thu, 10/15/2020 - 01:00
How do we as a project team always keep an overview and can plan the next steps together? There are task management tools for this purpose. At undpaul we like to use Jira Software from Atlassian for requirements management.

Mediacurrent: Join Mediacurrent at Acquia Engage 2020

Wed, 10/14/2020 - 21:03

Acquia Engage is coming soon (October 20 and 21) to a screen near you. There’s still time to register and join us! The Engage 2020 conference will be fully virtual and free for all attendees. 

This interactive event will inspire business and technology leaders to learn and connect on the path to bringing outstanding digital experiences to life with Drupal and Acquia. As a sponsor, we are excited to network with the Acquia community, connect with old friends, and meet new ones. 

 Here are a few highlights of what's happening in Mediacurrent’s virtual booth. We’ll be sharing best practices, case studies, and info sessions throughout the event. Drop in any time to chat with us.

Digital Experience Case Studies 

Mediacurrent has been selected as finalists across three categories for the 2020 Acquia Engage Awards. These three finalists exemplify world-class digital experiences in healthcare, financial services, and emergency communication. Stop by our booth to learn best practices from these Acquia Open Experience Platform projects.

Area Alert - Open Source Giants 

Area Alert is an open source solution for organizations that need to quickly build highly performant, low-cost, and easy-to-update emergency websites during the COVID-19 pandemic and other large-scale emergencies. The Area Alert Drupal distribution delivers a head-start for faster deployment with special design consideration for the user experience in times of crisis.

Montefiore Medical Center - Building a Better Tomorrow 

The Bronx’s Montefiore Health System, which served one of the hardest hit areas in New York City, saw that existing and prospective patients were delaying the care and treatment they needed due to fears of COVID-19. Montefiore endeavored to create a new microsite to reassure patients of the steps the health system was taking to ensure patient safety, and encourage patients to return for the care they required. With just over one month to launch, a speedy end-to-end solution was needed to launch the COVID-SAFE Care microsite.

BDO Alliance USA - Leader of the Pack (Financial Services)

Become an indispensable resource to Alliance firms. This was BDO’s main goal when they approached Mediacurrent to expand its portal functionality and increase customer acquisition, retention, and satisfaction. BDO Alliance USA is among the industry's largest associations of accounting and professional service firms. The Alliance Portal, a private Drupal-based platform, is available to members of firms who are members of the BDO Alliance USA. BDO took a big step in the evolution of its Alliance Portal with the move toward a more integrated, relevant, and metrics-based platform.

Stump the Drupal Experts 

Lately, we’ve been focused on gearing up for Drupal 9 with our Rain install profile, increasing conversion rates with Acquia Personalization, and decoupling Drupal with Gatsby...but you can ask us anything.

Try to stump our Drupal experts with your digital dilemmas – they welcome the challenge!

Drupal 9: Roadmap and Tools

Everyone’s buzzing about the strategic advantages of Drupal 9. We’re here to bring those Drupal 9 visions to reality with these open source tools:   

  • Rain: Go from zero to launch in 30 days. This Drupal installation profile enables rapid development and gives editors the ability to build robust pages with over a dozen pre-built components.
  • Automated Updates: Speed up the update process 3x faster. Managing updates in Drupal can be a challenge as core and contributed projects are frequently updated. There’s a better way to streamline the management of your Drupal application.
  • Mediacurrent Multisite+: Spin up a new site in minutes — no development help required. 
Connect with Us

Conferences looked a little different in 2019!

We’ll miss in-person networking this year but our team of Drupal and digital strategy experts will be just a few clicks away. Stop by Mediacurrent’s virtual booth or book a 1:1 meeting with our attending team members:

  • Josh Linard, CRO
  • Michael Silverman, VP of Strategic Growth
  • Client Success Team: Mary Pat Kelsey, Scott Liberman, Madison Smith. and Carlos Lee
  • Damien McKenna, Community Lead
  • Kevin Basarab, VP of Delivery 
  • Jay Callicott, VP of Technical Operations 

Nonprofit Drupal posts: October Drupal for Nonprofits Chat

Wed, 10/14/2020 - 17:48

Our normally scheduled call to chat about all things Drupal and nonprofits will happen TOMORROW, Thursday, October 15, at 1pm ET / 10am PT. (Convert to your local time zone.)

No set agenda this month, so we'll have plenty of time to discuss whatever Drupal-related thoughts are on your mind. 

All nonprofit Drupal devs and users, regardless of experience level, are always welcome on this call.

Feel free to share your thoughts and discussion points ahead of time in our collaborative Google doc: https://nten.org/drupal/notes

This free call is sponsored by NTEN.org and open to everyone.

View notes of previous months' calls.

OpenSense Labs: Website Redesign Strategy: A Complete Guide

Tue, 10/13/2020 - 11:54
Website Redesign Strategy: A Complete Guide Gurpreet Kaur Tue, 10/13/2020 - 16:24

The virtual sector has become increasingly prominent today. From trading shares to buying groceries, every single aspect of our life can be fulfilled in the virtual world. And do you know what lies at the heart of this world? Since it is online, you must be thinking that a website has to be at the core. And you are right to think so. A website is the foundation of every online business, from blogs to e-commerce, every virtual service provider needs a website.

Now, just building a fully functional website is not enough. You have to keep updating it every now and then, simply because what was trending two years ago is considered antiquated today, and we do not want your website to be regarded as out of fashion. 

When making the decision of revamping your website, you have to consider something very carefully. And that is the difference between website refresh and website redesign. If you want minor changes to be done in your website, like changes relating to its appearance, you would call it freshening the website. On the other hand, if you want to change your website completely, you would need to redesign it. This would transform the makeup of your website, from the content to the appearance and sometimes even the code. It is like converting a hatchback into a limousine, even though it would be the same car, it would be tremendously different.

So, if you are planning to redesign your website, you have landed in the right place. This article would accentuate everything related to redesigning a website; let us begin with the reasons for the same.

The Need for Website Redesign


Website redesigning is a giant undertaking that can be both costly and time consuming, so you can’t just do it on a whim, there have to be reasons for the same. Understanding those reasons is as important as the actual undertaking. 

I have compiled a list of common issues faced by website developers and operators that have compelled them to overhaul their websites, so that you can get an answer for the important question, that is, when should websites be redesigned. If you are experiencing more than a couple of them, consider it as a sign to say goodbye to your current website. 

Expansion of the company

Every business is in the market for growth. This growth means that they would enhance the products and services that they provide at one point or even start a whole new department. A website is like the gateway for the customer to know your services, and if it isn’t doing that, you will potentially lose your customers to your competitors. So, remember that, growth is always followed by your website’s redesign.
Changing market trends

If there is one thing that is fickle in this world, that would be the market trends. These change faster than light making your head spin with it. One day the gaudy and eccentric website are all the rage, and the next, minimalists reign online. The point is that your website has to align with the market trends, especially in terms of design. 

Unresponsive to some users 

By responsive, it is meant that your website can easily be accessed through any device, be it a smartphone, a tablet or a desktop. Sadly, there are a number of websites that are inaccessible through a smartphone and that just about destroys your leads. Adaptability or responsiveness can be achieved through redesigning.

Poor conversion rates 

The primary purpose of a website is to generate sales, if it is not doing that, then what is the point? Your customer base is basically decided by your website and how compelling it is for them. The more interest it generates in the customers, the higher the chance is that they would make a purchase. Having too complicated text packed with corporate jargon, not having enough CTAs, lacking in the aesthetic aspect; all of these will contribute to less conversions from your visitors. And the only way to overcome this is redesigning.

Complicated user interface 

A good website is the one that allows the user to easily maneuver around it and get the full experience of what the developers wanted to provide. If that is the case, then your website lacks in the functionality part and everything on it is as good as useless. The solution here is to simplify the user experience and redesigning is the route to go.

Revitalise your brand

Brand image is very crucial because it is how customers would perceive you and your brand. It is up to your brand image to make the customers think happy thoughts or get all woeful. Coca-cola is always associated with happiness and joy, because that is the image they have built. A website helps a great deal in that. Now, if you think that your brand’s perception is not aligning with its core, you would need to redesign it to make the alignment happen.

Now, that you know why websites need to be redesigned, let us get into the process of doing it.

The Website Redesign Strategy 


Redesigning a website is not something that will happen in a day. It needs time and resources to be put to good use. The process would be extensive, you would need to be aware about a lot of things, ensure everything works for you and aligns with your vision for the future of the website. Even the slightest of mistakes can become tragic for your website. That is why, a holistic approach has to be taken into consideration and I am here with the website redesign tips you would need for that.

Analyse the expense and its bearing on you 

The first step towards website redesigning commences when the budget for the same has been decided. The financial implications of website redesigning have to be considered, you cannot go wayward with the money; that would not be a wise choice.

Your website will be your first impression on a consumer and you would want it to be impressive. For that to happen, you would need financial resources that are substantial. Don’t take up redesigning until you have the resources, because doing a half-hearted job is just going to be a waste and you won’t be winning any website awards for that. So, analyse the expenditure, set aside the needed amount and delve right into it.  

Inspect the existing website

Once the money is ready, the process officially commences. And it does so with the past and its inspection. By past, I meant your current website, which would become your past after the redesigning. Your website, as it may be, would have done something for you, that is why you had it for as long as you have had it. 

Micro analyse every CTA, every image, every click that you received and how often that was. From bounce rates to time spent on a page, from the number of visitors to the number of sales, inspect everything and that too thoroughly, do not leave anything uninspected. I am emphasising on everything again, because it is crucial. This is the beginning and a successful beginning results in a successful end result.

If you want help in doing all of that, Google Analytics can sort you out. Once you have done all of this, you need to take note of the things that work and the things that don’t. The advantages would move further with the redesigning, while the disadvantages will be worked on until they are no longer a disadvantage. 

You must be wondering why all of this is necessary. Why not just start afresh? The problem with starting from scratch is that you might end up doing the same things again, which would only result in wasted time, effort and money. The inspection of the current website would not only give you a direction and a blueprint of the redesign, but it would also save the extra effort. So, why not?

Establish priorities to make goals

After the inspection is done, you would have a fair idea as to where you stand with your website. Knowing the key areas that are hampering your conversion rates or even your visibility on the web, helps you understand and establish priorities for the redesigning.

For instance, your content could be amazingly good, engaging and informative, however, the way it is presented makes it seem boring at best. Therefore, changing the content should not be a priority, rather its presentation should be. 

So, prioritising the areas that need to be focused on from the get go is an important step in website redesigning. A reason for its importance is that prioritising helps in making the design goals. 

Once you know what you need to focus more on, you could start working on that first and get better results. It is like knowing your weaknesses and working on improving them. I was weak in science in school, pathetic really, so I put in an extra effort by prioritising and started seeing the results. In website redesigning, there won’t be any mysterious scientific concepts, but you could endeavour to elevate your visitor count, enhance domain authority or improve your SEO rankings and eventually increase your sales. All of this is achieved by prioritising your goal. You can’t simply take on everything at once, you need preparation and this is it.

Create a unique brand image 

If you have a website, you are a brand. The question is whether your brand is appealing enough to customers to pull money out of their pockets and buy from you? The answer lies in the image you create for your brand. A good way to create an impactful persona for your brand is your website and redesigning the same can easily do that. 

The first thing that a customer would see on your website should effectively depict what you are about. The user should not have to decode it, trust me, he would go to your competitors website instead. And do I have to say that we do not want that?

Source: Amazon

This is Amazon’s home page, and it should be considered the benchmark in branding. I would not leave this website until I have scanned through the “Top picks for your home.” With so few words Amazon has portrayed all that it is about and engaged the user. 

I know every website cannot be like this, but the conciseness can be achieved, it has to be. That is the core of branding. Your redesign strategy has to ensure that your brand image works in your favour rather than against it, make it unique, make it enticing and make it worthwhile for the customer.

Assess the competitors 

You may be at war with your competitors, but that does not mean that you cannot learn from them. Assessing the ways your competitor’s websites look, the kind of services they provide, how functional they are can help you a great deal. You must be wondering why. It is because you and your competitors are in the same market, catering for the same customers, whose needs and wants are the same; apart from this their likes and dislikes would also be the same. So , if they like something that your competitors are providing, you can make a change. What could be the harm here?

Cater to your audience more than yourself 

A website’s success entirely depends on its users, they are the ones who can make or break it. So, making a website keeping in mind the end-user’s thought process and needs can make a difference between the success and failure of a website. 

Obviously, your website is not going to be for everyone, it has to have a target audience or a buyer persona. Is it meant for the retired or the middle-aged men or maybe the adolescents, you have to decide. 

For instance, an anti-ageing cream’s audience is going to be over 25, it could be the working women who stress too much at work that they have developed wrinkles at 30 or it could be the stay-at-home mothers who have very little time for skin care or both. If your website and its design effectively justifies their needs, a conversion is almost guaranteed, and that is all we want. 

Make the website responsive to everyone 

Today, websites are not only accessed through laptops and desktops, people do it from any device that has a screen and an internet connection, especially smartphones. So, seeing something like “this website is incompatible with your device” is not going to generate many leads for you.

Mobile friendliness is crucial for websites, they need to be made responsive to reconfigure itself to the screen size of the device, which is browsing it.

Focus on the software

Up until now, we have covered everything that could be redesigned on your site, now let us talk about the makeup of your website a little as well. A Content Management Software or a CMS is the way to go here. From developing the site to publishing regular content on it, the CMS would do just about anything you could want. Drupal, one of the leading CMSs in the market share, can be a magnificent choice. Be it government websites or private companies or even sports stars wanting to create their online space, Drupal provides for all.

Journalism websites need a lot more flexibility in content than any other category. Since Drupal is the embodiment of flexibility and provides just the right set of core features and contributed modules, choosing it becomes a no brainer. Earth Journalism Network’s website is the prime example of remarkable improvements that are possible with website redesigning. OpenSense Labs Team migrated the old site, which was running on a Python-based CMS, to Drupal 8. This ultimately proved to be a remarkable move as creating and managing content turned out to be super efficacious. Access the full case study of Earth Journal Network to know more.

The Website Redesigning Approach: ESR

The web would keep on evolving at a pace that is faster than your redesigning abilities. You might think that is a bad omen, but it isn’t, not completely. Yes, the web keeps on evolving, but its evolution does not mean that your website would become completely obsolete. There would be a lot of things still working for you since the last redesign and the things that do not, you can simply update them.

All of this becomes a walk in the park with Evolutionary Site Redesign or ESR. This is an approach that continually tests certain problematic areas of your websites, giving you feedback about their performance.

Source: Wider Funnel

It is not only a faster approach to redesigning, but also becomes extremely helpful in reducing the risk as you would be making incremental improvements consistently, instead of a complete overhaul. The result is a better user experience for your visitors and everybody stays happy. That is why ESR is often regarded as the right website redesign approach.

The Mistakes to Avoid 

Now that you know all about things that you need to address, it is now time to know what to avoid in the website redesign strategy. These are mistakes that are more common than you would think and these mistakes can become quite costly for your website. 

Nondescript scope 

Scope of work, that is both doable and well-defined, sets the pace for any project. It is like a roadmap that will tell you what the next destination is and whether to take a right or a left turn to reach there without much hassle. Taking on a website redesign project is a huge step, so you have to clear, explicitly clear, as to what you want to do and how it would be done. 

The scope also lays emphasis on accountability, as it clearly allocates duties to be done by members of the team. So, when something doesn’t happen, you would know where to point the finger. Without a well-defined scope, the smooth sailing of the redesign project is not possible.

Not emphasising on the content 

The content on your website is probably one of its most important aspects. Think of it like the voice of your website, since it clearly speaks for you and your brand. So, ensuring that the content is well-written, engaging, simplified and SEO friendly at the same time should be a priority. You can hire professionals to write it for you. The thing is a high quality content would need time from your end, so not getting a head start on it is not the way to go.

Biting off more than you can chew 

Another mistake that often happens in a redesign project is that the owners overreach. They try to do everything possible to make the website better than the existing. Although this should not be a mistake, the timeline of the project may disagree. The completion of a project in its designated time is what makes it worthwhile. So, when you keep on adding additional tasks on an ongoing scope, you will just be stretching yourself for time and the project would only get delayed. 

This does not mean that you cannot add too many features in your website, you certainly can, but you should try adding those in phases. Doing everything at  once and doing one thing at a time is different and let me tell you, the latter almost always succeeds.

Compromising on one aspect for the other 

Another pitfall that is experienced in the redesigning projects is the compromise. In the race to finish a project, the developers start compromising on one aspect of the website for the other, and this disrupts the overall redesign. For instance, you cannot just focus on the aesthetics of your website, its functionality and technical aspects need equal consideration. The user might come to your website and even stay awhile because of the aesthetics, but if your website won’t deliver in terms of functionality no one would stay longer than awhile and conversions would seem far fetched.

The Right Partner for Website Redesign

Like I have already mentioned a few times, website redesigning is a colossal undertaking, so it needs the support of a team to make it successful. Many websites have taken up the redesigning endeavour on their own, but only because they have a comprehensive team that can perform all the redesigning duties including a developer, a designer, a marketing strategist, an SEO expert, copywriters, to name a few. If you have such a team, take up the redesigning yourself. If not, you should consider a website redesign agency

Here are a few pointers to help you;

What is its niche?

Before checking anything else, you have to find out which area does the organisation excel at. Is it an ad agency, marketing agency or does it specialise in technical aspects? Knowing all of this will help narrow down your search for the right partner, since the speciality of the agency has to be in accordance with your business. A high-profile public enterprise can go for an ad agency that deals with celebrities.

What approach does the agency use?

The agency’s approach towards tackling redesigning is very crucial, because that will set the pace for the website’s future growth. So, if an agency is focusing on enhancing  the user experience as its core, you should hire it without a second thought.

How good is it performance-wise?

Ensuring that the redesigning agency has had a good track-record in its past projects is also necessary. To do so, you can simply check the testimonials on their website. This way you can predict how well it would tackle your redesigning.

Can it perform an audit?

An audit is very valuable when taking up redesigning a website. So, you must go for an agency that would perform a thorough audit, both for the content and the architecture of the website, before working on the changes. 

Do they know your target audience?

A website redesign won’t do you much good, if it is not targeted at your potential customers and compelling them to buy from you. So, an agency that has knowledge or will acquire the knowledge about your target customers is going to be the right fit for you.

How extensive are its services?

Lastly, the range of services a redesign agency provides will be the last stepping stone in your decision. It cannot just provide a marketing strategy or just implement the SEO techniques, the services have to be all inclusive. 

All of these questions need to be addressed before you take up a partnership with a redesigning agency. 

Website Redesigning- Not a One-Time Gig 

Now, you are all set to make the redesigning decision. However, I would like you to know one more thing. Website redesign never ends, it is a perpetual project that would keep returning every few years or as early as your resources allow. Trends keep changing in the virtual world, and your website must change with them, barring the fact that it is responsive or not. If you have a bigger establishment with resources in abundance, you can redesign at least once a year. On the other hand, if resources are scarce, you can wait as long as half a decade, provided that your website is responsive.

Redesigning is similar to changing your car, you have to do it every few years. Driving the same car for a decade would not seem appealing or a sign or growth, what do you think?

blog banner blog image Website redesign Web Design Website Design Blog Type Articles Is it a good read ? On

Specbee: Business Process Automation with Drupal – Top Drupal 8 (and 9) modules and distributions

Tue, 10/13/2020 - 11:51
Business Process Automation with Drupal – Top Drupal 8 (and 9) modules and distributions Shefali Shetty 13 Oct, 2020 Top 10 best practices for designing a perfect UX for your mobile app

Today, business process automation is not just considered by bigger organizations but by SMBs too. And why not? When you can have a process that can do your work while reducing your overheads in the long run, why wouldn’t you choose one? Business process automation (BPA) is a process that uses a software program or platform instead of human intervention to improve your cost and workflow efficiency. It can be implemented in various stages/processes of your organization like Marketing, Sales, Project Management, or any other process that needs automation. Drupal 8 and Drupal 9 offers many modules and distributions that can help you automate your business process easily. Let’s look at some of them in this article.

What can a Business Process Automation do for your Organization?

•    Can streamline your processes. Put an end to that disorder. Manage and monitor your processes from a centralized business automation solution.
•    Know exactly who has done what. When the entire process is streamlined and transparent you are enforcing accountability.
•    Minimize errors. To err is human indeed. When you eliminate more work from humans, you can also expect a lot less to go wrong in a process.
•    Reduce costs. Yes – the most important benefit of implementing a business process automation tool. When errors and human hours are reduced, your costs can drastically decrease.

How Drupal makes Business Automation easier?

Drupal powers millions of websites for organizations ranging from SMBs to very large enterprises. Every one of which already use or will eventually need a business process automation solution. Being an open-source content management system, Drupal allows for easy customized integrations to meet every organization’s requirements. Drupal has modules and distributions that can help organizations to integrate their websites with many popular and not-so-popular BPA solutions. The integration is so seamless that it feels like you’re working with a single solution. For companies that have very unique specifications, a custom integration can be built on Drupal because of its open-source framework. Let us look at some of the top Drupal 8 and Drupal 9 modules and distributions that can integrate with different business automation solutions available in the market.

Marketo MA

Marketo is one of the most popular digital marketing tools that can take care of your lead management, email marketing, consumer marketing and mobile marketing needs. Marketo users swear by its simplicity, ease of use and setting up and claim that it is a great tool for SMBs. The Drupal 8 Marketo MA module enables you to add marketing tracking capabilities to your Drupal website. Lead data can also be captured during user registration via webform integrations. You will require to have an active Marketo account and of course, an installation of Drupal 8 (or 9). 

Salesforce Suite

Claiming to be the world’s number one Customer Relationship Management (CRM) solution, Salesforce allows you to efficiently organize and manipulate your customer data using cloud computing. Right from sales and marketing to customer service, Salesforce enables organizations to put customers at the center of everything you do and satisfying them. With the Drupal Salesforce Suite module, you can synchronize Drupal entities like users, nodes, etc. with Salesforce CRM’s objects like contacts, organizations, etc. You can export Drupal data into your Salesforce CRM and import Salesforce data into your Drupal website effectively. Any updates can be performed in real time or asynchronously.

Maestro

Have a workflow and need a perfect solution to automate it? Drupal’s Maestro module lets you automate your workflow processes with a visual flowchart that you can drag, drop, and connect. Sure, it can be used in content workflow processes too to track and moderate content revisions. But it mainly shines in more complicated business processes and use cases. Maestro can be extended to add custom functions and logic to suit every business structure. It integrates well with other significant Drupal features like Webforms, content types, triggers, rules, and more.

   Drupal Maestro ModuleRedHen CRM

A very humble and flexible CRM with functionality for handling your contacts, organizations and relationships between them, Redhen CRM was initially built for common non-profit needs. Redhen CRM is a Drupal based CRM and a completely open-source one which makes it easy to mold into your organization’s requirements. It also allows for some modern functionalities like engagement tracking, customizable donation forms, etc. It not just behaves like you have integrated your website with a business automation tool; you can actually integrate Redhen CRM with other CRMs for extended functionalities like Salesforce, Blackbaud, etc. This Drupal module is compatible with Drupal 8 but does not support Drupal 9 yet.

MailChimp

Did you know that about 1 billion emails are sent through MailChimp every day? MailChimp is an email marketing service through which you can send marketing and informational emails to your opted-in customers. You can create multiple email campaigns, use their email campaign designer, email templates, data analysis, generate reports, segment audiences and much more with MailChimp. With the Drupal MailChimp module, your users can choose to opt-into (or out of) any email list they want to and you can generate and send email campaigns right from your Drupal website. The Mailchimp Drupal module supports Drupal 7 and 8 but is not compatible with Drupal 9.

Drupal PM (Project Management) Module

This can be termed as a distribution rather than just a module as it consists of a suite of modules that help in generating the various components it serves. The Drupal Project Management module offers components like organizations, tasks, teams, projects, tickets, expenses, notes and time tracking. These components allow easy integration with other Drupal modules as well. It serves as a great work planning and organizing tool for organizations. 

   Drupal PM ModuleHubspot 

An inbound marketing tool, Hubspot is an easy to use automation software that lets you attract visitors to your website, track and convert leads to customers. It also allows for easy integration with other automation tools like CRMs, email marketing tools, analytics tools, etc. You can also use it as your email marketing, social media publishing and ad-tracking tool too. The Drupal 8 Hubspot integration module integrates with Webform and Hubspot API and submits Webforms to Hubspot’s lead management system or email marketing campaigns. This module supports Drupal 8 but not Drupal 9 as of now.

   Hubspot Drupal Module

 

Organizations using automation tools to manage some (if not all) of their business processes, always have an edge over the ones doing it manually. When you have applied the right business automation strategy for your business processes, you will eventually save on time and money. With Drupal’s seamless integration modules and open-source customizable framework, there can be nothing stopping you from having an efficiently organized and automated revenue-generating business model. At Specbee, we undertake Drupal website development and with our efficient and experienced team of Drupal developers, we deliver customized web solutions that fits your business needs.

Drupal Planet Shefali ShettyApr 05, 2017 Subscribe For Our Newsletter And Stay Updated Subscribe

Leave us a Comment

  Shefali ShettyApr 05, 2017 Recent Posts Image Business Process Automation with Drupal – Top Drupal 8 (and 9) modules and distributions Image Get Up to Speed with the AMP module for Drupal – A brief Tutorial Image A Comprehensive tutorial on the ColorBox Module for Drupal 9 (And how to extend it) Want to extract the maximum out of Drupal? TALK TO US Featured Success Stories

Know more about our technology driven approach to recreate the content management workflow for [24]7.ai

link

Find out how we transformed the digital image of world’s largest healthcare provider, an attribute that defined their global presence in the medical world.

link

Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.

link

Drupal Association blog: Drupal Association Board Election 2020 - winner announced

Tue, 10/13/2020 - 11:00

The Drupal Association would like to congratulate our newest elected board member:

Pedro Cambra.

Pedro Cambra is a Drupal developer and consultant with extensive experience working with Drupal projects. He has worked in many different industries, including large organisations such as United Nations, non-for-profits such as Cancer Research UK or Médecins Sans Frontières and he also has a strong background working with large E-commerce integrations.

He currently works at Cambrico, a small Drupal shop he co-founded.

Pedro contributes to the Drupal project and community with a number of popular contributed modules and has helped organise events in Spain, Japan and the UK. He has been involved in the organisation of several Drupalcons and, in 2012, Pedro was elected by the Drupal community as director for the Drupal Association for one term.

We are all looking forward to working with you, Pedro.

Thank you to all 2020 candidates

On behalf of all the staff and board of the Drupal Association, and I’m sure the rest of the Drupal community, I would like to thank all of those people who stood for election this year. It truly is a big commitment to contribution and one to be applauded. We wish you well for 2020 and hope to see you back in 2021!

Detailed Voting Results

There were 10 candidates in contention for the single vacancy among the two elected seats on the Board.

920 voters cast their ballots out of a pool of 3209 eligible voters (28.7%).

Under Approval Voting, each voter can give a vote to one or more candidates. The final total of votes was as follows:

Pedro Cambra Fernandez 360 Mike Herchel 359 Adam Bergstein 341 Surabhi Gokte 286 Imre Gmelig Meijling 263 Alejandro Moreno 241 Samson Goddy 129 Shodipo Ayomide 122 Jim Jagielski 108 Esaya Jokonya 102

I’m sure we will all want to send our congratulations!

What’s next

The new term of the Drupal Association board starts November 1st. In the coming weeks, we will publish an update from the board with information introducing the 2020-2021 directors, updates for 2021 including strategic goals, and opportunities for the community to connect with the Board.  
 

ADCI Solutions: Drupal for e-Learning websites

Tue, 10/13/2020 - 03:00

Why Drupal is a suitable CMS for developing a distance learning website? What the e-learning website should have for its work? We're going to list the basic set of eLearning site features and ways to implement it on Drupal.

About this and much more you will learn from our website.

Read the article about Drupal and e-learning

Kristof De Jaeger: ActivityPub for Drupal

Mon, 10/12/2020 - 07:28

After a couple of weeks of coding and testing, I've tagged a first alpha release of the ActivityPub module for Drupal! It implements the protocol so that you can communicate with other Drupal sites or platforms which support ActivityPub. Remote accounts on for example Mastodon or Pixelfed can follow any user on a Drupal site now and read content, like posts and reply from their platform. It's only the tip of the iceberg of what's possible with AP, but the main focus at this point is discovery of content and users on remote platforms and performing typical social responses (reply, favorite, announce).

The core of the implementation uses Drupal plugins to map fields and content types to activity types. Being in alpha means that the interfaces will most likely change as bugs are fixed and new features will be implemented, but I'll document those when I tag a new version. For more information, installation and configuration, check the README which I will continue to update as well.

Main features
  • Enable ActivityPub per user, discovery via the Webfinger module
  • Map Activity types and properties to content types and create posts to send out to the Fediverse.
  • Create comments from Create activities from remote users to content
  • Accept follow requests, Undo (follow), Outbox, Inbox and followers endpoints
  • Send posts via drush or cron, with HttpSignature for authorization
Follow me!

Have an account on Mastodon, Pixelfed or Pleroma? Then you can follow me via @swentel@realize.be. Discovery probably works on most other platforms as well, but I haven't interacted with those yet, and I hope other people will download and start testing with those as well.