That stuff isn't "hard" per se, and some of that stuff isn't even needed for a MVP, they're good to haves or only really required when you've got 100s of users (product dependant of course). If the MVP doesn't get there either iterate product or bin it
None of these are difficult per se. Multiple of them, working seamlessly together, having them tested, documented and battle tested is a bit more difficult.
Then you think about all that time doing this could have been spent in actual business logic and it makes no sense to me anymore.