When I first started with my CNC router, I used various bits of free/open-source software. I already had various CAD options to produce dxf files, so I concentrated on the CAM side of things. The two I ended up using most were dxf2gcode for 2D profiling, and PyCAM for 3D. Both are OK, but I spent a lot of time chasing problems, trying to fine-tune, and so on. But they do work, just take rather more effort than some of the commercial tools. I also used f-engrave which turns text to gcode and might be of interest.

OnShape is good, but at least at the moment you would have to use it to produce dxf files and then use something like dxf2gcode to turn that into gcode for the router. Fusion 360 is a bit more complicated to learn, but has CAM built in. Both are free, but could be a bit overwhelming if you are not already a bit of a CAD jockey.