Solution 1:

You could use hardware compatibility databases. You can even set Ubuntu Linux as a search attribute.

When I buy new hardware I usually google for that hardware. Let's say I want to buy a graphic card from nvidia, the gtx260. I would google for "gtx 260 ubuntu" and then I see if other people have any problems. I do that for all the hardware. I always prefer hardware from companies who have open-source drivers or generally a good reputation in the linux community.

Solution 2:

Canonical has a Component Catalog. Those should work with Ubuntu and not cause conflict. How well they work together in general is not shown.

Solution 3:

Try new Linux-Hardware.org database of Linux-compatible computers & devices.

Sample search for GTX 260 (mentioned in previous comments): https://linux-hardware.org/?view=search&name=GTX+260

enter image description here

Make a probe after assembling to check all devices: https://github.com/linuxhw/hw-probe

I'm the author of this project, so feel free to ask any questions in comments!

Enjoy!