CasesFitness studioConcept build

IRONHOUSE

A coached strength club with no mirrors, sold the way it trains: a statement, then the number that backs it.

Sector
Fitness — coached strength club
Signature
Kinetic slab type · the pinned standard
Conversion
Waitlist places and a two-session trial — the club is full, and says so
01

The brief

IRONHOUSE coaches strength on Pollard Street, in a cotton mill that stopped spinning long before anyone bolted a platform to its floor. Six platforms. Five athletes to a coach. Three hundred members, and the cap has not moved since 2019. Sixty-eight pounds a month, no joining fee, no contract. The membership is full and the waiting list runs to forty-one names.

No mirrors. That is the line that tells you what the place actually is. A gym that takes its mirrors down has decided what it measures, and it is not the look of you.

Which hands the website an awkward job. Every convention of the category is a promise about appearance: the transformation photo, the smiling class, the abs at golden hour. This club sells the opposite promise, to people who stopped believing the first one years ago.

02

The idea

Strength is a number, not a look. So the page behaves the way the club does. It makes a statement, then puts the number underneath it.

Type is the architecture. Anton set enormous and uppercase, headlines running past the container edge like signage painted onto the mill wall, and between the shouting, tight strips of fact: the hours, the ratio, the twelve-week blocks, testing on week thirteen. The stats tick up to 300, 5:1, 6 and +24kg, then say where they came from. From the 2025 logbooks. We did not round up.

Every image is evidence, not decoration. Six photographs on the entire site: a loaded bar alone on its platform, the floor at 06:00, a chalked hand closing on the knurling, and three frames for the logbook. Near-monochrome, blacks crushed, no faces in focus, shot like documentary rather than advertising. The hero runs its headline straight onto the photograph, "number." crossing the seam in acid.

One colour does the shouting. An acid chalk (#D7FF3E, chalk under gym light) that only ever lands on a number, a rule, a label, a headline word, the button and the marquee. It never sets a paragraph. The moment acid becomes body text it stops meaning this is the number.

03

The signature move

The house rules are the page's one pinned moment. Scroll stops the viewport and three rules arrive one at a time. Show up. Log every lift. Load the bar.

Each headline drives up from behind its mask with a four-degree skew that snaps flat on arrival, easing on expo.out: fast approach, dead stop. Weight hitting the floor. The rule's number stamps in at 2.1× and lands at 1×. A three-segment bar along the bottom fills one segment per rule, the way plates go on. Scroll back and they come off again.

The same recipe runs everywhere else at lower volume: the hero on load, each section headline once on entry, the waitlist and trial blocks. No headline on this site fades in. A fade is a soft arrival, and there is nothing soft about the room.

Around it sit the quieter relatives. Counters that tick like a bar being loaded. A frame of acid flashed on the hero as the page lands. One acid marquee cut across the page at two degrees, looping six house lines from no mirrors to no music requests.

Every image is evidence, not decoration.

04

Why it converts

Gym sites sell a body. Stock photography of a body that is not yours, in a room you will never train in, lit like a fragrance ad. Before-and-afters of strangers. Somebody laughing at a kettlebell. The visitor has seen all of it, believes none of it, and leaves no closer to knowing whether the place would suit them.

This page never shows a result. It shows the terms. What it costs, how many people are allowed in the room, how many names are ahead of you, what happens on week thirteen if the numbers did not move, and that the first two sessions cost nothing. The rules are on the door before anyone asks you to knock. That filters people out, and it is meant to. A club with a cap does not need everybody. It needs the forty-second name on the list to be someone who reads "log every lift" and thinks yes.

Loud is a decision here, and it has to survive contact with real users. Headlines up to 14rem, hazard-tape yellow, a marquee on the diagonal. The acid clears roughly 15:1 against the near-black it always sits on, and takes black text when used as a fill. Body copy stays in Space Grotesk at 15 and 16px, in a grey that is a colour rather than an opacity, so it never ghosts out. The volume is in the type, not the legibility.

05

How it is built

Coded, not mocked. React and GSAP ScrollTrigger, with every animation gated through gsap.matchMedia. Ask your operating system for reduced motion and the slabs render where they belong, the counters show their final values, Lenis is never mounted and the pin is dropped. The pinned sequence becomes three rules in an ordered list that you scroll past at your own speed. Nothing is lost, because the words were never the animation.

Headings are real headings, the marquee is labelled, and the decorative row numbers are hidden from screen readers so nobody hears "zero one" before "show up". One column on a phone, a twelve-column grid at the large breakpoint, and the oversized type is clamped so it breaks the container edge without ever breaking the line.

The trial form validates for real and sends nothing: its success panel leads with the disclosure — a concept build, nothing sent, nothing stored — then logs the booking underneath like everything else here. Fields are solid plates off the black-coal-steel ladder, and errors land in the page's one red.

The photography is self-hosted WebP, sized and prioritised per viewport, under a CSS grain overlay so six separate frames sit in one shoot. It passes a production build. It is a very loud page that a screen reader can walk in a straight line.

IRONHOUSE is a fictional strength club, invented so we could build the site it would need. The club is not real. The build is: every section, every number in the logbook, every line of code.

Ready to start?

Book a 30-minute call. We’ll dig into what’s working, what isn’t, and what the first move should be. No fluff, no pressure. If it makes sense to work together, we’ll make it happen.

A focused 30 minutes, not a sales pitch.