A web app for playing Connect6 games online, built with Rust frameworks Leptos and axum.
- Easy Setup: Submit a passcode to start a game. Then send a link to your friend, who submits a different passcode to join the game.
- Infinite Board: The board is 32,767x32,767 in size, with drag & zoom support. Generally1, you never worry about hitting the border.
- Export Permanent Link: Click Export in the game menu to open a copy of the game in a new tab for analysis. Right click or long press to copy a permanent link. Feel free to share it with others or save it for your collection!
- Requests: Request your opponent to retract the previous move or reset the game (clear the stones and optionally swap colors), or offer a draw (why do this when you have infinite space and time?).
- Manual Claim of Win: Watch your friend not notice their six-in-a-row and win before them!
- Local Play: You can choose to play locally. A local game is saved in the browser's local storage.
- Keyboard Control: It's possible to control the app with keyboard only.
![]() |
![]() |
![]() |
![]() |
Install Rust 1.88+ and Node.js. To develop, run:
git clone https://github.com/yescallop/c6ol
cd c6ol
# In one terminal:
cd server
cargo run
# In another:
cd client
npm install
npm run devTo build for deployment, run:
cd client
npm install
npm run build
cd ../server
cargo build --release
cd ..To deploy, copy target/release/c6ol-server and client/dist to a directory on the server, cd into it and run:
./c6ol-server --listen [::]:8086 --serve-dir dist --db-file c6ol.dbA Connect6 Online server will be listening at port 8086 on all available interfaces, serving static files under dist, loading games from and saving games to c6ol.db.
Footnotes
-
It is good sportsmanship to start near the center and to place stones near existing ones. ↩



