Available for new projects · Manchester, UK · Replies in 24h

Hand-coded websites & platforms that sell.

Eight years, 35+ clients. Websites, custom platforms and native iOS apps — designed, built and shipped by one developer, start to finish. No agency, no templates, no lock-in.

Six most recent launches

End of Play Golf · Johnson Homes · Pacemates
SoftLaunch Marketing · CJB Electrical · Top Bins

8

Years building

35+

Clients shipped

6

Most recent, shown below

100%

Hand-coded

<work> — index

35+ clients.
The six most recent.

Eight years of client work sits behind this page. These are the six newest — every one designed, built, tested and launched by me. Real businesses, real domains, real revenue running through them. Everything below is a screenshot of the live site.

01 End of Play Golf Brand site · cinematic scroll 2026 · Live 02 Johnson Homes Lettings platform · web + admin 2026 · Live 03 Pacemates Social platform · phase 2 in build 2026 · Live 04 SoftLaunch Marketing Studio site · DM-first enquiries 2026 · Live 05 CJB Electrical Trade site · real-time 3D 2026 · Live 06 Top Bins Betting game · web + native iOS 2026 · Live
01

Client build
Brand site

End of Play Golf — bespoke golf apparel

Eight pages of thin content,
rebuilt as one deliberate scroll.

End of Play design and manufacture bespoke clothing for golf clubs — Nairn, Sunningdale Heath, West Sussex, Royal Ascot, Farnham, Effingham. Hand-drawn artwork, made in the UK. Their old site had a problem: you couldn't actually see the product, and it weighed 15MB.

Rebuilt as a single cinematic scroll. The background interpolates through defined stops as you move down, so the page gets quieter and more serious the further in you go. The club-crest strip is tied to your scroll velocity — it accelerates, reverses, and settles to a drift when you stop.

Their crests were invisible on black, and inverting them turned a teal ship pink. So each mark's alpha channel is extracted and composited onto solid bone — a clean silhouette that keeps the exact shape of the club's identity.

The contact form became a three-question conversation in their own brand voice that hands off to WhatsApp with the brief already written. No Meta API, no per-conversation billing — a deep link, zero infrastructure.

Image payload15MB → 626KB (−96%)
Routes8 pages → 1 scroll, redirected
JavaScript~128KB gzipped, code-split
Console errors0 across all routes
Enquiry infraNone — no server, no fees
MotionGated at framework level
Scroll-linked motionAVIF / WebP pipelineWhatsApp pre-chat Reduced-motionSmoke-tested
Visit eopgolf.com
End of Play Golf — homepage hero, Your Vision Brought to Life
End of Play Golf — recent projects, the expanding club panels
End of Play Golf — the EOP x Nairn project story
End of Play Golf — branded three-question WhatsApp pre-chat

A counter once read “0% Bespoke Design” for a company whose entire proposition is bespoke design. Now the site fails to the truth, not to zero.

02

Client build
Lettings platform

Johnson Homes — Manchester

A family lettings business
that owns its whole platform.

A Manchester family has housed students since 1986 — Landlord of the Year 2024 and 2026, 5.0 on Google. They were renting their online presence from portals and agencies. They wanted to own it.

So I built the whole thing from a blank file. Group-size search, a custom-branded map pinning every home against every university, Matterport 3D tours on each property, a love-heart shortlist and one enquiry that covers a whole student group. No account, no friction.

Behind it sits the part clients never usually get: a control-room dashboard the family run themselves. Add and edit homes, work a leads inbox, flip statuses, get an email the second an enquiry lands. No developer needed, no portal bill, no spreadsheet.

TypeWebsite + agent platform
Front endHand-coded, framework-free
Back endFirebase · auth, data, alerts
Property toursMatterport 3D, every home
DeliveryBrand, build, SEO, QA, handover
OwnershipClient owns it outright
FirebaseInteractive mapAdmin dashboard Structured dataPrerenderedMobile-first
Visit johnsonhomes.co.uk

Client — David

