The site is open source and a mono repo.

You can see the architecture diagram to understand how everything works together.

Adding games

The site is able to load games in a completely modular fashion.

You need to have two entry points, in one or two separate modules.


The entry point of the game engine needs to be in JavaScript. It needs to have several functions exported.

Check out the docs!


The entry point needs to be in JavaScript. It should set a variable in the global scope. That variable needs to have a launch function, which takes in parameter a css selector and return an EventEmitter. The viewer will place itself inside the element indicated by the css selector (or replace it altogether), and the EventEmitter will be used to communicate.

There can be multiple script / css dependencies which will be loaded through <script> and <link> tags.

For more details, check out the docs!