I Built a Ultimate Team-Style Card Generator for Codeforces Profiles
TL;DR: Codeforces Cards turns any CF handle into a collectible player card — OVR rating, six attributes, a rarity tier, playstyle badges, achievements and full rating history, all computed from your public Codeforces data. Nothing is random: the same handle always produces the same card. Open source, MIT licensed.
Why I made this
I'm a big fan of Ultimate Team-style card games — the OVR number, the attribute breakdown, the rarity tiers, the thrill of a pack opening. At the same time I spend a lot of my life staring at a Codeforces profile page that's just a rating number and a list of submissions.
So I built the thing that lives in the overlap: take your actual contest history and render it the way a football game renders a striker's pace and finishing.
What it does
Enter a handle, and the app pulls your public Codeforces stats and turns them into a card with:
- OVR — an overall rating for the card (explicitly not an official Codeforces rating, just a fun derived metric).
- Six attributes, each scaled 1-99:
- PAS — Contest performance & consistency (30% of OVR)
- SHO — High-rated problem solving (22% of OVR)
- DEF — Difficult-problem performance (15% of OVR)
- DRI — Versatility across tags/difficulty (13% of OVR)
- PHY — Endurance & consistency over time (12% of OVR)
- PAC — Improvement speed / rating growth (8% of OVR)
Rarity tier and a potential projection based on recent trajectory.
- Badges & achievements, and a full rating history chart.

Cards can be flipped, restyled (frame/background/theme — visuals only, never the stats) and exported as PNG.
Beyond the card itself
/generate— Enter a handle, get a card/player/:handle— Full profile: card, key stats, attributes, rating chart, form, achievements/compare— Two handles head to head, attribute by attribute/leaderboard— Ranks the cards you've generated, plus a live featured table/squad— Build a 5-card lineup with a squad OVR and synergy score/pack— Pack-opening reveal: rarity -> OVR -> card

How it works
Everything comes from the public Codeforces API (user.info, user.rating, user.status) — no login, no private data, results cached in-browser for 30 minutes and requests spaced out to respect CF's rate limits. Every number is a deterministic function of the handle's public history, so nobody's card is randomized or "rolled" — same handle in, same card out, every time.
This is a fan project only: not affiliated with Codeforces or any football game publisher.
Try it
nandansai08.github.io/cf-cards
It's open source (MIT) — code and contributions welcome at the GitHub repo. Generate your own card, throw a friend's handle into Compare, or open a pack. I'd love feedback in the comments — bugs, attribute ideas, badge ideas, whatever you've got.
The card holds up on a phone too.









thats cool
Thanks!
You should add a new attribute name contribution (that will be how I win my friends lol)
Ha, that's actually a really fitting idea since contribution is already a real CF stat. Might add it as a 7th attribute or a badge — thanks for the suggestion!
Damn cool !
nice
This is lowk fire