Ethan Gayton
← All projects

Holodle

A Wordle-style daily game played as a Discord Activity, with live progress from everyone playing.

116
commits in three months
~176
automated tests
6
clues per guess
$0
a month to host

Why I built it

A Discord community I’m in wanted a daily guessing game about the VTubers (streamers who use animated avatars) they follow, something like Wordle that friends could play together as a Discord Activity. Everyone gets the same puzzle, you can watch your friends’ progress as it happens, and nobody can spoil the answer.

How it works

It’s a Discord Activity, which is a web app that runs inside Discord. The front end is React, and the server uses Fastify and Socket.IO for live updates. Other players see your colored squares but not who you guessed.

The answer isn’t sent to your browser until your game is over. The server grades every guess, so there’s nothing to dig out of the page.

Each day’s answer is picked so that recent ones are unlikely to come back soon and every VTuber gets a turn over time. The day rolls over at your own midnight, daylight saving included. At the end of the day, the server draws everyone’s results as an image and posts it back to the channel.

Measuring the game

I built an admin page so I could answer design questions with data. For each guess people made, it rebuilds the list of possible answers they were facing and measures how much each clue narrowed it down. That shows which clues help the most and which barely help at all. There’s also a solver that suggests the best next guess, which is a handy way to check whether a puzzle is fair.

Making sure it’s right

About 176 automated tests cover grading, the daily picker (time zones and daylight saving included), the analytics, and how it handles requests from Discord. Later work went through pull requests.

Play it

This is Holodle’s real front end, set up to run without its server or Discord. Your guesses are graded by the same code the server uses, and three pretend friends play the same puzzle next to you. Fan-made, not affiliated with Cover Corp.

Open full screen ↗