Portfolio
Eleven builds, and what each one actually needed.
A selection of recent work from Toronto: WordPress themes on Sage 10, Next.js applications, e-commerce, and a Laravel platform behind several national campaigns. Some were designed by me, some converted from a Toronto marketing agency’s Figma files.

WordPress · Sage 10 · WooCommerce
By Jenine Saunders
A wellness practice with a clinic side and a retail side, built as one Sage 10 theme with Tailwind and ACF. The shop runs on WooCommerce with the product, cart and checkout templates rebuilt to match the design rather than styled on top of the defaults. A scheduled job runs daily to keep products in sync with the practice’s Momence booking platform.
Sage 10
theme framework
WooCommerce
custom templates
Daily
Momence sync
Design · WordPress · Ongoing SEO
Kore Design+Build
A Toronto design-build firm needing one site to carry both halves of the business: the architectural design work and the construction delivery. I designed it in Figma, then built it as a Sage 10 theme with ACF for the project portfolio and Carbon Fields for global settings and custom blocks. The whole homepage loads in 22 requests.
22
requests, full homepage
1.9 MB
total page weight
Ongoing
SEO and content


Laravel · Next.js · Multi-tenant API
Campaign Forms Platform
A Toronto marketing agency runs national campaigns that each need their own capture site, all reporting into one place. I maintain the Laravel dashboard behind them and designed and built its lead-capture layer: a single section serving multiple front ends through one shared API, using JSON fields so each campaign defines its own data shape without a schema migration.
1
shared leads API
2
front ends served
JSON
flexible field schema
Design to build
Seven of these started life as a Figma file.
Converting a professional design into a theme that keeps the type scale, spacing rhythm and component structure intact is its own discipline. It is most of what I do.

The Evo Sports schedule page. The data came from the agency back end; matching it to the design across every age group and term was the hard part.







