Convert SVG strokes to outlined fills as a post-export process
Spaceman
Manage monorepo workspaces with a prompt-based CLI
Phomemo CLI
Node CLI, print server and browser client for the Phomemo mini printer
Vue Class Store
Universal Vue stores you write once and use anywhere
Nuxt Layers Utils
Simplify and consolidate Nuxt layers paths' configuration
State Machine
A powerful yet simply-configured JavaScript finite-state machine
Alias HQ
The end-to-end solution for migrating to and using path aliases
Vuex Pathify
Vue / Vuex plugin providing a unified path syntax to Vuex stores
Nuxt Areas
Scalable folder management for large Nuxt 2 projects
Extension Bus
Universal message bus for web extensions
WXT Pages
File-system based routing for WXT browser extensions
Nuxt Content Assets
Enable locally-located assets in Nuxt Content
WXT Layers
Nuxt-like layers functionality for WXT browser extensions
Axios Actions
Bundle endpoints as callable, reusable services
I started out in Animation and Flash, which taught me how things should feel. I've spent 10 years building web applications, which taught me how things should work.
Now I combine both to create eye-catching and satisfying experiences:
Right now I specialise in UI architecture, component libraries, and design systems – but I'm just as comfortable working across the full application stack.
I'm available for contract work or permanent roles where I get to work across design, product, and engineering.