Projects

Below you’ll find a list of all of my Xojo projects worth sharing. They’re free but supplied on an “as-is” basis with some projects being more feature complete than others. They’re listed in alphabetical order.



Aoife A rich, production-ready, command line static site generator. Supports HTML and Markdown content. It has a comprehensive theme engine for customisation and supports per-post custom data in the form of JSON frontmatter. I build all of my sites with it. Also the name of my eldest daughter.


Chipmunk My attempt at porting the similarly named 2D rigid body physics C library to Xojo.


DICOMKit Open source module for parsing and manipulating medical images (i.e. DICOM files). Works on all platforms supported by Xojo (i.e. macOS, Linux, Windows, iOS and the Raspberry Pi). Can convert the images to Xojo Picture objects. Currently only supports images stored in an uncompressed format.


dk2image A simple command line tool using DICOMKit that converts a DICOM file to an image file.


FGScopeBar A canvas subclass providing a drop-in control to mimic the scope bar seen on macOS (e.g. in the Finder when searching). Retina-ready.


FGSourceList A tree view / source list sidebar control. Supports item badges, sections and nesting. Interestingly, this was the first control I ever sold and the first income I ever made online.


FGThumbnailCanvas A Retina-ready drop-in canvas subclass that displays image thumbnails (modelled on the iPhoto interface).


HTMLEncode A Xojo module for encoding / decoding HTML entities.


Lex A lexical analyzer module for Xojo. It takes text and splits it into tokens based on regular expressions. Can be used in conjunction with a parser to form the frontend of a compiler for creating your own programming language.


OSFolder A Xojo module intended to be used as a replacement for the built-in SpecialFolder module that returns new framework FolderItems (xojo.IO.FolderItem).


Rainbow A module for simplifying colourising text in console applications. Tested on macOS. Should work on Linux. Not sure about Windows.