Project started as a local Twitch Bot, but little by little it has grown in some kind of all-in-one solution. Other than Chat Bot, it has features like Widgets, StreamDeck-like virtual panel and even Virtual Camera, if you want to use your smartphone as a webcam.
This is a “Work In Progress” as of now, so I’ll write about it in more details soonTM.
For the server side I used Node and Express, and for database SQLite3 and Prisma as ORM.
One one hand I wanted the stack to be like all-in-one pack, so it could be easily installed with a single
npm install command.
Streamers more often than not are quite tech-savvy, but that doesn’t mean that we should expect developer or dev-ops level of skills from them.
So I didn’t want any out-of-the-ecosystem dependencies like Postgres or MySQL. More different third-party installs = more additional configuration = more things can go wrong. Let’s keep it as simple as we can, but not simpler.
On the other hand I wanted something more resilient and performant than simple JSON files to store everything from rarely updated options to instantly processed chat messages if need be. So, I think that this stack is a good balance between complexity and functionality/performance.
For the client-server communication I didn’t want to write REST endpoint for every little thing, so I decided to go with GraphQL. Not only User Experience matters, but Developer Experience also matters, you know :)