I have been using a raspberry pi 3 to control my X-carve for over a year now and I could not be happier. I have used CNCJS, Bcnc, Chillipeppr, UGS platform, UGS and most importantly Easel local. I use a wireless keypad like this one
which allows me to stand over the work piece when I need to and jog the machine while I stand over it (very easy compared to doing it from a distance). again best controller decision I made.
the only thing I can warn you about with CNCJS is that it is browser based and most browsers have a file size limit that will prevent some large file from loading. when this happens you can just use Universal G-Code Sender which will not have the browser limitation as it is not browser based.
If you need any help use the search function as there are many post on this subject and if no answer then just ask as there are also several users that also use this platform that are always willing to help.