12. Use Wagtail as Bedrock’s CMS¶
Date: 2024-04-15
Status¶
Accepted
Context¶
As Bedrock evolves, expanding the number of content-managed pages will give us greater agility. We needed to evaluate our options and pick a best-fit solution.
Decision¶
We previously used Contentful as a headless CMS, but have decided (https://docs.google.com/document/d/1icqCOtCIMhducdrlKKYRBfGsbwsyrFTUH1wvjVldbKo/edit) to move to Wagtail CMS (wagtail.org), which we’ll integrate with the Bedrock codebase (https://docs.google.com/document/d/1aQc-FRhI69XQwoaXmvbp9s7zy8UaCVQhZyF6RGTt4Lk/edit)
Consequences¶
The integration of a Django-based CMS into the Bedrock codebase will allow for a significantly faster and clearer developer experience when creating content-managed pages, plus the option (over time) for members of the org to create new pages based on CMS templates with no development needed, unless the pages have new designs.
There is a significant amount of engineering work needed, including:
We’ll need to integrate Wagtail into Bedrock, which first necessitates refactoring away our bespoke i18n mechanism and using Django’s own i18n logic.
We’ll need to develop workflows around adding Wagtail-managed pages that the whole team understands
We’ll need to integrate Wagtail with our chosen localization vendor, which requires a custom integration
Because we have stopped using Contentful as a source of data, we have the last exported state of the data in our DB, and will need to migrate pages that previously used Contentful to the new CMS