Multiplayer typing race: race your friends with a 5-letter room code

Create a room in one click, share the code or the link, and everyone types the exact same text at the exact same moment. Progress bars update live, the server keeps the clock, and the highest WPM wins. Nobody needs an account.

Updated by · Leer en español

How to start a typing race with friends

  1. Open the lobby

    Go to keyduelo.vercel.app/play. The list of active rooms refreshes every 2 seconds.

  2. Pick a nickname (optional)

    Leave it blank and you get a guest name such as guest4821. It is stored only in your browser.

  3. Create a room

    Click "create new room". You receive a 5-letter code (letters A to Z and digits 2 to 9, without the ambiguous I, O, 0 and 1) and become the host.

  4. Invite your friends

    Use the copy-link or copy-code button in the room header and paste it in your group chat. Whoever opens the link joins instantly, without signing up.

  5. Set the race

    As host, choose words (10 to 100) or time (15 to 60 seconds) and whether the text has punctuation. Everyone in the room sees the change live.

  6. Start

    Click start. A synchronized 3-2-1 countdown runs on every screen at once.

  7. Race

    Type. Each player has a progress bar relative to the leader, refreshed about every 150 milliseconds.

  8. Results and rematch

    The ranking shows WPM, accuracy and time for each player. The host clicks "next race" to run it again with a fresh text.

How the ranking works

The rules are enforced by the room server, not by your browser, so nobody wins by editing a local clock or a progress message.

Host, players and spectators

RoleHow you get itCanCan't
hostYou created the roomChange settings, start the race, remove players, launch the next raceHand the role to someone else
playerYou joined a room in lobbyMark ready, race, see everyone’s statsChange settings, start, remove players
spectatorYou chose spectate, or joined a room already racingWatch progress bars, countdown and resultsType, mark ready, appear in the ranking

If the host leaves, the room closes and everyone returns to the lobby with a notice. There is no confusing hand-off: a new room is one click away.

Public rooms and spectator mode

The lobby lists every active room with its host, mode, player count and status. Rooms in lobby accept players; rooms already racing accept spectators, so a friend who arrives late can still watch the finish. Any listed room can be joined by anyone, so share the code with the people you want in the race and start as soon as they are in.

Why race on keyduelo

Current limits

Frequently asked questions

How many people can join a typing race room?

There is no fixed cap in the room server. Each room runs on its own Cloudflare Durable Object and every participant adds one WebSocket connection. Groups of 2 to 20 are the sweet spot for readable progress bars.

Do my friends need an account to race?

No. Anyone who opens the room link or types the 5-letter code in the lobby joins immediately. If they skip the nickname, keyduelo assigns a guest name.

Can I watch a race without playing?

Yes. Use the spectate button on any room in the lobby, or join a room that is already racing: it opens in spectator mode with the live progress bars and the synchronized countdown.

What happens if the host disconnects?

The room closes and every player and spectator is sent back to the lobby with a notice. Anyone can create a new room in one click. A host who only refreshes the tab keeps the role thanks to a token saved in their browser.

Does distance or latency affect the result?

Your WPM is computed from your own keystrokes in your own browser and sent to the room as progress counters, so a slow connection delays what others see, not your score. In time mode the server clock defines the same start and end for everyone.

Can I race against a bot or use my own text?

Not yet. keyduelo races are human versus human on a text generated from 282 common English words, with optional punctuation. For solo practice, the typing test on the home page is the place to go.