As followup to my previous posting about how to control a grbl controlled CNC machine there is an easy and working open source solution based on nodejs. A raspberry pi for example is capable to operate the CNC shield running grbl as it is used on Gearbest T8 CNC. Smoothieware or TinyG is working aswell.
You can find the source here:
https://github.com/cncjs/cncjs/
An instruction how to setup on Raspberry Pi:
https://cnc.js.org/docs/rpi-setup-guide/
My raspberry pi is for example running octopi (http://octoprint.org/download/) and cncjs on the same device.