not blaming you my friend - I also get the same feeling sometimes! I'm new to all this IoT hype and just exploring what's available and what's not...
the primary issue that I see is not getting data - but using it for something redundant.. there is no "innovation" as such. IoT should target much larger issues than doing something which adds a whole lot of additional headache. There are stuff such as Estimotes as well - mostly used for marketing strategies than anything else :-/
One needs to think what is relevant to the product's requirements -- at the "current point of time" and use the framework that fits the bill.
The secret to success is to stop worrying about all the changes that are happening. It's imminent.. we are witnessing the evolution of JavaScript frameworks, which will definitely slow down at some point of time and become stable. Till then what's important is to keep yourself informed at a high-level and dive into something, if required.
When I say first priority is releasing the software - it means releasing software that works functionally. We cant optimize stuff which we are not sure will even break due to performance issues.
Analyze traffic/usage of parts of the application - mark areas which are used most - analyze performance - optimize if not up to mark.
If stress is always on elegant code - it'll always end up taking more time. In real-life scenario, no module is ever "bug-free". The cases change from day to day. When you're absolutely sure that the functionality is exactly what is required - then you should spend time optimizing it.
Pre-optimization is one of the biggest problems with today's programmers.
First priority should always be releasing the software.
Let it break. Make optimizations when and where necessary.