Turn household chores into a pixel art RPG adventure for the whole family.
Each family member gets a hero and a daily monster to fight. Complete chores to deal damage — defeat the monster before midnight to earn gold, or it strikes back. Spend gold on rewards you've agreed on as a family.
Built to run on a kitchen tablet, locked to a browser, always-on.
The interface runs fullscreen in the browser. Each player gets a card with their hero, live HP bar, and current monster. Completing chores hits the monster — chain them fast for combo damage, score a crit, or find loot drops.
Player card — hero class, gold, XP bar, crit %, streak
Monster section — animated pixel art enemy, segmented HP bar, kill = gold reward
Chore grid — daily / weekly / monthly quests shown with damage values
Dungeon map — per-player fog-of-war grid; chores earn moves, rooms hide gold, traps, and mini-bosses
Reward shop — spend gold on family rewards you configure in setup
History — full log of kills, loot drops, rewards redeemed, badges earned
Step 1 — Run the container
In the HA Terminal add-on:
mkdir -p /mnt/data/supervisor/questboard/data
docker run -d --restart unless-stopped -p 8099:8099 \
-v /mnt/data/supervisor/questboard/data:/data \
ghcr.io/thillygooth/questboard:latestStep 2 — Add to the HA sidebar
In configuration.yaml (use the File Editor add-on):
panel_iframe:
questboard:
title: "Questboard"
url: "http://<your-ha-ip>:8099"
icon: mdi:sword-cross
require_admin: falseReplace <your-ha-ip> with your Home Assistant IP (e.g. 192.168.1.34). Find it under Settings → System → Network.
Restart HA (Settings → System → Restart). Questboard appears in your sidebar.
mkdir -p /opt/questboard/data
docker run -d --restart unless-stopped -p 8099:8099 \
-v /opt/questboard/data:/data \
ghcr.io/thillygooth/questboard:latestOpen http://localhost:8099.
Use any writable absolute path for the data volume. On Home Assistant OS use
/mnt/data/supervisor/questboard/datainstead of/opt/questboard/datasince most of the filesystem is read-only.
Questboard is a standalone web app — no connection to Home Assistant required. Run it on any machine on your network.
panel_iframe:
questboard:
title: "Questboard"
url: "http://<docker-host-ip>:8099"
icon: mdi:sword-cross
require_admin: falseReplace <docker-host-ip> with the IP of whichever machine is running the container.
A setup wizard runs the first time you open the app:
- Set the number of players (1–6)
- For each player: name, difficulty (kids / adults), avatar class
- Choose which chores to track — toggle any on/off, set custom values, add your own
- Configure the reward shop — enable/disable rewards, set custom costs
- Toggle the CRT scanline overlay on or off
# Frontend (hot-reload dev server on :5174)
cd frontend && npm install && npm run dev
# Backend (auto-reload API server on :5050)
cd backend && pip install -r requirements.txt
uvicorn main:app --reload --port 5050The dev server proxies /api/* to the backend automatically.
MIT — free to use, fork, and share.
Sprite assets from OpenGameArt.org under CC-BY / CC0 licenses. Font: Pixelated Elegance by GGBotNet (CC0).

