The biggest challenge was the UI; I had to build something against mocks from photoshop, meaning it had to be pixel-perfect and identical to what the client had agreed to. Most contrib modules didn't have a way to easily customize the output (as far as I could tell), so I either had to modify the code of the module to produce exactly what I needed or just write the functionality myself (typically choosing the latter). Had I been working with a Drupal guru there may have been a way to avoid this, but who knows? It seems other commenters have mentioned needing to customize the modules themselves.
This was a very poor experience for me. D8 looks like a large improvement, but I was so thoroughly burned by the lack of clarity and community support that I doubt I will touch Drupal again.