Monkeybattle is a Hearthstone-style CCG made with Vue 3 & NestJS in TypeScript. It uses Vue to render the game in the DOM and features a completely reactive game state from the server down to the front end by using a combination of JS Proxies, JSON patching and a reactive Vue state.



# compile the shared code used between server and client
cd engine
npm install
npm run compile

# Run the server
cd ../monkeybattle-server
npm install
npm run start

# Run the client
cd ../monkeybattle-client
npm install
npm run serve

State Management Overview

game state


View Github