naman0r/tandemcode

A tech collaborative interview preparation tool made using python, WebSockets, AWS and React. Pair-program interview problems in one Yjs-synced editor, judged against hidden tests in gVisor sandboxes.

Python

0

110 commits

updated Sep 24, 2026

See the code

See what people are saying

README

TandemCode logo

TandemCode

Practice coding problems with a partner.
One shared editor, one judge, and a replay of the whole session.

tandemcode.space  ·  Docs  ·  Add a problem

Site status API status Vercel deployment Backend tests Web checks License

Two people share a room, edit the same code with live cursors, chat, and run their solution against the problem's tests together. Everyone in the room sees the verdict, and the session can be replayed afterwards. TandemCode is free and open source under the Apache License 2.0.

What it does

  • Rooms that are public or unlisted, shared by invite link, with a way to ask for a partner.
  • One shared editor with live cursors, built on Yjs.
  • Problems with starter code, visible examples and hidden tests, added by pull request.
  • Python submissions judged in an isolated container per run, with the verdict shown to everyone in the room.
  • A replay of each session: the code as it was typed, the chat and every run.

Run it locally

You need Docker, Node 22 and a free Clerk application.

make setup    # copy the .env templates, install web dependencies
              # then fill in the Clerk keys and a DB password
make up       # Postgres, the API and the runner
make web      # http://localhost:5173

docs/development.md has the details, the checks and the common changes.

Stack

  • Web: React 19, Vite, TypeScript, Tailwind, Monaco, Yjs, Clerk.
  • API: FastAPI on Python 3.11 with asyncpg, HTTP plus two websockets.
  • Runner: the API's image running python -m app.runner, judging in Docker containers under gVisor.
  • Database: Postgres 17 with forward-only SQL migrations.
  • Production: one Linux host with Docker Compose and Caddy, and the web app on Vercel.

Docs

Contributing

Pull requests are welcome, and adding a problem is the easiest place to start. CONTRIBUTING.md explains both. Report security issues privately as described in SECURITY.md.

Contributors

naman0r

110 commits

naman0r/tandemcode

A tech collaborative interview preparation tool made using python, WebSockets, AWS and React. Pair-program interview problems in one Yjs-synced editor, judged against hidden tests in gVisor sandboxes.

Python

0

110 commits

updated Sep 24, 2026

See the code

See what people are saying

README

TandemCode logo

TandemCode

Practice coding problems with a partner.
One shared editor, one judge, and a replay of the whole session.

tandemcode.space  ·  Docs  ·  Add a problem

Site status API status Vercel deployment Backend tests Web checks License

Two people share a room, edit the same code with live cursors, chat, and run their solution against the problem's tests together. Everyone in the room sees the verdict, and the session can be replayed afterwards. TandemCode is free and open source under the Apache License 2.0.

What it does

  • Rooms that are public or unlisted, shared by invite link, with a way to ask for a partner.
  • One shared editor with live cursors, built on Yjs.
  • Problems with starter code, visible examples and hidden tests, added by pull request.
  • Python submissions judged in an isolated container per run, with the verdict shown to everyone in the room.
  • A replay of each session: the code as it was typed, the chat and every run.

Run it locally

You need Docker, Node 22 and a free Clerk application.

make setup    # copy the .env templates, install web dependencies
              # then fill in the Clerk keys and a DB password
make up       # Postgres, the API and the runner
make web      # http://localhost:5173

docs/development.md has the details, the checks and the common changes.

Stack

  • Web: React 19, Vite, TypeScript, Tailwind, Monaco, Yjs, Clerk.
  • API: FastAPI on Python 3.11 with asyncpg, HTTP plus two websockets.
  • Runner: the API's image running python -m app.runner, judging in Docker containers under gVisor.
  • Database: Postgres 17 with forward-only SQL migrations.
  • Production: one Linux host with Docker Compose and Caddy, and the web app on Vercel.

Docs

Contributing

Pull requests are welcome, and adding a problem is the easiest place to start. CONTRIBUTING.md explains both. Report security issues privately as described in SECURITY.md.

Contributors

naman0r

110 commits

Languages

Python

60.0%

TypeScript

36.2%

Shell

1.9%