Mixi is a self-hosted, minimalistic cross-platform .NET MAUI Blazor Hybrid app designed to assist with organizing and running tabletop role-playing games (TTRPGs). It offers tools for both Game Masters and players to streamline session prep, gameplay, and immersion.
- Game Master and Player accounts
- Name generator
- Character card support
- Youtube music player with built-in adblocker
- Modular and extensible architecture
- .NET MAUI Blazor Hybrid (client)
- ASP.NET Core Web API (backend)
- C# / .NET 8
- Microsoft SQL Server
- Entity Framework Core
- .NET 8 SDK
- Visual Studio 2022 (17.8+) with the .NET Multi-platform App UI workload
- Microsoft SQL Server (Express or Developer edition)
- SQL Server Management Studio (SSMS) (optional, for managing your database)
- Node.js
Mixi uses Microsoft SQL Server .
The API project (Mixi.Api) connects to a local SQL Server instance using credentials stored in .NET user secrets.
Download and install SQL Server Express or Developer Edition, then make sure the local instance is running (e.g., localhost or localhost\SQLEXPRESS).
Open SQL Server Management Studio or use the command line to create an empty database named MixiDB:
In the project directory of Mixi.Api, initialize and set your secrets:
cd Mixi.Api
dotnet user-secrets init
dotnet user-secrets set "ConnectionStrings:DefaultConnection" "Server=localhost;Database=MixiDB;User Id=your_user;Password=your_password;TrustServerCertificate=true;"
Replace your_user and your_password with your actual SQL Server login credentials.
Since migrations are not applied automatically at startup, you need to apply them manually before running the app:
cd Mixi.Api
dotnet ef database update
Run the backend (API) and client separately:
dotnet run --project Mixi.Api
dotnet run --project Mixi.App
-
Campaign/session manager
-
Player dashboard
-
Dice roller
-
Messages between players and GM
-
And more!
Pull requests are welcome! To contribute:
- Create your feature branch:
git checkout -b feature/my-feature
- Commit your changes:
git commit -m 'feat: added feature'
- Push to the branch:
git push origin feature/my-feature
- Open a pull reques
Licensed under the GNU General Public License v3.0.