A modern tabletop RPG encounter management application designed to streamline your game sessions.
Behind-the-screen is a comprehensive tool for Game Masters to manage tabletop RPG encounters. Track initiative, manage players and NPCs during combat encounters. This application is currently in early development, with the encounter management system being the first feature under construction.
- Encounter Management: Create, view, and manage combat encounters.
- Initiative Tracking: Easily track turn order for players and monsters during combat.
- Character Management: Add and manage player characters and non-player characters/monsters within encounters.
- Difficulty Calculation: Estimate encounter difficulty based on player levels and monster challenge ratings.
This project is free to use under the MIT License. The copyright belongs to Shane Schmaltz. While the project is freely available, it is not currently open for contributions.
- Next.js 15
- React 19
- TypeScript
- MongoDB
- Tailwind CSS & DaisyUI
- Auth0 Authentication
- GraphQL (GraphQL Yoga)
- Vercel (Deployment & CI/CD)
This application utilizes Next.js for both the React frontend and the server-side API routes. GraphQL (via GraphQL Yoga) is used for data fetching between the client and server. The architecture follows standard Next.js patterns, leveraging React components, custom hooks for state management, and context for global state.
- Node.js (latest LTS version)
- MongoDB instance (local or cloud)
- Clone the repository
- Install dependencies:
npm install - Set up environment variables:
Create a
.env.localfile by copying the template:Then, opencp .env.base .env.local
.env.localand fill in the required values for your environment (e.g., database connection strings, API keys). Important: Ensure.env.localis included in your.gitignorefile and is never committed to version control.
Run the development server:
npm run dev
Open http://localhost:3000 to view the application.
The application uses Vercel for continuous integration and deployment:
- Preview Deployments: Every push to a branch automatically creates a preview deployment
- Production Deployment: Merges to the main branch trigger automatic deployment to production
- Environment Variables: Managed through the Vercel dashboard
npm run build- Build the application for productionnpm run start- Start the production servernpm run lint- Run ESLintnpm run prettier- Run Prettier code formatter
/components- Reusable UI components/container- Container components/context- React context providers/hooks- Custom React hooks/lib- Utility functions and libraries/pages- Next.js pages and API routes/providers- Service providers/public- Static assets/repositories- Data access layer/styles- Global styles and Tailwind configuration/types- TypeScript type definitions
This project is under active development. Currently focusing on building the encounter management system, which includes initiative tracking, character management, and combat facilitation for tabletop RPG sessions.
This application includes Open Game Content from the System Reference Document 5.1 (SRD 5.1) by Wizards of the Coast, LLC, used under the terms of the Open Game License v1.0a. Only content from the SRD 5.1 is included. Dungeons & Dragons and D&D are trademarks of Wizards of the Coast, LLC. See the OGL.txt file in this repository for the full license text.