The platform

Every runner.
Every race. Matched.

PhotoFinishPRO 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.

Built for the people running the clock

Automatic bib reading

Every uploaded frame is scanned by AI vision. Confident matches go straight to the runner; uncertain reads land in a one-tap review queue.

Any upload path

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.

Bring your own timing software

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.

Bulk branding

Apply race logos, sponsor artwork, and a digital race-clock footer with athlete name and finish time to hundreds of photos at once.

Instant runner emails

As soon as a photo is matched, the athlete gets an email with a link to their personal gallery.

Organization-scoped access

Multi-tenant workspaces with owner, admin, and timer roles. Each organization only sees its own races, photos, results, and tokens.

Built for athletes finding their shots

Find your photos fast

Search by bib number or name across every published race, or open a race gallery and browse results with matched thumbnails.

Branded finish-line shots

Photos include the race logo, sponsor marks, and a footer showing your name, finish time, and bib — ready to share or download.

Optional secure downloads

Races can enable photo sales with their own pricing. Checkout is handled by Paddle, the Merchant of Record, so tax and refunds are covered.

No account required

Athletes browse public galleries without signing up. Emails are used only to send the photo-ready link.

How it works

1

Create the race

Set the race name, date, and branding assets: logo, sponsor artwork, and bib design.

2

Push results and photos

Upload timing results and photos from timing software, cameras, SD cards, or a phone — all at once or continuously during the race.

3

AI reads and matches

Bib numbers are read from each frame and matched to the results list. Uncertain reads go to a review queue for staff correction.

4

Gallery goes live

Photos are branded, athletes are emailed, and the public gallery is ready with results and thumbnails.

Build, storage, and data

Modern, edge-ready stack

Built with TanStack Start, React, TypeScript, and Tailwind CSS, served on Lovable Cloud managed infrastructure with automatic backups and scaling.

Privacy by design

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.

Signed, expiring links

Photos are never stored in a public bucket. Grids use compressed thumbnails, and full or branded images are delivered through time-limited signed URLs.

Paddle as Merchant of Record

Paddle handles payments, 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.

Pricing

Starter

Free

  • 2 races
  • 2,000 photos
  • 250 result runners/mo
  • Bib recognition
  • Public galleries

Single RD

$99/mo

  • 6 races per year
  • 15,000 photos
  • 500 result runners/mo
  • $0.05 per additional runner
  • Branded galleries + result footers
  • Photo sales

Pro

$300/mo

  • 25 races
  • 50,000 photos
  • 1,000 result runners/mo
  • $0.05 per additional runner
  • Bulk branding + result footers
  • Photo sales

Enterprise

$600/mo

  • Up to 1,000 races
  • Up to 2,000,000 photos
  • 5,000 result runners/mo
  • Multi-user organizations
  • Timing hardware ingest API
  • Dedicated support

Annual billing saves two months. Runner overages are billed at the plan's per-runner rate and shown in the organization dashboard.

Questions you might be asked

Do athletes need to create an account?

No. Public galleries are open to everyone; athletes just search by bib or name. If a race enables photo sales, checkout is handled by Paddle without requiring a PhotoFinishPRO account.

Can we use our existing timing system?

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.

What if the AI misreads a bib?

Doubtful reads are held in a review queue inside the race dashboard. Staff can correct them in one tap before athletes see the photo.

Where are photos stored, and who owns them?

Photos are stored in private cloud storage and served only through short-lived signed URLs. Race organizers and photographers retain ownership of the photos; PhotoFinishPRO is granted only the rights needed to host, process, display, and deliver them.

What happens on race day if the internet is spotty?

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.

How do refunds and privacy work?

Photo downloads and subscriptions carry a 30-day money-back guarantee. Refunds are processed through Paddle or by contacting info@shazamracing.com. Our Privacy Notice, Terms, and Refund Policy are published on the site.

How much does it cost?

Starter is free for 2 races, 2,000 photos, and 250 result runners per month. Single RD is $99/month or $990/year for 6 races, 15,000 photos, and 500 runners per month. Pro is $300/month or $3,000/year for 25 races, 50,000 photos, and 1,000 runners per month. Enterprise is $600/month or $6,000/year for up to 1,000 races, 2 million photos, and 5,000 runners per month.

Run your next event on PhotoFinishPRO

Accounts are set up by ShaZam Racing. Tell us about your timing company and we'll get you started.

Request access