Projects
A curated archive of production applications, technical experiments, and automated tools. Source available on GitHub and CodePen.
An open-source utility suite addressing native limitations in Butter CMS. Features custom high-performance cross-page content searching and a roadmap for automated HTML sanitization to preserve design integrity. Designed for and validated by production content teams to streamline editorial workflows.
An experimental exploration into Storybook's internal messaging APIs. Designed to provide real-time control over CSS custom properties within the Storybook manager. This project served as a deep dive into state synchronization between the manager and preview frames.
A diagnostic utility designed to verify browser detection of system-level accessibility preferences. It provides an at-a-glance validation of media queries such as reduced motion, high contrast, and colour schemes to streamline cross-device QA testing.
Grassverse NFT
A freelance commercial project with pre-existing designs delivering community utility for the Grassverse NFT ecosystem. I integrated multiple OpenSea API endpoints to aggregate ownership data, enabling NFT holders to identify and connect with members sharing matching asset traits.
An interactive Command Line Interface (CLI) business card distributed via NPM. This project demonstrates a creative approach to personal branding and an understanding of terminal-based user experiences and package distribution.
Mad Parrot Crew NFT
A freelance commercial delivery with pre-existing designs for the Mad Parrot Crew NFT ecosystem. Architected a fully responsive minting platform using Nuxt 2 and Web3 technologies. Managed complex frontend state and successfully navigated eight major design pivots to deliver a high-performance launch experience for the client.
An automated utility designed to manage and reduce Twitter account bloat. Built with TypeScript and deployed on Heroku, it utilized scheduled CRON tasks and the Twitter API to maintain account hygiene through automated content pruning.
A lightweight JavaScript experiment that synchronizes web application themes with OS-level user preferences. It utilizes the matchMedia API to detect and react to system changes in real-time, ensuring a consistent and accessible user experience.
An open-source diagnostic tool and browser extension designed to surface accessibility concerns through visual feedback. Recognized by the global developer community and featured at international tech conferences, it serves as both a production-ready utility and an educational resource for mastering accessible markup.
A lightweight, library-agnostic tooltip library built with pure SCSS. Engineered for high performance and zero-dependency environments, it provides an accessible, fully customizable solution for surfacing contextual information without the overhead of JavaScript-heavy alternatives.
An interactive product configurator demonstrating dynamic asset colourisation. I utilized SVG masking and CSS blend modes to solve the 'flat colour' limitation, preserving realistic specular highlights and shadows to maintain the vehicle's metallic finish across the entire colour spectrum.
A technical exercise in mathematical CSS. This project involved recreatng the complex geometry of the Union Jack with pixel-perfect accuracy, utilizing advanced SCSS calculations to maintain correct proportions across all scales.
A commercial project for a boutique shop-fitting firm. I delivered a high-performance static site with a CAD-inspired aesthetic, integrating Prismic CMS to allow for seamless content management and optimized SEO.
An exploration into CSS render performance and the box-shadow property. This 'Single-Div' challenge demonstrates the ability to create complex visual assets using purely declarative code without external assets or extra DOM nodes.
The current iteration of my personal corner of the web. This site acts as a living history of my development journey, evolving through multiple refactors to stay aligned with modern performance standards and my own growth as a developer.