Service

Web development measured on real phones and networks

Marketing sites and web applications — rendering strategy, front-end build and the CMS your team runs without filing a ticket. Built to hold speed and accessibility on a mid-range Android over a weak connection, not only on a laptop wired to fibre.

The Problem

Fast at launch, slow by spring

Almost no site is slow on the day it ships. It gets slow across a year of additions nobody measured, on a stack that made the first version easy and the fifth version expensive.

  1. 01

    The rebuild that changes nothing

    A site moves to a new framework while the page weight, the render-blocking third parties and the unreviewed image pipeline all travel across intact. New stack, same numbers.

  2. 02

    A CMS nobody can operate

    Editors were handed a drag-and-drop canvas and no structure, so every campaign page is a one-off. Changing a headline everywhere becomes a developer task, and the brand drifts one page at a time.

  3. 03

    Accessibility checked at the end

    An audit lands the week before launch and finds keyboard traps and contrast failures baked into the component library. At that point the fix is either rushed or quietly deferred.

The Approach

Decide the rendering, then build

Most of a site's speed and most of its accessibility are settled before the first component is written — by what renders where, what ships to the browser, and what the content model allows.

  1. 01

    Rendering chosen per route

    Static where content rarely changes, server-rendered where it is personal, client-side only where the interaction demands it. One interactive route is not a reason to ship a single-page app to a brochure page.

  2. 02

    A content model, not a page builder

    Types, fields and relationships designed with the people who publish, so a new page is assembled from known blocks and a global change stays a single edit.

  3. 03

    Budgets enforced in CI

    A weight budget and an accessibility suite run on every pull request, so a regression stops at the merge instead of arriving months later as a mystery nobody can date.

Capabilities

What the work covers

Three surfaces, one build: what the browser downloads, what the editor sees, and the component library that keeps those two in agreement.

  • Marketing sites

    Editor-run sites with structured content, quick first loads and campaign pages the marketing team puts live itself, including the short-lived ones that retire when the campaign does.

    • Content modelling
    • Landing pages
    • Editor workflow
  • Web applications

    Dashboards, portals and internal tools where routing, state, permissions and data loading are decided as architecture early, not inherited from whichever libraries arrived with the first feature.

    • Dashboards
    • Portals
    • Auth and roles
  • Performance engineering

    Profiling on low-end devices and throttled networks, image and font pipelines, third-party scripts priced for what they cost the visitor, and Core Web Vitals read from field data, not a clean lab run.

    • Core Web Vitals
    • Bundle budgets
    • Asset pipeline
  • Accessibility

    Keyboard paths, focus order, contrast and screen-reader semantics built into the components themselves, held to WCAG 2.2 AA and checked by hand on the flows that carry the business.

    • WCAG 2.2 AA
    • Keyboard and focus
    • Assistive tech
  • Design systems in code

    Tokens and components implemented once against the design, documented in a live styleguide and versioned, so a brand revision moves through the tokens and every page follows.

    • Design tokens
    • Component library
    • Styleguide
  • CMS, search and integrations

    Headless or traditional, chosen against how your team publishes, then wired to search, analytics, CRM and commerce without collecting a plugin graveyard along the way.

    • Headless CMS
    • Site search
    • Integrations

Technologies

What we build with

Tools picked for the shape of the site and the team who will maintain it, never because they are new. Where you already run a stack, we work inside it.

Frameworks

  • React
  • Next.js
  • Astro
  • SvelteKit
  • Vue
  • TypeScript

Interface and design system

  • Tailwind CSS
  • Sass
  • Radix UI
  • Storybook
  • Figma

Content and commerce

  • Sanity
  • Contentful
  • Strapi
  • Payload
  • WordPress
  • Shopify

Delivery and measurement

  • Vercel
  • Cloudflare
  • Netlify
  • Playwright
  • Lighthouse CI
  • Sentry

How we work

From inventory to cutover

  1. Step 01

    Inventory and baseline

    We crawl what exists, measure the pages that carry traffic, and list every template, form and integration. Scope comes from that list, not from a sitemap drawn in a workshop.

  2. Step 02

    Structure and route plan

    Content types agreed with your editors, and each route assigned a rendering mode, both written down before the first component exists. The plan is a document, not an assumption held by two developers.

  3. Step 03

    Component library first

    Shared components built once, with keyboard behaviour and a weight limit attached to each, so building a page becomes composition and not a fresh set of decisions every time.

  4. Step 04

    Templates with your own content

    Pages assembled and filled with your own copy and images while there is still time to change them — long headlines, missing photography and the product name nobody shortens are what break a layout.

  5. Step 05

    Cutover and watch

    Redirect map, analytics continuity and structured data verified before DNS moves, then speed and error rates watched through the weeks after launch, when regressions actually surface.

Tell us what the site has to do

Send the current site, the pages that matter and the constraint you are working against — a platform decision, a slow template, a team that cannot publish. You get a straight read on scope before anyone talks about design.