Skip to content

Portfolio

Work that shipped, and builds that show the method.

Client projects are marked as client work. Anything labelled an example build is a demonstration of how a system fits together, not a past engagement. We do not dress one up as the other.

Showing 5 of 5 projects.

Screenshot of the TNT Masonry and Pavers websiteClient work

TNT Masonry and Pavers

2025

Masonry and hardscaping

A hardscaping contractor site built around an interactive 3D paver cross section that explains what customers are actually paying for.

Challenge

Hardscaping is sold on craftsmanship that nobody can see once the job is finished. The base layers under a patio are the difference between work that lasts and work that sinks, and no competitor site explained any of it.

Solution

A static, dependency free build with a cinematic hero and an interactive cross section of a paver installation. Five labelled layers, each one clickable, each one explaining what it does. Real project photography throughout, a sticky call and estimate bar on mobile, and structured data for contractor, service and FAQ markup.

  • Website development
  • Brand identity
  • Technical SEO
Static HTML, CSS design system, vanilla JavaScript
Screenshot of the SpudCraft websiteClient work

SpudCraft

2025

Food truck and hospitality

A seasonal food truck site with a build your own ordering flow and a location that changes with the calendar.

Challenge

The truck moves. Old Orchard Beach through the summer season, Portland the rest of the year. Customers kept turning up at the wrong place, and the menu was a photo of a chalkboard.

Solution

A statically prerendered Next.js site where location and season are data, not hardcoded copy. A build your own flow walks customers through the menu, and every page is prerendered so it loads instantly on a phone in a car park with one bar of signal.

  • Website development
  • Menu system
  • Location and hours
Next.js, React, TypeScript, Tailwind CSS
Screenshot of the Soleil Beauty Bar websiteClient work

Soleil Beauty Bar

2025

Beauty and personal care

A salon site with services, packages, a retail shop section and a first visit guide, all editable by the owner.

Challenge

Prices, hours and service lists changed constantly, and every change meant waiting on a developer. The old site could not keep up with the business.

Solution

A generated static site where all the content the owner touches lives in one plain data file. Prices, hours and services are edited in one place and the whole site rebuilds. Fast to load, nothing to break, and no monthly platform fee for the privilege.

  • Website development
  • Service and package pages
  • Retail shop section
Static site generator, Vercel hostingVisit site, opens in a new tab
Example build

Connected Commerce System

Example build

Retail and appointments

A demonstration of the full Shopify system: online store, booking, in person POS and inventory all writing to the same records.

Challenge

A typical studio runs a website, a separate booking tool, a card reader and a spreadsheet for stock. Four systems, four sets of numbers, and none of them agree at the end of the month.

Solution

One Shopify store carries products and payments. Cowlendar handles appointments inside the same platform. Shopify POS takes in person sales that write back to the same inventory and customer records. A sale on the floor and a sale online are the same event in the same system.

  • Shopify store
  • Cowlendar booking
  • Shopify POS
  • Inventory sync
Shopify, Cowlendar, Shopify POS
Example build

Speed to Lead Engine

Example build

Home services

A demonstration automation: form fill to CRM to instant notification to follow up sequence to booked appointment.

Challenge

A contractor on a roof cannot answer the phone. The lead calls the next name on the list. By evening the enquiry is cold and the quote never gets sent.

Solution

Every enquiry, whether it comes from a form or a missed call, lands in one pipeline and triggers an instant reply. An AI agent handles the opening conversation over text, asks the qualifying questions and books the ones that fit. Estimates get chased on a schedule and old leads get reactivated in batches.

  • CRM pipeline
  • Missed call text back
  • Follow up sequences
  • AI booking agent
CRM, SMS, calendar and AI agent workflows

On results claims

You will notice there are no percentage lifts or revenue figures on this page. That is deliberate. Numbers only go up here once they have been verified against the client analytics, and attributing a business result to one website change honestly is harder than most agency case studies admit. When we have a figure we can stand behind, it will appear with the context that makes it meaningful.