Engineering

How this site is built

We build software for a living, so our own website should hold up to the same standard. Here is what it does, how we keep it fast, and the numbers to back it up.

Measured in your browser, just now

  • –

    Page weight

    Compressed size of everything this page loaded.

  • –

    Requests

    HTML, CSS, JavaScript, fonts and images.

  • –

    Third-party requests

    Fonts, scripts and analytics are all served from this domain.

  • –

    Load time

    Until the browser's load event, on your connection.

01

Decisions

  • Prerendered, not rendered on request

    Every page, including each case study, is generated as static HTML at build time and served from Vercel's edge. There is no server work per visit.

  • JavaScript only where something is interactive

    Pages are React Server Components. Only a few small pieces run in the browser: the header menu, the card spotlight, the booking form and the live numbers on this page.

  • Animations that never block the main thread

    All motion is plain CSS on transform, opacity and filter, which the GPU composites. No animation library ships to the browser, and everything stops for visitors who prefer reduced motion.

  • Zero third-party requests

    Fonts are self-hosted, the office address replaces a Maps embed, and analytics are served from our own domain without cookies.

  • Every byte earns its place

    Images are served as AVIF or WebP at the size each screen needs. The logo font is subset to the characters it uses, from 55 KB down to 7.5 KB.

  • Budgets enforced on every pull request

    GitHub Actions builds the site and runs Lighthouse three times on key pages. Any change that breaks a budget below fails the check.

02

Budgets

These limits live in the repository and are checked on every pull request.

Lighthouse performance score
≥ 90
Lighthouse accessibility score
100
Lighthouse best practices score
100
Lighthouse SEO score
100
Cumulative Layout Shift
≤ 0.01
Total Blocking Time
≤ 200 ms
JavaScript per page
≤ 135 KB
Total page weight
≤ 300 KB
Third-party requests
0

03

Before and after

Lighthouse on the homepage, simulating a mid-range phone, before and after the October 2026 rebuild.

MetricBeforeAfter
Performance score7697
Accessibility score91100
Total Blocking Time410 ms50 ms
Page weight358 KB254 KB
JavaScript on first load176 KB124 KB

04

Stack

  • Next.js 15
  • React 19
  • TypeScript
  • Tailwind CSS 4
  • Vercel
  • GitHub Actions
  • Lighthouse CI

Want this level of care in your product?

We bring the same engineering discipline to every app, workflow and MVP we build.