01
Small site
Starting price
A trade or a one-person business that needs a real address on the internet instead of a Facebook page. You know what you do, you can say it in five pages, and you want people to phone you.
3 to 6 pages
- Every brand colour measured for contrast before I design with it. Anything that fails as text gets split into a fill-only token plus a darker text-safe one. Solar DNA's orange #FE9700 measured 2.18:1 as text, so it became fill-only and #AB6600 at 4.53:1 carried the words.
- Astro 5, Tailwind 4, vanilla JavaScript. No UI framework, no page builder, no plugin bloat.
- Fonts self-hosted through Fontsource. Images run through astro:assets and sharp.
- One contact form, fields matched to what you actually collect, with an error message that appears when the form fails.
- A WhatsApp enquiry button in WhatsApp's own brand green, using WhatsApp's exact logo geometry.
- Checked in headless Chrome at 320, 390, 768 and 1440 for horizontal overflow. The built output is what I test, not the source.
- Deployed to Cloud Run, europe-west1. I hand you the URL.
Ask about Small site 02
Full site
Starting price
An established business with several services, real photography or a brand book, and enough to say that one page won't hold it. Both revamps I've done landed here: Solar DNA and Wilton Plumbing.
8 to 14 pages
- Everything in the small site.
- A colour and type system built from your existing brand, not around it. On Solar DNA I scraped their live site for the exact hex codes rather than eyeballing screenshots, and kept Fjalla One and Source Sans 3.
- Your own photography downloaded and self-hosted, so nothing on your site depends on someone else's server staying up.
- Service pages, a gallery with a lightbox, and your FAQs consolidated into one set. Wilton Plumbing had scattered, inconsistent per-page FAQs. They became one global five-question FAQ.
- Contrast pixel-sampled from the rendered page in Puppeteer, not calculated from the CSS and hoped for.
- A video hero if you want one: poster paints first, preload="none", 1280x720 above 768px and 640x360 below, and no video request at all under prefers-reduced-motion or Save-Data.
- Old bugs fixed rather than carried across. On Solar DNA the form error box could never appear, because only its class was toggled and not its hidden attribute.
Ask about Full site 03
Big build
Starting price
A firm with a company profile, a long service list and a project history that all has to go online without being flattened into three bullet points. Construction, property, manufacturing, anything with depth.
20 to 30+ pages
- Everything in the full site.
- A multi-column mega menu that stays usable at that size. The Veritas menu carries 26 links across three columns.
- Your company profile reproduced verbatim where accuracy matters. On Veritas that was 20 service names, 18 project-experience items and both directors' details, with nothing reworded or "improved".
- Content typed so the data can't lie. The Custom Timber Decks species table types Janka hardness as number-or-null, because composite decking has no Janka figure and printing "0 lbf" would be false.
- Motifs drawn in CSS with clip-path, not shipped as image files. Veritas uses a chevron notch and a blueprint grid.
- A two-ground design system where the design needs one, with ink measured separately on each ground. CamelPhat's tan #C89B6E measures 6.59:1 on the night ground and 1.60:1 on the sand one, so the accent changes with the ground.
- A full image audit before launch. On CamelPhat that destroyed four of 25 stock images, removed 3.6MB that was bundled but referenced by no page, cut one 8.2MB file to 739KB, and lifted breadcrumb contrast across seven page heroes from 1.49:1 to 5.04:1.
Ask about Big build