Drupal recently released a new set of foundational modules which can improve Drupal development and Drupal’s workflow. The modules range from full-site preview, user experience improvements, auditability, multi site content staging, content staging and more. Here’s a few tips and examples on improving your overall drupal development workflow:
When to use these drupal modules
Here’s when and why you should use these modules for your drupal development projects.
Coss site content staging – You may want to synchronize content from one site to another. The first website can be a staging site where your content editors make certain changes and the second one can be the live production site. Content changes can be previewed on the stage site and then published on the second website.
Content branching – If you want to launch a new product you might want to create a new version of your site with a section dedicated to featuring your new product. With this new section you can introduce new menu items, upgrade pages and introduce new pages.
Previewing your website – When building a new section on your site, you’ll want to preview it before going live with it – this is content staging on a single site.
Offline browse and publish – Sites should be functional even in offline mode and record any forms or changes – when the connection is restored everything can be syncronized.
Content recovery – People often delete things they really didn’t want to delete, you should give users the ability to recover any content that has been deleted.
Audit logs – Certain companies or organisations may want to have all content revisions to be logged in order to be reviewed. Certain revisions or actions can be linked to specific users, thus making employees accountable for their actions within the content management system.
Drupal development technical details
The cases above have some similar traits:
- Content needs to be synchronized between two spaces – from site to site or from backend to frontend
- Revision history is kept for all changes
- Content revision conflicts are tracked
These features started off as a single module called Deploy. Nowadays Drupal development makes use of a large number of different modules:
- RELAXed Web Services
Multiversion for Drupal development
The Multiversion module keeps track of any conflicts in the revision tree, introduces the concept of parent revisions and adds revision support for all content entities built in Drupal, not just block content and nodes.
Replication module for drupal development
The replication module is built on top of the multiversion module – it will help users with revision informations in order to determine which revisions are missing for a certain location. This model also allows drupal developer to replicate content between a source and a target location.
Workspace for drupal development
This light module allows full site previews and single site content staging. The user interface allows your average drupal developer to create special workspaces and to switch between them as needed.
RELAXed Web Services
The RELAXed Web Services module allows cross-website content staging. This is a more extensive REST API for Drupal development with full support for UUIDs, parent revisions, file attachments and translations. These features are essential for content staging.
Deploy module for Drupal development
Before the release of Drupal 8, the Deploy module took care of everything related to content staging – top to bottom. After Drupal 8’s release, Deploy was rewritten to provide a user interface on top of the Workspace and Replication modules. This user interface allows your average drupal developer to manage content deployments between different workspaces on a single website or across multiple websites.
The Trash module is used to restore content related entities marked as deleted. It basically works like a recycle bin, displaying all entities from all supported content types where the default revision is flagged as deleted.
Synchronizing your websites with an API
If a Drupal website has RELAXed Web Services installed and enabled, it will behave and look like the REST API from CouchDB. This allows a drupal developer to use CouchDB tools such as PouchDB.
All of these great improvements that can boost your drupal development workflow, effectively allowing you to create better products faster. Check them out!