Skip to content
Nachi3D Labs

ProjetsTavernKeeper

TavernKeeper

En ligne

Compagnon D&D 5e — fiches de personnage, compendium, campagnes et chroniques générées par IA.

Démo en ligneCode source disponible sur demande
TavernKeeper — écran d'accueil de l'application D&D — screenshot 1

À propos du projet

Présentation

TavernKeeper est une application web pour les groupes de D&D sur table. Les joueurs créent leurs personnages via un assistant en 6 étapes, les MJ gèrent leurs campagnes avec chapitres et événements, et quand un chapitre se termine, Llama 3.3 70B via Groq génère une chronique narrative qui se pousse dans le journal personnel de chaque joueur. Pensée pour mon propre groupe et pour ceux qui jouent autour d'une vraie table — pas de simulation de combat, pas de lancers de dés (sauf si vous le souhaitez), pas de table virtuelle. L'idée centrale : l'app se souvient pour que les joueurs puissent jouer.

Choix techniques : monorepo Express + React + Vite, SQLite (node:sqlite en local, better-sqlite3 sur Railway) plutôt que Postgres parce que l'échelle ne le justifie pas encore, bcryptjs plutôt que bcrypt natif pour éviter les outils de build Windows, vite-plugin-pwa pour l'installation mobile.

J'ai construit ça parce que le problème du « je ne me souviens plus de ce qui s'est passé la dernière fois » était bien réel dans mon propre groupe, et chaque outil existant tente soit de remplacer la table physique, soit vous noie dans les fonctionnalités.

Fonctionnalités clés

Ce qu'il fait

Créateur de personnage avec race/classe/stats/équipement/sorts, incluant les bonus raciaux aux caractéristiques
Journal de campagne avec chapitres, événements et chroniques générées par IA via Groq
Assistant de montée de niveau adapté par classe/niveau — jet de PV, sous-classe, ASI ou don, nouveaux sorts
Repos Court et Repos Long avec suivi des Dés de Vie, pour le groupe ou par personnage
Invitations de campagne via code à 6 caractères ou lien unique, rôles MJ/Joueur par campagne
PWA installable sur Android, iOS et desktop — 105 tests Playwright au vert

Construit avec

La Stack

React 18
Express
node:sqlite
Groq AI
Playwright
Railway

Ce que je ferais différemment

Avec le recul

Je choisirais Postgres dès le premier jour — la migration SQLite est une dette que je paierai plus tard. Et je sauterais l'auth initiale par tokens pour aller directement aux mots de passe ; le chemin de migration progressive a coûté plus de complexité qu'il n'en a fait économiser.

Vous voulez quelque chose comme ça pour vous ?

Décrivez-moi ce que vous aimeriez construire et voyons si c'est un bon fit.