Skip to content
GoodGroundOur own site2026

The studio holds itself to the same brief it gives clients

This site: Next.js 16, Tailwind v4, 48 statically generated pages, Lighthouse 100 across accessibility, best practices, SEO and agentic browsing, and a 772ms LCP, all measured on the live URL, not a staging build.

Snapshot

Client
GoodGround (the studio itself)
Industry
Website design and development studio, South Africa
Services
Design, front-end build, SEO, ongoing iteration
Build
Next.js 16, Tailwind v4, GSAP and Framer Motion, deployed on Vercel.

The challenge

A studio's own site is where every shortcut it would never let a client take becomes tempting, because there's no client waiting on a deadline and no one to notice if a claim about performance or accessibility quietly stops being true. The failure mode is well known: the agency that sells fast, accessible, well-structured websites while running one that fails its own pitch.

The brief here was to hold this site to the same bar as B3TTER and Point Break: real Lighthouse scores on the live URL, not a local build; a genuine SEO audit, not an assumed clean bill of health; and fixes applied and re-verified rather than marked done from memory. This case study exists because that audit found real issues, and this is the record of fixing them.

The solution

An SEO audit run against ourselves, not just clients

The audit that produced this case study found sixteen pages missing their own og:image (services and industry subpages sharing the homepage's link-preview card), a stale llms.txt claiming /work was 'coming soon' when it wasn't, and a /work page that gave the first case study a wide featured treatment while the rest sat in a smaller grid below, quietly implying one project mattered more than another.

Every one of those got fixed in the same pass: sixteen new opengraph-image routes off the existing card template, llms.txt brought back in sync with the real sitemap, and /work rebuilt so every case study, including this one, renders at identical size and weight.

The /work page after the fix, showing every case study as an equal-size grid card with no featured project

An animation the audit flagged as broken, that wasn't

The same audit reported that the light animation on the recommended pricing card had stopped shipping, based on a screenshot showing a static ring. Sampling the card's computed offset-distance twice, 800ms apart, on the live URL told a different story: 72.55% moving to 89.55%, the animation running exactly as built.

The likely cause: a screenshot catches one frozen frame of a six-second, continuously looping animation, and a frozen frame of anything in motion looks static. It's a useful reminder that a visual check and a moving one aren't the same test, and this case study fixes what the audit actually found rather than what it happened to catch mid-frame.

The four pricing package cards on the live site, with the recommended Grow card carrying an animated light along its edge

Numbers that hold up on the real domain

The homepage scores 100 on Lighthouse Accessibility, Best Practices, SEO and Agentic Browsing, measured against www.goodground.co.za directly rather than a local or staging copy. Largest Contentful Paint lands at 772ms and Cumulative Layout Shift at 0.02, both from a live performance trace, not a lab estimate.

The build itself is unremarkable by design: Next.js's static generation produces 48 pages at build time, so most of the site serves as static HTML with no server round-trip per request.

Built mobile-first, same as every other project here

The same responsive discipline applied to B3TTER and Point Break applies here: no desktop-first layout scaled down after the fact, no horizontal overflow at any checked width, and the same reduced-motion handling across every animated element on the page.

The difference on this site is stakes. If a client's site had a bug like the grid-overflow issue caught on Point Break, it would be an embarrassing fix. On this one, it's the site making the exact promise it's failing to keep.

The GoodGround homepage hero rendered on a 390px-wide phone screen

The results

Every figure below was measured on the live URL. Each one tells you how to check it yourself.

100

Lighthouse Accessibility

Run Lighthouse against www.goodground.co.za in Chrome DevTools.

100

Lighthouse Best Practices

Same audit, same run.

100

Lighthouse SEO

Same audit, same run.

772 ms

Largest Contentful Paint

Record a performance trace against the live homepage in Chrome DevTools.

0.02

Cumulative Layout Shift

Same trace, same run.

48 pages

Statically generated at build time

Run a production build and read the route summary Next.js prints.

These numbers describe how the site is built, not how the business is performing: traffic, leads and client outcomes are real but aren't the subject of this page. Where they're relevant, they belong in a business update, not a build case study, and won't be invented here to fill the gap.

Want a website like this?

Tell us what you sell and who you sell it to. We will tell you honestly whether a new site is the thing that will move the needle.