Of all the various sorts of shitcoins I've had to interact with programatically, XMR has been fairly painless so far, and I hate it significantly less than anything resembling ETH (and the web3 trashfire).
The main thing I'm not super thrilled with is having to rely on monero-wallet-rpc. If the node RPC, wallet/key format, and integrated address generation algorithm are all sufficiently documented I may just write my own client that can talk to a node.
I did say that I will work on the third party client API for shadowchat 0.2.0 next, but "write my own wallet RPC library" sounds more fun...