How to Play Chess on FaceTime — The Easy Way
FaceTime is great for video calls. It's not great for chess. There's no built-in chess feature, no Apple Game Center integration that handles a synced board, and SharePlay support for chess apps is patchy at best.
But there are two ways to make it work, and one of them is much better than the other. Here's both.
Option 1: FaceTime + chess app (the workaround)
The standard way people play chess on FaceTime is to start a video call and run a chess app alongside it.
On iPhone or iPad (Picture-in-Picture):
- Start a FaceTime call with your opponent.
- Swipe up to go to your home screen — the FaceTime call shrinks to a small floating window.
- Open chess.com or Lichess app.
- One of you creates a private game and sends the link via iMessage in the FaceTime chat.
- Both join the game. Make moves in your own app. The little FaceTime window stays on top so you can see each other.
On Mac:
- Start FaceTime, position the window to one side of the screen.
- Open chess.com or Lichess in your browser on the other side.
- Same process — one creates a game, sends the link, both join, both play in their own browser window.
This works. It's just clunky in the same ways the Zoom + chess.com workflow is clunky.
What's annoying about it
The PiP window is tiny. On iPhone, that little floating FaceTime rectangle covers the corner of your chess app. You can move it, but it's always in the way of something.
Two apps competing for attention. You're switching focus between the chess app and the call constantly. The whole "I want to see my opponent's face when they realize they hung the queen" magic gets lost when their face is a postage stamp in the corner.
Sync delay. Same as the Zoom problem — FaceTime audio/video is on one connection, the chess app sync is on another. They drift slightly.
SharePlay is hit or miss for chess. Apple's SharePlay was supposed to fix this kind of thing, but most chess apps haven't built proper SharePlay integrations. The ones that have are limited to puzzle modes, not live games.
Battery drain. Running FaceTime + a chess app on iPhone burns battery fast. Long games will run you down.
Option 2: Skip FaceTime, use a dedicated tool
The cleaner approach is to use something built for this. ChessChat works in any browser on any device — including Safari on iPhone, iPad, or Mac — and combines the video call and the synced board in one screen.
You don't need to switch apps. You don't need to manage two windows. You don't need both people on Apple devices.
How ChessChat compares for iPhone users
| FaceTime + chess app | ChessChat | |
|---|---|---|
| Number of apps to manage | 2 | 1 |
| Both players on iPhone | Required | Not required |
| Browser-based | No (FaceTime is native) | Yes |
| Both can see board large | No (PiP is small) | Yes |
| Works with Android friends | No | Yes |
| Battery drain | High | Lower (one connection) |
The big practical win: your chess opponent doesn't have to own an iPhone. If your friend or partner has an Android, a Windows laptop, or a Linux machine — you can't FaceTime them at all. ChessChat works in any browser, so the platform mismatch disappears.
Setting up ChessChat from your iPhone
If you want to try it instead of the FaceTime workaround:
- Open Safari (or any browser) on your iPhone.
- Go to chesschat.app.
- Tap "Create Private Arena" or "Find Random Opponent."
- If creating a private arena, tap the share button to send the link via iMessage.
- Allow camera and microphone access.
- Play.
Your friend opens the link on their phone or computer, and you're playing in under a minute. The board takes up most of the screen, and the video sits in the corner without blocking pieces.
When FaceTime still makes sense
If you're already on a FaceTime call with someone and the chess game is a spontaneous thing, the workaround is probably faster than convincing them to open a new app. Use what you've got.
But for any kind of regular chess game with someone who isn't physically next to you, a tool built for video chess will save you hours of fiddling over the long run.
