Red Finch Add-ons

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.

Red Finch bird logo

Red Finch

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.

Index page of the event logger listing recent activity

Event Logger

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.

Zoomed view of the code viewer within an event

A deep dive into content changes

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.

Example of the history view showing differences between events

A look back in time

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.

List of optimisation tasks that have been completed

Image Optimiser

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.

List of the scheduled task operations showing successes and warnings

Performance through-and-through

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.

Zoomed in view of the options for jpegoptim

Fully configurable

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.

Full screen view of the Red Finch home page

Providing Documentation

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.