A browser multiplayer guessing game. Name the country, continent or state from its bare outline before the timer runs out.
- Solo & multiplayer — play alone or share a 4-letter room code with friends
- Daily challenge — a new challenge every day, with a global leaderboard
- Multiple categories — German states, US states, countries and continents
- Easy & hard difficulty
- Persistent stats & global leaderboard — wins, games played and best scores
- No accounts — just pick a name and an avatar
- Admin panel — manage rooms, users and games
- Settings menu — change language and sound settings
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Clone the repository:
git clone https://codeberg.org/doen1el/geo-shape
cd geo-shapeEdit the docker-compose.yml:
- Set the
GEOSHAPE_ADMIN_TOKENenvironment variable to a secure value. This token is used to access the admin panel. - Set the
GEOSHAPE_SECRETenvironment variable to a secure value. This secret is used for signing cookies and other sensitive data. - Set the
GEOSHAPE_ALLOWED_ORIGINSenvironment variable to a comma-separated list of allowed origins. This is used for CORS. - Set the
GEOSHAPE_TRUST_PROXYenvironment variable to1if you are running behind a reverse proxy.
Then run the following command to build and start the application:
docker compose up -d --buildThe game is then available at http://localhost:3000.
You can of course open issues for bugs, feedback, and feature ideas. All suggestions are very welcome :)
Clone the repository:
git clone https://codeberg.org/doen1el/geo-shape
cd geo-shapeInstall dependencies:
npm installRun the development server:
GEOSHAPE_ADMIN_TOKEN=dev-token pnpm dev







