To give back to the community of OSS, I decided to contribute to the very helpful and popular plugin, Architect.
As we’ve blogged about before, CraftCMS is our Content Management System of choice at Extreme. As a Craft Partner, we’re always looking at ways to improve our efficiency with the software.
Part of our custom bootstrapping process for new website builds relies on the ability to add structured data into an empty CraftCMS database depending on functional requirements of the project.
Architect gives us the ability to import & export JSON from an existing CraftCMS installation; it has been key to us being able to automate our processes. We’re also able to utilise the tool to quickly import elements from our internal component library. Without Architect, this would be time-consuming manual task.
A desirable missing feature…
CraftCMS has a feature which lets you interact with it via a CLI (Command Line Interface) which, despite looking confusing, is very helpful if you want to run automated tasks.
As shown in the screenshot, you can see a note that running “update” with the Architect plugin will only work on fields at this time. Only working in this part of the CMS data is quite limiting, and from a selfish point of view, we often need more control than this.
So, rather than contributing to the project by working on an existing issue, I’ve been working on a Pull Request for a brand new feature that will hopefully be useful to other developers.
As it’s quite a large feature and getting the project up and running in my local development environment was a bit more work than I expected so I wasn’t able to submit a fully finished PR. Sometimes development is like this and unexpected blockers appear which slow you down — it’s not all plain sailing!
By the end of the month, I hope that I will be able to finish the update tool to work with all content models including sections, categories, global variables users and many more. This will give us much more flexibility to use Architect to create and change data without having to directly use the interface within the CMS. The result of which will mean a more efficient and reliable method of setting up a project ready for development of a new website.