Skip to content
LiveCommunity platform2026

The Grim Grippers

A home for Houston armwrestling, built around records people can trust.

The site is public and runs on demonstration data while sign-ups are closed. It says so in a banner on every page, and the athletes, events, and results shown are examples of how it works.

thegrimgrippers.com
The Grim Grippers homepage with a reaper-versus-athlete armwrestling badge logo and the headline 'Houston's Home for Competitive Armwrestling'
The Grim Grippers homepage on mobile showing the badge logo, headline, tagline 'Grip 'Til You're Grim' and a Find an Event button
The objective

What this had to solve.

Give a local armwrestling scene one home for events, athlete records, and rankings. The hard part was trust: in a sport where rankings start arguments, every number had to show where it came from, and every correction had to leave a trail.

What was built

  • Separate left hand and right hand ranking boards by weight class, each marked provisional or published
  • A written ranking methodology with appeals, and a public change log on every board
  • A results workflow where each result carries a source and a verification status and passes through review
  • An athlete directory with filters for area, weight class, division, skill tier, hand, and verified status
  • Athlete profiles with event and match history, per-hand rankings, profile claiming, and corrections
  • Event pages with divisions, formats, entry fees, placings, and registration status
  • A practice group finder that lets organizers choose how much of their location to publish
  • Login-protected dashboards and admin areas for athletes, promoters, and moderators
Type
Community platform
Rankings
Left and right hand
Results
Source verified
Stack
Next.js

Technology

  • Next.js
  • React
  • Caddy
  • HTTP/3
  • Nonce-based Content Security Policy
  • Role-based access

Verified from the live site where publicly detectable.

Key features

The parts that do the work.

01

Rankings that show their work

Every board states its method, and every change to it is logged where anyone can read it.

02

Results with a source

A result does not count until it has a source and has been reviewed, so a disputed match can be traced.

03

Athletes own their records

Profiles can be claimed by the athlete they describe, and corrections have their own path instead of an email into the void.

04

Location privacy

Practice groups choose between a published address, an approximate area, or contact through the organizer.

05

Locked down by default

A strict nonce-based content security policy, role-gated admin areas, and embeds that only load when a visitor asks for them.

More of the build

Other pages from the live site.

Texas Rankings page with separate Left Hand and Right Hand columns listing men's weight-class boards marked Provisional or Published
Texas Rankings page with separate Left Hand and Right Hand columns listing men's weight-class boards marked Provisional or Published
Texas Right Hand Men's 176 lb ranking board with a standings table showing position, athlete, record and points beside a methodology panel
Texas Right Hand Men's 176 lb ranking board with a standings table showing position, athlete, record and points beside a methodology panel
The outcome

What it does now that it could not before.

Houston armwrestling has a single place built to hold its events, athletes, and results, with rankings that can be checked rather than taken on faith. Results carry a source and pass through review before they count, every ranking board shows its methodology and a change log, and athletes can claim their own profiles and request corrections. The platform is built and public, and is waiting on real events to fill it.

What this demonstrates

Why it matters for your project.

Different business, same underlying capability.

  • A data-heavy community platform rather than a brochure site
  • Designing for trust where the numbers are contested
  • Role-based access for athletes, promoters, moderators, and admins
  • Privacy decisions built into features instead of bolted on
  • Security headers set deliberately, not left at defaults
Want something like this?

Tell me what you are trying to build.

Describe it however makes sense to you. Working out what it is called and how it gets built is my job, not yours.