★★★★★

“Sean has done a fantastic job designing and building our new website. We're absolutely delighted with it. Nothing has been too big an ask — he's such a talented coder. I've no hesitation in recommending Sean. If you need a website or app building — he's your man.”

David Johnson · Johnson Homes (Manchester) Ltd

Johnson Homes homepage — group-size search over the hero
Johnson Homes — interactive map showing every home against every university
Johnson Homes — property page with gallery, bills and 3D tour
Johnson Homes — shortlist, enquire about several homes at once
Johnson Homes — the agent dashboard the family run themselves

Public site and the agent dashboard behind it — screenshots of the live build.

03

Client build
Platform · phase 2

Pacemates — independent running clubs

Phase 2 was commissioned
two days after phase 1 went live.

The home of independent running clubs. Phase 1 shipped a live club directory — interactive map, club profiles, applications in under a minute — on a real database with accounts and email built in.

Phase 2 is in build now: a full social network. Profiles, ticketed events, Stripe payments, messaging, feeds and Strava integration. Same client, bigger build, two days after launch.

Phase 1Directory, map, accounts — live
Phase 2Social network — in build
BackendFirebase · auth + email
ComingEvents, Stripe, messaging, Strava
FirebaseInteractive mapAccounts & authStripe (phase 2)
Visit pacemates.net

Client — founder

★★★★★

“From idea to launch, the whole process was professional and delivered exactly what I envisioned. Excited to keep building PaceMates.”

Founder · Pacemates — phase 2 commissioned two days after launch

Pacemates — Find Your Pacemates landing screen
Pacemates — discover independent running clubs
Pacemates — a club profile page
Pacemates — the admin dashboard

Phase 1 is live. The social layer, events and messaging are the phase 2 build in progress.

04

Client build
Studio site

SoftLaunch Marketing — Manchester

One file. No forms.
Every enquiry lands as a DM.

A Manchester marketing studio — social media management, paid ads on Google and Meta, branding and strategy. They needed a site that looked as considered as the work they sell, and they needed it live quickly.

The entire site is one hand-written HTML file. No framework, no build step, no dependency to break in six months. It drops onto Cloudflare Pages as a folder and it's live in under a minute.

There is no contact form anywhere on it. Every enquiry route is a pre-composed Instagram DM — the visitor picks what they need and the message writes itself before the app even opens. No inbox to monitor, no spam, no backend to pay for. Shipped with a branded 404, security headers, cache rules and full metadata.

TypeMarketing studio site
BuildSingle file · no build step
EnquiriesPre-composed Instagram DM
InfrastructureNone — static, zero cost
Shipped with404, headers, cache, robots
Time to deployUnder a minute
Hand-written HTMLZero dependenciesDM-first enquiries Cloudflare PagesSecurity headers
Visit softlaunchmarketing.com
SoftLaunch Marketing — Give your business personality
SoftLaunch — what we do, the four services
SoftLaunch — how it works, three steps
SoftLaunch — the DM enquiry panel that composes the message for you

Thoughtful strategy, elevated design, measurable growth — and not a contact form in sight.

05

Client build
Real-time 3D

CJB Electrical — Manchester

Most tradesmen get a template.
This one got a GPU.

A local electrician's site, hand-coded from a blank file. And it isn't a video — it's live 3D running on the GPU. You launch in from space, a plug sparks into its socket, the door swings open and you fly through a wireframe house as the lights, sockets and fuse board switch on. Each room is a section of the site.

Scrolling scrubs a cinematic camera along a hand-plotted flight path — procedural geometry, refractive glass, filmic tone-mapping, bloom. It still performance-tiers for phones, falls back to a fast flat site, respects reduced-motion and ships full technical SEO.

RendererWebGL · Three.js
GeometryProcedural, no imported models
CameraScroll-scrubbed flight path
MaterialsPBR + refractive glass
MobilePerf-tiered + flat fallback
Three.jsCustom shadersPost-processing Reduced-motionTechnical SEO
Visit cjbelectrical.uk

