billstclair/elm-websocket-framework package at elm-lang.org
A websocket-based client/server framework written almost entirely in Elm.
This package is the client side. The server side is in billstclair/elm-websocket-framework-server.
You design your protocol, write JSON encoders and decoders for it, the server logic to use it to transform state, and the client logic to provide a user interface, and this package does the rest.
The server side depends on Node.js.
For single-player use, and development, you can wrap your server-side code for client use, in elm-reactor
if you want, then switch easily to using a real remote server.
I have used this basic technology for both my Spokes and Archmage games. I made the Archmage version by copying and modifying the Spokes version. Then I generalized the ideas, and have used it so far in Zephyrnot, JSMaze, and AGOG.
See the README in the Example directory for instructions on building and running the examples.
Happy Hacking!
Bill St. Clair 31 March 2018