Running something as complex as Lichess is... unwieldy when all I wanted was something I can quickly spin up in 5 mins on nearly any server, with a simple mobile interface for my father-in-law and child, and easy-to-debug (Lichess uses websockets which are often blocked by state firewalls).
If you don't have to deal with an amorphous state actor and a very different Internet culture, then please use Lichess. :)
In the context of chess I would imagine passing JSON around via EventSource/SSE should be more than enough.
For now, yes we are communicating moves in exactly the way you described EventSource! Eg:
{ "fen": "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1", "status": "active", "turn": "b", "white_ready": true, "black_ready": true, "spectators": 1, "in_check": false, "last_move": "e2e4", "game_over": false, "available_colors": [], "reservations": { "white": {"reserved": true, "expires_in": 0}, "black": {"reserved": true, "expires_in": 0} } }
PS: even has container images, e.g. https://github.com/lichess-org/lila-docker so before I could finish writing this message I had my own instance running.