Client

★★★★★

“Sean built the best electrician site in Manchester, exactly what I wanted — took all our Facebook reviews and photos himself and filled it with our content without us needing to do anything.”

CJB Electrical Ltd · Worsley, Salford

CJB Electrical — launching in from space
CJB Electrical — the door swings open
CJB Electrical — in the hallway, full-service solutions
CJB Electrical — in the kitchen, your local electrician

Live 3D on the GPU. Scroll scrubs the camera through the house — each room is a section of the site.

06

Client build
Web + native iOS

Top Bins — World Cup 2026

One odds engine.
Two platforms. Identical prices.

A full-stack fantasy betting game where mates predict every World Cup 2026 match, climb 50 ranks and fight over a weekly prize pot. Shipped as an installable web app and a native iOS app, both on one live backend.

Server-authoritative end to end. The deterministic odds engine is ported byte-for-byte between Swift and TypeScript, so both platforms quote exactly the same price. Every bet settles against live API-Football results inside idempotent Firestore transactions — with Stripe payments, a social feed, leaderboards and a penalty mini-game on top.

PlatformsWeb app + native iOS
LanguagesTypeScript + Swift
UIReact + SwiftUI
SettlementIdempotent Firestore transactions
PaymentsStripe (GBP)
OddsCustom deterministic engine
FirebaseStripeAPI-Football LeaderboardsSocial feed
Play at playtopbins.com
Top Bins — World Cup 2026 match list with live odds
Top Bins — the pick-your-corner penalty mini-game
Top Bins — leaderboard and the 50 ranks
Top Bins — the weekly prize pot

If the Swift and TypeScript engines ever disagreed by a penny, the build failed. They never disagreed.

<process> — one person, three steps

Brief to live, without
the agency circus.

01 /

The brief

A real conversation, not a form. We pin down what the build needs to do — win jobs, take bookings, capture leads — and I reply with a fixed quote within 24 hours.

02 /

Design in the browser

On your brand, mobile-first. You get a real working preview link early — not a static mock-up you have to imagine moving.

03 /

Launch & handover

Zero-downtime switch-over on your domain, SSL, redirects and SEO handled. You own everything — no monthly fees, no lock-in.

<pricing> — simple and honest

Every project quoted to fit.
Here's where it starts.

One-pager

From£1,200

  • Custom design & build, no template
  • Mobile-first & accessible
  • Enquiry route that pings you
  • Technical SEO & metadata

Custom platform

Quoted to fitLet's talk

  • Accounts, admin & databases
  • Bookings, payments, maps
  • Custom functionality, built for you
  • Performance tuned, you own it

iOS app

From£7,000

  • MVP in TestFlight from £3,000
  • Native Swift & SwiftUI
  • Backend, accounts & payments
  • App Store submission handled

Fixed quote inside 24 hours. No retainers, no monthly fees, no lock-in.

<lab> — my own products

Where the hard
problems get solved.

Client work pays for the hours. These are where the techniques come from.

Lab_01 · iOS

MTCHA

A social app for matcha people — feeds, profiles and photo sharing on a real-time cloud backend.

Social feedAccountsPush

Lab_02 · iOS

Beero

A session tracker that keeps the night honest — fast logging, live totals and a morning-after report.

SwiftUILocal-first data

Lab_03 · WebGL

A portfolio in pure 3D

A real-time 3D engine I hand-built to see how far a site could go: bloom, FXAA and chromatic-aberration post-processing. No frameworks, zero build step.

Three.jsCustom shadersNo build step

<contact> — three questions

Let's build
yours.

Answer three questions and I'll write the brief for you. Send it as a DM and you'll have a straight answer on price and timeline within 24 hours.

01 / What are you building?
02 / Rough budget?
03 / When do you need it?

Your brief

Pick an option above and your brief writes itself.
Send by email

Instagram doesn't allow pre-filled messages, so the brief is copied to your clipboard — paste it straight into the DM. Or send it by email and skip the app entirely.