Developers using Fork CMS are constantly looking on how to improve the cms. Ideas such as a marketplace for modules & themes have been on the roadmap for quite a while. The extensions page on the Fork CMS website has grown a lot and lacks several useful features. A revamped Fork CMS extensions app would certainly play a big part in the future of Fork CMS.
The challenge: In order to build a new & maintainable marketplace or registry (think: npm, packagist, ...), we would need to create a dedicated webapplication that is able to replace the extensions page on the website. Extracting the functionality of the Fork CMS website to smaller and maintainable webapps is also something we did for the upcoming new documentation website (coming soon).
Building a registry
To speed up the registry development process and improve collaboration, it was time for a hackathon! A hackathon is a creativity (not to mention beer and pizza) fuelled code fest. On april 25th, we gathered in the Sumocoders offices in Ghent. On Slack, we already discussed the basic features that were needed to build an open-source community-based Fork CMS registry for modules and themes:
- Visitor can easily browse through all the modules and themes available for Fork CMS.
- Developers will be able to login using Github.
- Easy flow for a logged in user to add a new module or theme based on a github repository. We can fetch some data directly from github such as releases & tags, the readme, but also allow the user to upload additional screenshots.
- A visually attractive design and frontend.
- Search functionality with different weights for title, readme and author.
- Register new Github webhooks and listen for incoming calls when a new module or theme release is made.
- All modules & themes in the registry are free. We currently have no plans to offer paid modules.
We chose to develop this registry app with Silex, a micro-framework based on Symfony2 components. Because Fork CMS already uses a lot of these Symfony2 components, it easy to get started without having prior knowledge of Silex. Wouter Sioen gave a quick introduction of Silex and went over the tasks, and then we could dive in and start writing code. At the end of the evening, we managed to code most of the essential features. Some time will be spent in the future to finish everything, make a great frontend UI and test the system thoroughly. A hackathon without pizza and beer is no real hackathon, so fortunately we could count on Sumocoders to provide delicious pizza and drinks during the hackaton. A big thanks!
Are you interested in contributing to Fork CMS? Do you want to participate in events like these? Don't forget to join our Fork CMS Slack channel.