Trading cards for your whole league
One project, every team, every player. Parents fill in their own cards. The league orders once for everyone.
- 5 star rating on Google
- 50,000+ cards delivered
- Designed and printed in the USA

Built for the league, not the gift shop
Most custom card services sell one card at a time: a parent uploads a photo and pays for copies of their own kid. That works for a keepsake. It does not work for a league that wants every player on every team to have a card, with the roster collected once and the cards arriving before the last game.
Pennant Cards started with a 150-player league in Brooklyn and has since produced cards for leagues with dozens of teams, Miracle League programs, and a collegiate summer league. The league program is that experience packaged: import, collect, order, hand out.
How it works
1. Import your teams
Export rosters from your registration system and import them in one step. Every team gets its own colors, and every player gets a card.
2. Share one link
Parents open the league link, find their player, and add a photo, nickname, number, position, and favorites. No account needed. If you have a photographer, the form tells them to skip the photo.
3. Chase the stragglers from one screen
The coordinator sees who is missing a photo or a form, team by team, and sends reminders. Cards with missing answers fall back to a baseball fact so nothing prints blank.
4. Order once, for everyone
One order covers every team in the league. Standard production is 4-5 business days, rush is 2 business days.
Three ways to pay for it
The league pays
One invoice, every player gets a set. Most leagues fold it into registration or cover it from the general fund.
A sponsor pays
A sponsor logo on the back of every card is a real deliverable to put in a sponsorship package. One local business can cover an entire division. We add the logo as part of the design.
The league sells packs
Sealed foil or glassine packs with your league's label, sold at the snack bar or the championship. We have run season-long pack programs for a collegiate summer league and can do the same for yours.
What league partners get
Cards for players, coaches, and teams
Every design supports optional coach cards and a landscape team card, with an optional roster on the back.
League pricing for the season
Partner leagues keep their league pricing across the season, so a late division or an all-star team does not reset to single-team pricing.
Works with your photographer or without one
Use photo day files, parent-volunteer photos, or phone photos from the form. Backgrounds can be removed automatically.
Data handling parents will accept
Photos are encrypted at rest, never used for marketing, and deleted on a schedule the league sets. Forms collect only what goes on the card.
Tournament and all-star sets
Short runs for championships, all-star games, and end-of-season banquets, at league pricing.
A named contact
One person who knows your league, your teams, and your deadlines, season after season.
Frequently asked questions
A registration export, one link sent to parents, and a deadline. A 190-player league ran it with one coordinator and a volunteer photographer per team. The write-up of that season covers what worked and what to skip.
No. Turn on photographer mode and the parent form asks for everything except the photo. Your photographer sends us the files, named by player, and we match them to the roster.
It depends on league size and how many cards each player gets. Tell us both and we will quote the season. Fewer copies per player brings the number down.
Yes. Each project has one design and each team has its own colors. Divisions that want their own look run as separate projects under the same league pricing.
The coordinator can enter the details, or leave them. Cards with missing answers fall back to a baseball fact so the back never prints empty, and a player with no photo can still get a card with the team logo.
Yes. The league places the order and sets its own price for families, keeping the difference. Many leagues fold the cost into registration instead so every player gets a set.
Start a league program
Tell us about your league and when your season runs. We will respond within one business day with league pricing and a plan for the season.




