> а лучше вообще в конструкторе this.state = this.getInitialState() а getInitialState возвращает объект :) я почему-то приучился так делать)
getInitialState более не используется, это для ES5 варианта было на старых версиях react ). Достаточно просто присвоить объект к this.state как в предыдущем комментарии у Николая :-). В документации на фейсбук много примеров :-).

> Не хватало еще API для запросов.
Я использую redux и smart actions в которых делаю запросы в graphQL, результат новым экшном кладу в store. Вообще можно использовать redux saga, она использует генераторы по сути делает тоже самое, но с разницей, экшны у саги должны быть тупые :-). Мы с товарищем на одном проекте на react-native используем сагу, на том, что с модх соединяли без саги, есть просто экшны которые диспатчатся при входе на определенный локейшн, в них делается запрос и результат кладется в store, далее каскадный апдейт автоматом происходит. Грубо говоря у каждого могуля (страницы) есть свой экшн входа который активируется при монтировании модуля, активируется роутером, а GraphQL позволяет одним запросом получить все необходимые данные для всех компонентов сразу, ну и за счет асинхронности (nodejs имплементация) внутри самого GraphQL часть запросов может выполняться параллельно, через несколько коннекшнов к базе, что повышает производительность.

> Кстати, что думаете на счет этого эксперимента-костыля
Думаю, прекрасно, что сообщество в целом наконец стало интересоваться данной технологией и массово ее использовать :-). Я пока внимательно не знакомился с трудом, если желаете могу позже оставить свое мнение. Беглый взгляд говорит, что вот эта конструкция описанная в статье: window.FrontBasketTemplates = FrontBasketTemplates; вызовет падение ноды при серверном рендеринге, поскольку в глобал скойпе не будет window :-).