Skip to content

a virtual surface in the browser on which you can play board, dice and card games

License

Notifications You must be signed in to change notification settings

ArnoldSmith86/virtualtabletop

Repository files navigation

Virtual Tabletop

Play board games in your browser in seconds:

  1. ➡️ Go to virtualtabletop.io.
  2. 🎲 Select a game from the library.
  3. 🔗 Share the URL with your friends.
  4. 🤩 Play!

Free. Open-source. No accounts. No ads. Easy to self-host.

🃏 Available games

In December 2020 we started with 10 games. In June 2022 we passed 100 games in our public library of included games. By the end of January 2026, we had reached 300 games.

  • Classic board games: Chess, Checkers, Backgammon, Nine Men's Morris, ...
  • Classic card games: Poker, Jass, Whist, Doppelkopf, ...
  • Games similar to modern award-winning games like Catan, Dixit, The Crew, Sky Team, ...
  • "Indie" games: Godaigo, A Simple Life, Duel 52, Uncheckered, ...
  • And everything in between!
🎥 Demo video
Starting.a.game.mp4

For more details, visit Playing Games on our wiki.

🚀 How does it work?

  • The URL is a room (for example https://virtualtabletop.io/friday-nights). It looks the same for everyone who visits it.
  • Players can click cards to flip them, dice to roll them and drag cards around.
  • All interactions are synchronized in real-time to all players.
  • Cards snap to holders to make it easier to organize them.
  • Many games have a special cards holder that simulates having hands of cards - each player only sees their own cards.
  • VirtualTabletop.io does not include built-in voice or video chat. Players typically use external tools such as Discord, Zoom, or Jitsi for voice communication.

🛠️ Forging your own games

The beauty of virtualtabletop.io is that it has a powerful game editor built in.

Editor screenshot

Creating simple games can be done in a few minutes but there's basically no limit to what you can create:

  • Add widgets like dice, cards or card holders that work immediately.
  • Customize the look and behavior of each widget using the context-sensitive JSON editor.
  • With the full power of CSS at your disposal, you can completely customize the look and feel of your game.
  • Optionally automate certain aspects of the game using routines - a custom programming language inside the JSON.

For more details, visit 📚 Creating Games on our wiki, look at 🎓 our many tutorials or watch a detailed 🎥 YouTube walkthrough.

Mastering the game creation process is a bit daunting at first. But there are always people willing to help on our 💬 Discord server.

📡 Hosting your own server

If you just want to play games, you can go to the official server at virtualtabletop.io.

If you prefer to host your own server, you only need a working Node.js installation. The official server uses Node 18 but newer versions should work as well.

Afterwards, you can clone this repository (or download the ZIP file) and install the dependencies by typing:

npm install

Start the server by typing:

npm start

This will serve the project at localhost:8272. The port and some other settings can be configured in the config.json file.

🐳 Docker

There's also an official Docker image: https://hub.docker.com/r/arnoldsmith86/virtualtabletop

📱 Android

Using Termux, you can use an Android phone as the server and play with any devices offline by using its wifi hotspot:

  • Install and open https://termux.dev/ on your Android device.
  • Run curl -L is.gd/vttandroid | sh.

🤝 Contributing

Gitpod ready-to-code

If you want to contribute to virtualtabletop.io development, please read Helping Out.

Finally, we appreciate donations that go towards paying for the domain name, the servers, and additional software supporting game development. You can donate at https://www.patreon.com/virtualtabletop/about.

Enjoy! And don't be shy about asking questions in Discord; you will find a helpful and responsive audience.

🧩 Similar platforms

Note that virtualtabletop.io is heavily inspired by playingcards.io. We spent a lot of time building games and tools for playingcards.io. It is an amazing platform and definitely easier to get into than virtualtabletop.io but at some point, we craved more features and were afraid of the platform simply disappearing - making our games and tools useless. So in October 2020, a spark by Castux ignited a fire in one of us (ArnoldSmith86) to create an open source, self-hostable alternative. While ArnoldSmith86 wrote the first code, many others have made substantial contributions over the years.

But who knows, maybe you'll enjoy a different platform more than ours:

Platform Free Open Source Browser-Based Create Own Games Play without account Ad-Free Rule enforcement Real-time Asynchronous AI Opponents Mobile Support
18xx.games
Only with coding.
No online multiplayer without account.
Abstract Play
Only with coding.
? ?
Board Game Arena
Many games are free. Many aren't.
Only with coding and rights to the game.
Minor and relevant ads.
Only tutorials and demos.
BoardSpace.net
It's an app but can be used in the browser.
Only with coding.
Board Together
Only with coding.
BrettspielWelt
Minor and relevant ads.
CardGames.io ? ?
FreeBoardGames.org
Only with coding.
Online Board Gamers ? ? ? ? ? ? ?
PlayingCards.io
Playing and creating games is free. Some admin features are paid.
Unless you pay.
Pogo
You can play many games for free but Pogo is pushing monetization pretty hard.
?
No online multiplayer without account.
Unless you pay.
? ? ? ? ?
Rally the Troops
Only with coding.
? ?
Screentop.gg
Playing games is free. Some features for creating games are paid.
It has a built-in game editor but many features are paid.
? ? ? ?
Tabletop Simulator
Scripting allows it but many games don't use it.
Tabletopia
You can play a lot for free but it really tries to make you pay.
Free is limited but you can buy a subscription to do more.
? ?
Not all games are available.
Vassal
You can if you mail files back and forth.
VirtualTabletop.io
Scripting allows it but most games don't use it.
Scripting allows it in theory but it's way too complicated.
Yucata
On newer games. Older games require refreshing the page.
ZunTzu ? ? ? ? ? ?

📄 License

The project is licensed under GPLv3.

It uses artwork and fonts from various sources. For their licensing information, see the About section of the website.

The games in the public library have their license information and attributions inside their Attribution section when selecting them in the Game Shelf (or in their JSON files).

About

a virtual surface in the browser on which you can play board, dice and card games

Resources

License

Security policy

Stars

Watchers

Forks

Sponsor this project

Contributors 23