Why we built Rytry.
Not "another LoL app". A memory layer for a game that forgets everyone the moment the queue pops.
The actual problem
I queue up for a ranked game. The lobby loads. There's a Yasuo mid I know I've seen before — I can feel it — but I can't place him. Was he the one who inted his lane and tilted the whole team last Tuesday? Or was he the one who carried the 4v5 we somehow won?
I don't remember. The League client doesn't remember. The match history I scrolled through six hours ago is buried under three more queues. I'm playing a game with someone I've played against a dozen times, and I'm starting from zero.
That's the problem Rytry was built to solve.
Why the existing solutions failed
I tried the obvious things first.
The in-game friend list was useless. Adding a rival required a post-game ritual nobody performs. The list itself was alphabetical and got cluttered the moment I added the tenth "friend". I'd scroll past the people I cared about to find anyone new.
Honk Kong player tracker scripts did what I wanted, technically — they scraped Riot's API and surfaced the names — but they were clearly designed for another audience. They surfaced everyone. Every Yasuo in Diamond IV. Every Leona OTP in EUW. The signal-to-noise ratio was so low that the alert meant nothing.
Pre-game scouting apps gave me what I didn't want. They pulled the match data before the loading screen finished, showed me the enemy team's last 20 games, and gave me an "advantage" that I felt bad about using. Riot's third-party policy explicitly forbids this. I signed up for the game, not for a scouting harness.
Ad-supported companion apps were the worst. Pop-ups between deaths. "Upgrade to Pro to see win rates!" overlays on top of the scoreboard. The product wasn't the rival list — the product was the ad inventory.
What I actually wanted
A short list. Three to ten names. People I'd tagged with a one-line note ("Zed main, tilts after first death", "smurf, plays like a bot", "always nice in /all"). When one of them loaded into my game, a single non-blocking overlay told me who they were and what I'd written. That was it.
When the game ended, I could see the encounter in a list — date, champion, result, win rate against them. The list grew without me doing anything. After thirty games, the data was already useful. After a hundred, it was irreplaceable.
The constraint that shaped the rest
I refused to ship pre-game scouting. It's the path of least resistance — anyone can build it, the data is right there in the API — but it's also the path that turns a game into work. The "memory" only matters once the match is real. Before the match starts, both teams are strangers, and that's the part of League that's still fun.
So the constraint became: Rytry fires only when a match is in progress. No lobby previews. No champion-pick predictions. No "this enemy duo has a 67% win rate together" pop-up before the loading screen.
This turned out to be the right constraint for two reasons. First, it kept us compliant with Riot's policy without any clever lawyer work. Second, it made the product feel calm. The other apps shouted. Rytry waits.
Why three categories, not seven
The first version had seven: Toxic, Skilled, Avoid, Friendly, Streamer, Pending, Unknown. Within a week the list was unusable. A category system is only as useful as the categories you actually use. The seven-tag version made me feel like a project manager.
The current version has three:
- Frequent — people I face often, with notes and history.
- Streamer — tagged separately so I can recognize them at a glance.
- Friendly — teammates I want to queue with again.
Everything else — toxic, skilled, avoid — collapsed into Frequent with a note. The note is the truth. The tag is the bucket. When the tag isn't enough, the note carries it.
The orange-red
The brand color is #d95f36, with a gold accent (#efcc8d). The orange-red sits between urgency and warmth — closer to a campfire than to an alert. The gold is what you win when you beat someone you've been tracking for fifty games. Together they're the two emotional notes the product hits: "I see you" and "I got you".
I considered cold blue (every SaaS app), green (every tracker app), red (every warning app). They all wanted the product to be a different thing. The orange-red wanted the product to be exactly what it is.
What we got wrong in v1
We tried to do encounter history, rival alerts, and post-game stats in one screen. It felt busy. We split it into three flows — Live Board (now), Post-Match Summary, Full History — and the complaint rate dropped by half. The lesson: a rival list is a tool, not a dashboard.
We also started with too many data points per player. Win rate, KDA, vision score, gold difference at 15. Players ignored 80% of it. Now the Live Board shows three things: the player's name, the tag, and the note. The rest lives in the post-game summary if you want it.
The thing nobody tells you about building this kind of product
The hardest part isn't the cloud poller, the overlay, or the API integrations. It's that a rival tracker is a journal, and a journal is only honest if you write the notes yourself. The day you let the system auto-classify anyone — "AI thinks this player is skilled" — you've lost the user. The trust was the user writing the words. Take that away and the product becomes another metric.
Rytry doesn't auto-classify. It doesn't predict win rates before the game starts. It doesn't surface "smurf probability". It does one thing: when the game begins, it reminds you who you're playing against. The notes are yours. The encounter history is yours. The judgment is yours.
That's the whole product.