Skip to content
Jersey-number recognition, built in

Every player.
Every moment.
Automatically organized.

Sportfolios turns thousands of match-day photos into beautifully organized team and player galleries using intelligent jersey-number recognition.

photos per upload session
2,000+photos per upload session
from upload to sorted
< 3 minfrom upload to sorted
photo and player-data storage
EUphoto and player-data storage
7
#796%
23
11
#1174%
4
9
#999%
14

Bascats vs Bremerhaven

1,847 photos · 24 players · sorted automatically

Built with photographers shooting for clubs like these

  • Cuxhaven Bascats
  • Bremerhaven
  • TSV Nordheim
  • SC Elbmarsch
  • Hansa Sports
  • BG Weserland
From memory card to inbox

Upload an entire match.
Get it back organized.

The part of the job that used to take an evening now happens while you drive home.

  1. 01

    Upload the whole match

    Drag in a card full of RAW-converted JPEGs. Resumable uploads survive a dropped connection, a closed tab, or a hotel Wi-Fi that gives up halfway.

  2. 02

    Sportfolios reads the jerseys

    Every frame is analysed for people, jersey regions and numbers, then matched against the rosters of the teams attached to the event.

  3. 03

    Players get their own galleries

    Number 7 becomes Marek Kowalski. His parents get one private link with every photo of him — across every match of the season.

  4. 04

    Selections and sales, handled

    Families favourite, select and buy. You export the filenames straight into Lightroom, deliver the finals, and get paid.

AI player recognition

Number first.
References when needed.

Sportfolios starts with jersey numbers matched against your roster. When an organisation enables it, controlled player references can fill the frames where the number is turned away, covered or blurred.

  • Single, double, angled, partially covered and back-facing numbers
  • Multiple players and multiple teams in one frame
  • Optional player references with immediate organisation and player deletion
  • Confidence scores you can act on, not a black box
  • Every correction becomes structured training feedback — never auto-retrained
How the recognition works

AI Review

6 of 1,847
7
#794%

Suggested players

7Marek KowalskiHigh confidence
11Ida PetersenReview recommended
ConfirmRejectNext1–9Pick playerMMulti-select
Personal player galleries

One link per player.
For the whole season.

Every player gets a private gallery that fills itself — every match, every training, every portrait session, gathered automatically as you shoot.

Private by default. Never indexed, never publicly listed.

Access by link, QR code, access code, or club distribution.

Families favourite, select, and order without an account.

7

Marek Kowalski

Men's First Team · Season 2026/2027

Private link

148 photos · 6 matches

Customer selection · #SF-2026-000123

Submitted by familie.kowalski@example.de · 14 images

  • BASCATS_2026-08-01_0417.jpg
  • BASCATS_2026-08-01_0432.jpg
  • BASCATS_2026-08-01_0511.jpg
  • BASCATS_2026-08-01_0688.jpg
CSVTXTLightroom listJSONZIP
Sell without the admin

Edit only what sells.

The selection workflow is built around how photographers actually work: previews out, favourites in, filenames to Lightroom, finals back.

  1. 1Customers favourite and submit a selection
  2. 2You export the filename list
  3. 3Lightroom matches and you edit only what sold
  4. 4Finals replace the previews automatically
  5. 5Stripe takes the payment, Sportfolios delivers the files
For clubs and teams

Your rosters do the sorting.

Import a roster once. Every photographer you work with benefits from it, and every player is found by number instead of by hand.

Men's First Team

Cuxhaven Bascats · 2026/2027

CSV imported
  • 4Lena VogtActive
  • 7Marek KowalskiActive
  • 9Tom BrandtActive
  • 11Ida PetersenActive
  • 14Jonas MehlActive
  • 23Sara LindqvistActive

Seasons and rosters

A player keeps their identity across seasons while their number changes. Copy last season’s roster forward in one action.

Approval before publishing

Require a club manager to review and approve a gallery before anything reaches families.

Player privacy controls

Per-player consent, guardian contacts, and an opt-out from AI assignment that is actually respected.

Distribution that fits a club

Access codes, QR codes for printed player cards, and links that work in a team WhatsApp group.

The customer experience

Galleries that feel like an app.

Full-bleed covers, a justified grid, instant lightbox, swipe navigation and pinch-to-zoom. Fast on a phone in a sports hall with one bar of signal.

All photos#7 KowalskiFirst halfCelebrationsFavourites
4
11
4
11
Pricing

Priced per photographer, not per photo.

Every plan includes jersey-number recognition, player galleries and customer selections.

Starter

For photographers shooting their first seasons.

19/ month

Start with Starter
  • 50 GB storage
  • 10 active galleries
  • Jersey-number recognition, 2,000 photos / month
  • Personal player galleries
  • Favourites and customer selections
  • CSV and TXT exports
  • Password-protected share links
  • Sportfolios branding on galleries
Most popular

Professional

For photographers who sell.

49/ month

Start with Professional
  • 500 GB storage
  • 150 active galleries
  • Advanced recognition, 25,000 photos / month
  • Digital shop with Stripe checkout
  • Custom price lists and packages
  • No Sportfolios branding
  • Custom domain
  • Advanced exports incl. Lightroom lists
  • Client management
  • Advanced analytics

Studio

For teams covering whole leagues.

149/ month

Start with Studio
  • 4 TB storage
  • Unlimited practical gallery volume
  • Priority recognition, 250,000 photos / month
  • 15 team members and multiple brands
  • Club management tools
  • Granular permissions
  • API access
  • White-label options
  • Advanced reporting
Security and privacy

Most of these photos are of children.

That single fact shaped the architecture. Privacy here is a default, not a settings page you have to find.

Read the security overview

Private by default

New galleries are private, non-indexed, watermarked and download-off. Going public is a deliberate, logged action.

Originals are never public

Full-resolution files live in a private bucket and are only ever reachable through a short-lived signed URL after an authorization check.

Built for photos of minors

Guardian records, per-player opt-out, controlled optional reference matching, and retention periods you control.

Tenant isolation, enforced server-side

Security Rules, server checks and App Check. Frontend permission checks only ever hide buttons.

Your next match is
already sorted.

Create your studio, import a roster, and upload a match. The first gallery takes about ten minutes.