axept / react-fullstack

Fullstack React.js Application boilerplate for 2016-2017 years
59 stars 3 forks source link

Fullstack React.js Application boilerplate for 2016-2017 years

На данном этапе обсуждения и описание ведётся на русском языке, чтобы вам было удобней и комфортней. В ноябре всё будет переведено на английский. Благодарим за понимание.

План

Обращение

Итак, друзья, уже шесть часов вечера, последний понедельник лета. Давайте подведём итог и пофантазируем?

Сейчас формируем некий Isomorphic React.js Application Boilerplate на следующие 12 месяцев.

Пока видим такой набор:

  1. React 16.x
  2. На сервере - Node.js и Express.
  3. JSS для генерации оптимизированного Critical CSS и Server-Side Rendering.
  4. Redux для взаимодействия внутри приложения. Relay может быть опционально сбоку.
  5. Модульное тестирование через Jest в виду его недавних обновлений.
  6. UI-тестирование через Nightwatch.js + BrowserStack.
  7. Переводы через react-intl и react-intl-translations-manager.
  8. Автоматическое определение языка на сервере через пакет accept-language.
  9. Автоматическое определение геопозиции через пакеты maxmind и ipaddr.js.
  10. Изоморфный логгер на базе node-bunyan.
  11. react-document-title для динамического переключения заголовка вкладки. Или react-helmet?
  12. isomorphic-fetch для отправки HTTP-запросов (“AJAX”).
  13. webpack 1.x для сборки. Или всё-таки webpack 2?
  14. webpack-dev-server и webpack/hot/dev-server для Hot Module Reload.
  15. Long-term Caching статических ресурсов (например: /assets/logo-8cdab5da.png).
  16. parallel-webpack для ускорения сборки JavaScript bundle для каждого языка перевода (например: 5 разделов и 10 языков = это уже 50 JavaScript bundles).
  17. webpack DllPlugin для оптимизации размера JavaScript bundle.
  18. react-router-redux в качестве роутера.
  19. ESLint и eslint-config-airbnb с небольшим изменением - не использовать точку с запятой.
  20. nodemailer для отправки сообщений на e-mail.

Какие пункты можно изменить? Какие добавить? Что можно сделать лучше? Оставьте своё мнение в Issues.