Giving back to the community here are a series of Perch add-ons that extend the functionality of the CMS and aim to solve real world problems for end-users and developers alike.
The idea behind Red Finch is to provide a more recognisable name under which to release my open source Perch add-ons. It provides scope for future contributors much in the same way as the League of Packages. The core ethos is that all add-ons should be free, simple and fulfil a specific task that Perch alone cannot accomplish. The logo and colours were a fun excersise in developing a brand from scratch.
Building on one of my more popular add-ons the event logger provides a running list of user activity within Perch.
Using the built in events API, the system provides an abstraction layer that means the diverse events (from uploading images, to editing a category name) as well as handling the customisable templates produced by developers are transformed into a standard format for logging.
For a more detailed write-up of the goals and decisions (including code examples) see my blog post here.
The event detail view provides a clean way of showing content changes. The user, event type and other meta data is displayed clearly at the top while the template updates are shown in full below. A syntax highlighter is used to help non-developers to see the written content.
A history view tracks changes over time, giving editors a great insight into how the content has evolved. For auditing purposes it can reveal when a certain item has been added to a page and by who.
The image optimiser was developed to solve the problem of compression user uploaded images using open source software (jpegoptim, optipng, gifsicle) and a scheduled task system to track uploaded images and compress them.
Developers can configure the compression levels within the CMS interface and the entire experience is hidden from end-users - meeting a key development goal.
For a more in-depth article see my post here.
An app focused on optimisation should not affect a user's workflow. All image uploads are tracked using the native Perch events system and scheduled for later processing. Garbage collection tasks prevent the UI from being cluttered with completed tasks.
Those granted access can completely customise how optimisation occurs. Tools can be toggled and the level of compression can be set individually between image types. These options are passed through to the underlying system libraries.
It is a personal belief that all released software should come with documentation. With my own add-ons I took the opportunity to build a dedicated page listing available releases and providing plenty of information to get other developers started.
The page is built on Jekyll and GitHub pages, with the design being built using the Bulma CSS framework.