
RangeX
A handicap for shooting. Know if you're getting better.

RangeX
Photo to score in under twenty seconds
22
Screens prototyped
141
Design tokens synced to code
<20s
Photo to score
0–100
One scale, every caliber
The product
RangeX gives shooting the one thing every other sport already has: a single honest score. Photograph the paper target you are already holding and about twenty seconds later you have a 0 to 100 number, handicapped like golf, so a .22 at 25 yards and a .308 at 100 yards land on the same scale and one leaderboard can finally exist. Kanopy wrote the scoring specification, designed the brand and a 22-screen prototype, and is building the app and the computer-vision pipeline behind it. In development, with a closed beta targeted for September 2026.
The challenge
A shooter walks off the line holding a piece of paper, and that is where it ends. The target goes in the bin or into a camera roll that never gets opened again. "Was that good?" has no answer: not against last month, not against the lane next to you, and certainly not against a different gun at a different distance. Ring scores depend on which sheet of paper you bought, a raw group size means nothing across calibers, and every app in the category scores one of those two things and normalises neither. Fifty-two million Americans shoot sport or target and none of them has a comparable number. RangeX wanted to be that number, with a scoring system rigorous enough to become the standard, a design premium enough that people post it, and five creator partners lined up to share scores weekly, so the beta had to be real within weeks.
How we tackled it
01
Wrote the handicap specification before writing UI: mean radius instead of extreme spread, corrected for sample size, converted to MOA, measured against a par for the gun's class (type, sights, rimfire or centerfire) and mapped logarithmically so 50 is par and 100 is elite, with every coefficient tagged measured, derived or chosen and a named owner for each
02
Made the Index behave like a golf handicap: best 8 of your last 20 scoreable strings, versioned on every stored rating so history can be re-rated, and deliberately refusing to score zero (a sight setting, free to fake), printed rings (decoration), or any scan that cannot be measured, because an honest refusal beats a confident wrong number
03
Designed the brand and a 22-screen clickable prototype in Figma, gold on charcoal in Quantico and Inter, with 141 design variables mirrored 1:1 into the app's token file and a CI check that fails any pull request where the two drift
04
Designed the scan flow to ask for nothing twice: gun and distance prefilled from the last session, the range detected automatically, every impact found and correctable with a tap, then a reveal with the score, group size, delta versus your average and rank at that range, and a 9:16 share card as the primary action
05
Built the computer-vision pipeline in Python: find the sheet's corners and flatten it, recover inches per pixel from the known paper size, detect the holes with a classical baseline and a YOLO detector seam, and measure every impact from the point of aim, so three of the four steps are geometry rather than machine learning
06
Designed the progression around the score rather than around attendance: range and national leaderboards ranked by Index, quarterly tiers, friend competitions scored gross, and a 51-badge catalog where every badge is earned on leaderboard-eligible strings
What we built
RangeX is being built as a React Native and Expo app on Kanopy's base template, with an Express and tRPC backend on MongoDB, Clerk authentication, RevenueCat for membership, PostHog analytics and Bunny CDN storage, plus a Python computer-vision service built on OpenCV that turns a photograph into hole positions in inches. The scan, reveal, home, locker, ranges, visit and string-detail surfaces are wired to a scoring service that implements the v1 handicap spec and rolls every string up into a per-gun rating and a personal Index, and one local gate runs type-checks across six workspaces plus the app, server and vision test suites before anything merges. The app is in development, with a closed beta targeted for September 2026.





