I'm currently leading a project that's in the planning stages which involves building out a marketplace with highly interactive mini-apps (think something like Khan Academy). We're hoping to get away with making the entire thing an SPA as there's a lot of real-time, interactive user data the user sees even outside of the mini-apps as they're browsing the marketplace. One thing that's a bit of an issue is, of course, SEO. All of the marketplace content comes from a RESTful service completely separate from the web service providing the main SPA. I've been playing a bit with the este.js stack (https://github.com/Steida/este) and that seems like a very solid combo of technologies. One thing that's a slight concern to me is the volume of calls the SPA server would be making to the REST API server if we were to succeed with the isomorphism, especially if a crawler hits and scrapes all of the pages. Another thing I'm a bit unsure of is how the socket.io content will work when we're getting crawled. How does socket.io behave in an isomorphic setting?
I've written SPAs before, but never had to worry about SEO (they were internal products sold directly to customers - the contents of the SPA never needed crawling). Does anyone have any experience with this or any advice they could lend for a scenario like this?