DM Vault
Een gratis online gereedschapskist voor Dungeon Masters. Draai de hele sessie vanaf één scherm: encounters, combat, soundboard en muziek, terwijl je spelers meekijken op hun eigen scherm.

Waarom
Ik leid al jaren campagnes en kende de chaos van tabbladen: een monsterboek hier, een tracker daar, muziek in een derde venster. Ik wilde alles in één dashboard, zonder gedoe voor mijn spelers. Zij typen een code in en zijn binnen, zonder account.
Wat het doet
- Een dashboard met widgets: encounters, combat tracker, monsterbibliotheek, soundboard met 16 knoppen en muziek.
- Realtime naar het scherm van de spelers: wat jij laat zien, zien zij meteen.
- Een Discord-koppeling en een ontwikkellogboek op de site, met echte berichten uit de eigen API.
- Een gratis laag voor iedereen, en een premium-laag voor wie meer geluiden of ruimte nodig heeft.
Onder de motorkap
- Frontend: React 19, Vite en TypeScript. Beweging komt van gewone React-hooks en browser-API's, zonder extra bibliotheken.
- Backend: Express 5 met TypeScript, PostgreSQL, JWT-authenticatie, uploads en Socket.IO voor de realtime kant.
- Mail: een Cloudflare Worker verwerkt binnenkomende mail, en transactionele mail loopt via Resend.
- Hosting: een Hetzner-server met Caddy en pm2. Updates gaan met een changelog die ik bijhoud.
Privacy als ontwerpkeuze
Op de homepage staat "We don't track you", en dat meen ik. De statistieken in het beheerpaneel werken zonder cookies, zonder gebruikers-ID's en met een dagelijks wisselend zout voor het hashen van IP-adressen. Gegevens bewaar ik maximaal 13 maanden. Ik zie welke widgets populair zijn en waar de API traag is, zonder dat ik iemand hoef te volgen.
Wat ik leerde
Een tool voor je eigen hobby is de beste manier om goed te leren bouwen. Ik ben mijn eigen eerste gebruiker en dus mijn eigen strengste criticus. Een tweede versie van het dashboard (V2) is nu de standaard, en ik heb geleerd hoe je gebruikers veilig laat verhuizen zonder dat iemand zijn sessie kwijtraakt.
Zin in een goed gesprek?
Over data, een project of een campagne. Ik sta altijd open voor een kop koffie of een bericht.