APIsI used a microservices architecture, dividing the "frontend" (the actual overlay), the database, and the chatbot into different services each written/implemented in Javascript, Postgres, and TypeScript respectively; each service required an API for communicating with the other services
Three.jsThe overlay is implemented with Three.js for interesting 3D animations
BlenderI made use of Blender for some of the 3D models
GIMPI made use of GIMP for the images and other graphical elements
JavaScriptThe overlay was written in Javascript with Three.js
TypeScriptThe chatbot was written in TypeScript which I extended for my use
DockerThe services were orchestrated using Docker compose
Node.jsThe APIs were implemented with an Express server