All the elements are simply DOM elements that are manipulated via event handlers and methods. Every moving element is handled through calling React setState at roughly 60 times per second and then simply allowing Reacts renderer to redraw.
The collision detection code came from another project of mine Deathbot. This was done simply as an experiment to see if I could make a playable game using the DOM and React.
Please don't make games this way.
git clone https://github.com/bsdavidson/rong.git
cd rong
npm install
From here you can run
npm start
This will start a webpack-dev-server where you can play it locally. You can also run:
npm run dist
This will build a static version that can be run without any dependencies.
There are tests!
npm run test