
About this project
Overview
TavernKeeper is a web app for tabletop D&D groups. Players create characters through a 6-step wizard, DMs run campaigns with chapters and events, and when a chapter closes, Groq's Llama 3.3 70B generates a narrative chronicle that pushes to each player's personal journal. It's built for my own gaming group and others who play at a physical table — it deliberately doesn't do combat simulation, dice rolling (unless you want to), or virtual tabletop things. The whole premise is that the app should remember so players can play.
Stack decisions: monorepo with Express + React + Vite, SQLite (node:sqlite locally, better-sqlite3 on Railway) instead of Postgres because the scale doesn't justify it yet, bcryptjs over native bcrypt to avoid Windows build tools, vite-plugin-pwa for mobile install.
I built this because the 'I don't remember what happened last session' problem was real in my own group, and every existing tool either tries to replace the physical table or drowns you in features.
Key features
What it does
Built with
The Stack
What I'd do differently
In hindsight
I'd pick Postgres from day one — the SQLite migration is a cost I'll pay later. And I'd skip the initial token-only auth and go straight to passwords; the soft migration path cost more complexity than it saved.
Want something like this built for you?
Tell me what you'd like to build and we'll see if it fits.