12. Use Wagtail CMS
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