Stephen Lewis's Projects
ExpressionEngine 2 package and datatype builder.
Wrapper module for small admin scripts that don't warrant a full-blown add-on.
Converts an Amazon MasterCard CSV statement to a format that FreeAgent can understand.
The DonaldIpsum API.
Conditionally apply Laravel validation rules, even when you don't have access to the validator instance.
Provides additional information about the author of a Channel entry.
Generates a random avatar for any given identifier. Always generates the same avatar for the same identifier.
Avatars as a service
The world's simplest base model, with support for custom getters and setters.
A node.js helper library for accessing Brett Terpstra's "Titlecase" API.
EE meets S3. Seamlessly integrate Amazon S3 with your ExpressionEngine website.
Effortlessly subscribe members of your site to Campaign Monitor mailing lists.
Extension demonstrating how to use the Campaigner `campaigner_subscribe_start` hook, available in Campaigner v4.
ExpressionEngine extension which makes Campaigner play nicely with "trigger" member fields containing multiple values.
Move along, nothing to see here...
⚡️ Speed up your Craft plugin tests.
Add breadcrumbs to your ExpressionEngine site in minutes. Super-simple, endlessly configurable.
Basic implementations of common data structures.
Boxes for dev
Gulp docker image, for local development.
A Docker-based LEMP stack, for use on macOS
MySQL Dockerfile, for local development.
Nginx Dockerfile, for local development.
PHP Dockerfile, for local development.
Super-simple NodeJS client for the DonaldIpsum API.
The official @DonaldIpsum Twitter bot. Accept no imitations. There are none.
Bat configuration files and aliases, managed by GNU Stow.
Elixir dotfiles, managed by GNU Stow.
FZF dotfiles, managed by GNU Stow.