Fake Friends went from first commit to live in two days. Read the case study

RangeX

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

RangeXiOSReact NativeComputer VisionDesignBackendBranding
RangeX founder holding the app

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.

A closer look

Know if you're getting better — the first scan happens signed out, score first, sign up to keep it
Scan — fill the marks with any paper target; gun and distance prefilled from your last session
The reveal — an 82 string score with group size, delta versus your average and rank at this range
Home — your 74 handicap broken into precision, consistency and zero, plus what to fix
Locker — every gun rated on one handicapped scale, a .45 beside a .308 beside a .22
Range leaderboard — where you stand at your range and nationally, scoped by distance and class

Software people love.

Thirty minutes. You leave with a plan and a number.

Book a call