Chess.comSelf-initiated2026

Play next

Capturing the intent to play when the action is blocked.

Overview

I love playing chess on Chess.com. But playing with a friend can be inconvenient sometimes.

And that "sometimes" is what this case study is about. I have 24 friends on Chess.com. Playing a stranger is fine. Playing someone I know is better - I have history, I know their openings, there's something at stake beyond the rating.

But almost every time I open the app, my friends are either offline or already in a game. The moment I want to play them is the one moment I can't.

The problem

I can't challenge a friend who is playing.

Chess.com players open the app and casually play random opponents. That's the default behavior - mine and my friends'. Which means if a friend is online at all, they're usually mid-game.

When I try to challenge them, this happens:

Johnny's online! Let's have a great game

Oh, he's playing? Okay

So I tried the second route: messaging.

The message button is hard to find, which I understand. Chess.com is a chess product before it's a social product; the playing experience should dominate. What I didn't expect was this:

My friend never got a notification.

My message went into the void. He finished his game and immediately started another one, with no idea I was waiting.

Let's message him to invite!

Okay let's wait for him

zzz

I think I'm winning here

Good game! Let's play again!

e4? My favorite!

My workaround

I found a detour to get him noticed.

I found his live game as a spectator, watched until the position was resolved, and sat with my finger over the challenge button waiting for that two-second window.

Let's try to click View all here

Oh so I can watch him play

Hmm, what do I do from here?

Wait for him to finish, then challenge?

Eventually I did get to challenge him, but it took far too much time and effort. And knowing that the next casual game with him would cost all of this again is the maddening part.

The obvious objection

Why not just message him somewhere else?

Messenger, Discord, anywhere. Because I met him on Chess.com. That's how most chess friendships start - I play someone good, I add them, and the friendship lives entirely inside the product.

Which is the actual point. If the intent to play has to leave Chess.com to get coordinated, Chess.com is leaking the game type it should want most.

Solution 1

v1 - Message notification

The smallest possible fix: notify people when they get a message, the way League of Legends and FC Online do with players mid-game.

I think I'm winning here

Uhm... did he just not care at all?

Turns out any noise during a blitz or bullet game has a cost - it has happened to me. That's probably why Chess.com has no message notifications at all.

Solution 2

v2 - Pending challenge

What if I could still reach Johnny without interrupting his game? Or better still, let him know I want to play the moment he finishes? That's what I tried here.

If I already know Johnny is playing, the best thing I can do is queue the challenge for the moment his match ends. And the best part for me is that I stop anxiously waiting on him. It could look like this:

Johnny's up playing? How about a challenge?

Send it now, he plays it after!

Nice! Can't wait to play him!

From Johnny's side, the challenge only reaches him once his match is over - and by then he has every reason to hit that green check.

I think I'm winning here

Good game... oh, James wants to play?

Reflection

What I'd take from this.

  • Small edge cases still matter. Mine is one - I play far more games against random opponents than against a friend. But even a small inconvenience can leave a genuinely bad experience behind.
  • Improving a bad experience is always worth doing. Chess.com may well have considered this and decided against it for reasons I can't see - research, data, a different focus. I'd still feel better knowing my problem had a better answer than the one I had to invent. And if it bothers me, it probably bothers someone else.
  • Always ask what people expect after an action. Completing the whole challenge setup only to be told Johnny isn't available is frustrating. Every CTA should be designed around what the person expects it to do for them.