I've been doing this for years, "upgrading" every 6 months when I find a new machine being thrown away. In the past year I did this with a 2006 Mac Pro and a 2013 System76 desktop. Both of these machines were a delight to work on - I was able to get 16gb of DDR2 ECC RAM and 2 quad-core Xeons for the Mac Pro for around $28 total on ebay. The Mac Pro could be flashed up to a 2007 model and ran El Capitan perfectly with a cheap no-name SSD off Amazon. It took a GTX 760 with some odd power adapters and it was a fantastic machine to do audio editing and playing with tensorflow-gpu on.
The System76 machine was a little more modern, with a Haswell i7, and after a new aftermarket cooler, fresh thermal paste, and another no-name SSD it ran Manjaro silently, even with Bazel putting it under some serious load.
I'm moving soon, so I sold both machines for around $350 each. It's a fun challenge, since usually these computers don't see modifications or have as good documentation as enthusiast PC parts, so you'll find a tiny community in some obscure forum sharing supported CPU upgrades, how to change out the cooler, stuff like that. Highly recommend it.
The System76 machine was a little more modern, with a Haswell i7, and after a new aftermarket cooler, fresh thermal paste, and another no-name SSD it ran Manjaro silently, even with Bazel putting it under some serious load.
I'm moving soon, so I sold both machines for around $350 each. It's a fun challenge, since usually these computers don't see modifications or have as good documentation as enthusiast PC parts, so you'll find a tiny community in some obscure forum sharing supported CPU upgrades, how to change out the cooler, stuff like that. Highly recommend it.