I want to understand in which cases one should go for creating isomorphic apps. Is it suitable for every kind of web applications or certain applications only? What are its main advantages?
Isomorphic apps are the kind of apps that render on both client and server.
The major drawback in Single Page Apps is that they are not very SEO friendly. Google now executes JavaScript while crawling, but you still face problems with other bots. One of the solutions is using a tool like prerender.io to pre render your pages and serve them to bots. Some of the developers also follow DIY techniques and pre-render pages using tools like PhantomJS. But none of these are very nice solutions for a large website.
Isomorphic apps solve these problems. When you request a page, you always get a server rendered version. All the subsequent interactions follow Single Page behaviour i.e. just loading partials. This way when bots request your webpage they always get server rendered HTML instead of binding expressions like {{}}. So, you get best of both the worlds with this approach. Also, many popular websites like AirBnB have already gone isomorphic and it has worked really well.
Jason Grant
Bruce Lee of UX
When there are value adding (user and business) cases for people being able to use the app offline. Web is catching up with being able to give you these capabilities, but either way complexity of implementation (as well as UX) goes up with creating these.
Be really critical as to whether you really would need such capabilities. To give you an example, there is no reason why Instagram (a multi billion dollar business) shouldn't be able to 'post' a photo while I'm offline to some sort of a local storage and sync that up to the web once the app comes back online. But it doesn't do that. They basically haven't felt it's a strong enough use case for them. I think it is, but there you are.