A web application that helps tabletop RPG Game Masters (GMs) align player expectations before session zero. Players complete a structured survey about their campaign preferences, which are then scored against four archetypes (Combat-Focused, Story-Driven, Sandbox, Tactical) to provide actionable recommendations for campaign theme and tone.
Tabletop RPG campaigns fail not because the GM is unprepared, but because the table is misaligned. Players show up expecting wildly different things: one wants brutal combat, another wants deep character drama, a third wants an open sandbox. Without a structured way to surface these preferences before session zero, GMs are flying blind.
The GM Campaign Preference Tool solves this by giving GMs a short, structured player survey that collects preferences, scores them against four campaign archetypes, and produces an actionable recommendation for campaign theme and tone — before a single die is rolled.
- Framework: Nuxt.js 3 (Vue.js)
- Language: TypeScript
- Styling: Tailwind CSS
- Backend: Supabase (PostgreSQL + Auth)
- Deployment: Supabase (planned)
- Node.js 18+
- npm or pnpm
-
Clone the repository
-
Install dependencies:
npm install
-
Set up environment variables: Create a
.envfile with:SUPABASE_URL=your_supabase_project_url SUPABASE_ANON_KEY=your_supabase_anon_key -
Start the development server:
npm run dev
The application will be available at
http://localhost:3000
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run generate- Generate static site
├── app/ # Nuxt app directory
│ ├── components/ # Reusable Vue components
│ ├── pages/ # Page components (file-based routing)
│ └── layouts/ # Layout components
├── composables/ # Vue composables
├── utils/ # Utility functions
├── types/ # TypeScript type definitions
└── public/ # Static assets
This project uses OpenSpec for change management. See openspec/ directory for specifications and change tracking.
MIT
yarn build
bun run build
Locally preview production build:
```bash
# npm
npm run preview
# pnpm
pnpm preview
# yarn
yarn preview
# bun
bun run preview
Check out the deployment documentation for more information.