I've only built a couple of PCs but my method has been to find a PC for sale that is outside my price range - check for Linux compatibility by searching for problems - and then source the parts that match the spec. I can modify as I go, double up on RAM or whatever.