Our biggest struggle has been credit card processors. Conventional banks don't take payments for "Marijuana-related businesses". We started on Stripe and had to move in to the world of Bitcoin-backed payment solutions. We've gone through three to four different ones so far.
I learned a lot about web sockets, WebRTC, and general backend deployment (SSL, Amazon, etc). I also learned a lot about PCI compliance and the online payments world at large.
We also released an Android and iOS app for EazeMD, both backed by Cordova.