Why Decoupled Drupal?
Open Social leveraged the technology and community of Drupal to kick-start its development and become a top open source Drupal distribution choice for online communities.
After many fruitful years, we have reached the stage where it’s time for the next step. A change in architecture is needed to help us anticipate future customer needs and open up our platforms for easier integrations with other systems.
To accommodate those new requirements we have decided to move to a headless or decoupled architecture. We’ve spent a lot of time in our preparation and are happy with the start we’re now making.
So what does headless or decoupled mean exactly? It means that the user-interface layer or front-end, which is referred to as the “head”, is decoupled from the back-end data repository and functions known as the “body”.
The Advantages of Decoupled Drupal
A decoupled system allows us to make changes on the front-end without affecting the back-end data.
From a user experience perspective, a decoupled setup enables community members to interact with different content on a single page without having to navigate away through page-based navigation.
Other advantages that Decoupled Drupal include:
- Independent development: We can develop specific features for either the front-end or back-end depending on our needs without working on both. This saves time and resources.
- Reduction of barriers to adopting new technologies: Without coupling the frontend with the backend, it is easier to adapt to new technologies.
- It opens us up to more integrations and external channels: With data being available through APIs we can serve a wider range of channels and integrations.
- It makes it easier to recruit new talent: Switching from a Drupal-only platform to other, more popular, frameworks such as React will allow us to more easily recruit developers in the future as we expand and scale up.
Giving Back for Sustainability
Open Social has benefited enormously from the Drupal community. Working with thousands of developers in the community from all over the world has been an incredibly rewarding process of giving and taking. Software projects may grow to enormous sizes over their existence. For closed source projects it can happen that parts of the codebase are not touched in a long time. When changes need to be made to these older parts of a project, significant effort may be required to bring the code up to standards that are continuously evolving.
In contrast, by leveraging code from the open source community the maintenance burden can be shared. By utilizing software that is not used by just a single organization but by many, software development becomes more sustainable:
- Having a lot of eyes on the code and fixing bugs regularly leads to improvement and a stronger code base.
- Continual code reviews ensure your software meets even better standards.
- Experienced community members share their ideas, best practices, and alternative approaches. The different use cases across organizations help reveal pitfalls and highlight required flexibility for future improvements.
- The Drupal community has even incentivized the review process. Your code gets reviewed and approved quicker when you review other projects.
Open Social developers regularly give back to the community by contributing to other projects. Some more recent ones are:
- Views Bulk Operations
- Configuration Update Manager, and
One of our developers rightfully said:
“…the Drupal community shows that open source software is about so much more than just writing code. Every day I am surprised at how others build upon Open Social providing the technology with a life of its own.”
Open Social’s Contribution to OAuth2
OAuth2 is the industry standard for authenticating third-party applications with existing websites. It ensures that users and community owners are in charge of what applications can do with their data. Drupal’s existing OAuth2 implementations did not quite align with Open Social’s third-party-focused model. It was instead focused on serving projects where the decoupled front end was a first-party application.
When we outlined the gaps we saw in the existing solutions, the maintainers of the simple_oauth module agreed to work on a new major version that addresses those issues. By leveraging the existing work, we do not have to start from scratch. Moreover, we avoid a split in the community. In contributing to the existing module, we can ensure it works for Open Social and the wider Drupal community.
As a result, more projects use the OAuth2 implementation, making it easier to catch and fix any problems before they become more serious.
As part of the work Open Social will be doing on the simple_oauth module, we will be requesting a professional security audit and penetration test to ensure that our implementation matches the OAuth2 spec and the usage within Drupal is secure.
Open Social has recognized the potential of open source software and we want to share this potential with you! Now is the time to become a community with Open Social.