DOWNRIVER BOXING CLUB.
Concept identity and site for a fictional KC boxing gym. Adult fundamentals, youth boxing, no smoothies.
Imagined client: an ex-amateur fighter running a working-class gym in the West Bottoms — adult fundamentals classes 5 days a week, youth boxing on weekends, a small competitive team. Selling *against* the wave of "boxing-themed boutique fitness" places that charge $200/mo for shadow-boxing aerobics. The brief: scare off the casual crowd in the first 8 seconds and convert the people who actually want to learn to box.
Lifted the energy from boxing-poster typography. Slab display headlines, all-caps treatment, ring-canvas yellow as the only chromatic accent against a near-black field. The schedule is rendered as a brutal grid (no carousel, no calendar widget). Signup is a form that asks if you've boxed before, not a Calendly embed — gym owners want to talk to their members. The hero photo is a heavy bag, not a smiling person in athleisure.
Trades skeleton repurposed for a fitness brand — proves the same skeleton DNA that serves an HVAC company and a roofing crew also serves a gym, with type and palette doing the differentiation work. The skeleton stayed the same; the design language switched dialects. That's the test we wanted to pass.
Aesthetic system.
fig. ii · palette + type- Display
- Druk 900
- Body
- Inter 400
- Mono
- JetBrains Mono 500
- 1990s ESPN boxing covers
- Tyson-era gym photography
- Russian constructivist posters
- Hand-painted gym signage
- Legal yellow legal-pad used as a brand color
Gallery.
fig. iii · 06 framesTechnical notes.
fig. iv- 01 Schedule rendered server-side as a static grid. No JS calendar widget. Updates by editing one file.
- 02 Signup form is two fields: name + "have you boxed before?" — gym owner gets the second answer in the email.
- 03 Heavy display type (Druk) is loaded only on the hero, swapped to system-fallback below the fold to keep CLS at zero.
- 04 No social embeds. No Instagram feed. The site links *out*; it doesn't pull *in*.
- 05 One color (canvas yellow) gets <2% of the screen at any given time — restraint is what makes the brutalism work.