The platform
RACEPIXPRO reads bib numbers off race photography, matches each frame to the right athlete, brands the shot with race logos and a finish-time footer, and emails the runner before they finish their recovery drink.
Every uploaded frame is scanned by AI vision. Confident matches go straight to the runner; uncertain reads land in a one-tap review queue.
Drag a folder from an SD card, upload from a phone in the field, push from a Wi-Fi camera, or relay through an FTP bridge on a local PC.
Push entrants and results from RACETIMINGPRO or any system that can publish a JSON/CSV link. Re-sends are matched on race + bib, so nothing duplicates.
Apply race logos, sponsor artwork, and a digital race-clock footer with athlete name and finish time to hundreds of photos at once.
As soon as a photo is matched, the athlete gets an email with a link to their personal gallery.
Multi-tenant workspaces with owner, admin, and timer roles. Each organization only sees its own races, photos, results, and tokens.
Search by bib number or name across every published race, or open a race gallery and browse results with matched thumbnails.
Photos include the race logo, sponsor marks, and a footer showing your name, finish time, and bib — ready to share or download.
Athletes download their photos through secure, expiring links — no account needed.
Athletes browse public galleries without signing up. Emails are used only to send the photo-ready link.
Set the race name, date, and branding assets: logo, sponsor artwork, and bib design.
Upload timing results and photos from timing software, cameras, SD cards, or a phone — all at once or continuously during the race.
Bib numbers are read from each frame and matched to the results list. Uncertain reads go to a review queue for staff correction.
Photos are branded, athletes are emailed, and the public gallery is ready with results and thumbnails.
Built with TanStack Start, React, TypeScript, and Tailwind CSS, served on Lovable Cloud managed infrastructure with automatic backups and scaling.
Database Row-Level Security keeps each organization's data separate. Public race pages show only name, bib, time, place, and division — never emails or phone numbers.
Photos are never stored in a public bucket. Grids use compressed thumbnails, and full or branded images are delivered through time-limited signed URLs.
Stripe handles payments, sales tax, billing, and refunds so race organizers can focus on the event rather than merchant compliance.
The app is built on TanStack Start with React and TypeScript, hosted on Lovable Cloud managed Postgres and storage. Race data is separated by organization at the database level. Public race pages are cached for short, shared windows to stay fast under traffic spikes, and signed photo links are reused briefly so repeat visitors don't hammer the storage layer.
No. Public galleries are open to everyone; athletes just search by bib or name. Some races offer free downloads, while others charge for high-resolution photos. No RACEPIXPRO account is needed.
Yes. RACETIMINGPRO is built in as a connected provider, and any timing system that can publish a stable JSON or CSV link can push results and entrants via a self-service ingest token.
Doubtful reads are held in a review queue inside the race dashboard. Staff can correct them in one tap before athletes see the photo.
Photos are stored in private cloud storage and served only through short-lived signed URLs. Race organizers and photographers retain ownership of the photos; RACEPIXPRO is granted only the rights needed to host, process, display, and deliver them.
Uploads can be batched from the field, sent through a local FTP relay, or done after the race from a more stable connection. Processing retries automatically and continues as connectivity allows.
Photo downloads carry a 30-day money-back guarantee. Refunds go back to the original payment method — contact brad@racereadypro.com. Our Privacy Notice, Terms, and Refund Policy are published on the site.
Accounts are set up by ShaZam Racing. Tell us about your timing company and we'll get you started.