Please open this file in the developer tools, and press the start button. Then press reset as often as you like, and stop. Then hit start again.

This file is a variant of a very basic loop:


    function handle(event) {
        state = combine(state, event);
        render(state);
    }

The idea behind this code is explored more fully in the readme. Here, the render() is just console.log(state), and the event is just the number '6'. State is updated every 50ms.

Another thought that has been on my mind is this: how far can you get on the modern web without resorting to build-tools? No modules, no linters, no bundlers, minifiers, no transpiled languages of any kind. Avoid libraries, both JS and CSS, but if added add by hand, and serve from the origin host (no CDN). On the plus side, you can assume only modern browsers, which means modern tools like ES6, CSS3, and HTML5, and all the modern DOM API features you could ever want. How far can you get? What would your code look like?