My projects


cfimp is a simple but powerful CLI tool for importing/updating CSV data in the Contentful headless CMS.


Lucid.js is a reactive, component-based JavaScript framework for building apps. It's unopinionated, lightweight and very easy to use.

Data Tree

DataTree is a customisable, JavaScript-powered tree visualisation tool. Data can be in XML or JSON format, either fed directly or fetched from a web service.


FieldState is a visual state handler for form fields where the required/available state depends on other factors, e.g. the values/selections of other fields.

Lightbox Lib

LightboxLib is a JavaScript lightbox library with rich support for different types of modal dialog, loading spinners/bars, popup carousels and more.


J-Path is a tiny, fast library for traversing JSON data structures with XPath expressions.


screenROCK is a Chrome Extension and video platform for recording screen and audio, supporting annotation tools and stamps. It has an API for embedding recorded videos.

One Video

One Video is a harmonised video player API providing interaction with embedded YouTube, Vimeo and native HTML5 video players.

Simple Store Locator

Simple Store Locator is a fully contained, Google Maps-based interface for showing locations on a map. It supports geo-position detection, directions and more.

Page Wizard

Page Wizard is a customisable wizard tool to guide users around the areas and features of the current web page, with accompanying text for each step.


Chartify is a PHP-based chart and graph generator, supporting pie (well, doughnut) charts, bar charts and line graphs.

hang help

hang help is a video-based web page support tool allowing users to create and upload video which can then be integrated into web page as support content.

CSS Clock

CSS Clock is a tool for generating CSS-powered clocks, either working clocks showing the current time, or clocks frozen at a specific time.


Spellcheckr is a fully-featured, JavaScript-powered spellchecker plugin that can be integrated into textarea elements.


Gocek is a lightweight scroll-detection library for handling events that should fire when elements scroll into or out of view, either partially or completely.

Wrap Carousel

Wrap Carousel is a CSS-animated, vanilla JavaScript-powered accordion carousel that wraps slides as they fall off one edge and reappear on the other.

Tabular Data Convertor

Tabular Data Convertor is a suite for converting tabular (e.g. spreadsheet-derived) data into XML, JSON or SQL.


HTMLON is a JavaScript-powered rich text editor in the vein of (but much simpler and smaller than) Tiny MCE.