Six projects, two years. Brands, websites and the software behind them - each one briefed, designed, built and locked down by the same two people.

A brand built from nothing

A company that had outgrown its first logo and its first website at the same time. We started from the name and worked outward - a mark, a type system, a palette with rules attached - then built the site on the same grid.

  • Brand & website
  • 2026
Open the case: A brand built from nothing

Monday mornings, back

Every Monday someone spent the morning moving numbers between three systems by hand. Now a pipeline does it before anyone is in, with a person signing off at the one step that needs judgement.

  • AI automation
  • 2026
Open the case: Monday mornings, back

One tool, three teams

A shared spreadsheet had become the system of record for three departments. We replaced it with a small web app built around how the teams actually work - roles, validation on every field, and a history of who changed what.

  • Web app
  • 2025
Open the case: One tool, three teams

The hole in the login

A growing product wanted a second opinion on its sign-in before a bigger launch. We found a weakness in how sessions were handled, walked the team through it, then rebuilt login with rate limiting and audit logging in place.

  • Security review
  • 2025
Open the case: The hole in the login

One page, one job

Paid traffic was landing on a homepage built to say everything, and most visitors left without doing anything. We built one page around one action, with proof placed exactly where the doubts come up.

  • Landing page
  • 2025
Open the case: One page, one job

The one people send on

A launch that needed to be seen rather than skimmed. Scroll-driven motion on a type system with room to perform - and a performance budget set before the first animation, so it still loads fast on a phone.

  • Motion site
  • 2026
Open the case: The one people send on

(01)Brand & website · 2026

A brand built from nothing

...and a site that finally matches the company behind it.

Client
Client name
Year
2026
Services
Brand identity, website
Built with
Figma, GSAP, Node.js

01The brief

A company that had outgrown its first logo and its first website at the same time. It needed one identity it could grow into, and a site that stopped apologising for itself.

02What we did

Started from the name and worked outward: a mark, a type system and a palette with rules attached, then a site built on the same grid. One team, so nothing was lost between the brand guide and the build.

03Where it landed

A brand that holds together from the business card to the checkout page, and a site the team can edit without breaking it.

Back to the work

(02)AI automation · 2026

Monday mornings, back

A weekly copy and paste job, running start to finish on its own.

Client
Client name
Year
2026
Services
Workflow automation
Built with
Python, Node.js

01The brief

Every Monday someone spent the morning moving numbers between three systems by hand. It was slow, it was dull, and once a month it was wrong.

02What we did

Mapped the job step by step, then handed the repetitive parts to an automated pipeline - with a person signing off at the one point that needs judgement, and a log of every run.

03Where it landed

The report is ready before anyone is in. The person who used to build it now checks it instead.

Back to the work

(03)Web app · 2025

One tool, three teams

One tool in place of the spreadsheet three teams kept breaking.

Client
Client name
Year
2025
Services
Web application
Built with
Node.js

01The brief

A shared spreadsheet had become the system of record for three departments. Every edit risked someone else's formulas, and nobody trusted the totals.

02What we did

A small web app built around how the teams actually work: roles and permissions, validation on every field, and a history of who changed what. Nothing exotic under it, so it is easy to hand over.

03Where it landed

One source of truth, with access that matches each team's job - and a spreadsheet that has quietly been retired.

Back to the work

(04)Security review · 2025

The hole in the login

Found it, showed them, then rebuilt it properly.

Client
Client name
Year
2025
Services
Security review, auth rebuild
Built with
Node.js

01The brief

A growing product wanted a second opinion on its authentication before a bigger launch put more weight on it.

02What we did

Reviewed the whole sign-in flow, reproduced a weakness in how sessions were handled and walked the team through it. Then rebuilt login, sessions and password reset with rate limiting and audit logging in place.

03Where it landed

A login that stands up to the obvious attacks and the less obvious ones, and a written threat model the team keeps using.

Back to the work

(05)Landing page · 2025

One page, one job

Turn clicks into booked calls, and nothing else.

Client
Client name
Year
2025
Services
Landing page, copy
Built with
HTML, CSS, GSAP

01The brief

Paid traffic was landing on a homepage built to say everything, and most visitors left without doing anything.

02What we did

One page built around one action. Copy cut to what a first-time visitor needs, proof placed where the doubts come up, and a booking flow that works one-thumbed on a phone.

03Where it landed

A page that asks for one thing and makes it easy to say yes.

Back to the work

(06)Motion site · 2026

The one people send on

The kind of site people send to a friend. Still quick on a phone.

Client
Client name
Year
2026
Services
Website, motion
Built with
GSAP, Lenis

01The brief

A launch that needed to be seen rather than skimmed, for an audience that has scrolled past every template going.

02What we did

Scroll-driven motion on a type system with room to perform - and a performance budget set before the first animation, with every effect falling back cleanly when motion is turned down.

03Where it landed

A site that gets passed around for how it feels, and still loads fast on a phone.

Back to the work