Here’s my computer-building resumé: Over the years I’ve replaced every part of a desktop computer and I’ve built one from scratch about 6 years ago. Building is not hard but it is tedious. There are just a few parts that you need to build a desktop machine: case, power supply, motherboard, CPU, RAM, SSD, CPU cooler, GPU. Maybe a BlueRay disk burner so your photographer can deliver images to her clients that way.
Despite the small number of pieces needed to build a computer there were some issues that caused me problems. For example, the motherboard has headers where you plug in the fans. The headers had four pins sticking up. The fan plug had three holes. An experienced builder knows that this is OK, just plug the three hole socket onto the four pin header, it only fits one way and the fourth pin is unused. However, I didn’t know this and spent some time and worry over the issue. I had a similar problem with the liquid CPU cooler. It had a connector that looked like a data connector (to control the pump and fan speed, I thought) but was in fact the power connector. This was not documented ANYWHERE, even on the manufacturer’s web site. Again, an experienced builder would know this but I did not.
I recently priced out the cost of my possible next desktop for a build vs. buy decision. I could save about $300 (US $) by building it myself. It’s hard to get an exact number because the professional builders don’t necessarily use the exact brands of hardware that I would choose. I also estimated that it would take me 10 to 15 hours to collect all the hardware and assemble it assuming all went well, which for me would be unusually lucky. My personal superpower is to make every possible mistake on any project I undertake.
If you do decide to build it I’d suggest NOT getting bleeding edge hardware. Use stuff that’s been on the market a while so that any bugs are fixed and the hardware is supported in the kernel, etc. I ran into this issue when I built my desktop machine. It took me a few hours to figure out that I had to install the daily build of Ubuntu LTS, not the point release.
As others have pointed out, if you build it for your client she’ll come back to you for repairs and support if any are necessary.
When I need to replace my current machine I’m going to have it built for me. The money saved by building it myself is not that great an amount, especially when amortized over 6+ years. I am proud of the machine I built and it was, in the end, a satisfying thing to do. But as the saying goes “Been there, done that.”