Как эффективнее постепенно перевести Ruby-сайт (на шаблонизаторе) в React SPA?
Есть некоторый ruby-сайт, использующий стандартный шаблонизатор (slim) для вывода контента. Сайт представляет собой крупное приложение, с авторизацией, ролями и многими подсистемами. Во многих страницах большое количество jQuery-кода.
Возникла необходимость постепенного перевода сайта на React SPA с серверным рендерингом. Причем требуется оставить бэк прежним (Ruby on Rails), лишь дополнив его механизмами пререндеринга (ssr).
P.S.: Постепенно - это значит сделать на Реакте сначала подсистему А, потом подсистему Б, и т.д. Допустим, сначала авторизацию, потом интерфейс для работы с файлами, потом блог и т.д. Между каждым "переходом" будет определенное время тестирования пользователями, допустим в месяц.
Посоветуйте, пожалуйста, наиболее эффективные подходы для этой задачи? Кто сталкивался и с чего вы начинали переход? Что следует сделать в первую очередь, а что можно оставить на потом? С чего начать?
В идеале сначала написать приемочные тексты для текущих страниц сайта, чтобы после переезда на SPA с SSR, быть уверенным, что ничего не пропало, не отвалилось и работает так, как работало.
После этого делаете нужные API прямо в своем Ruby-бэкенде. Параллельно с этим создаете новый репозиторий для фронтенда и, собственно, его делаете. Тут вам поможет сам React и такая штука для него, как NextJS.
Когда все сделаете, запускаете приемочные тесты и убеждаетесь, что вся функциональность работает, как и раньше.
Переезд с MPA на SPA, особенно когда у вас несколько систем это не маленькая архитектурная задача и надо понимать конкретно что у вас есть, в деталях, какие сроки, сколько рук и все в таком духе. Тут нет Best Practices
А вообще, пишите, не стесняйтесь - мне сейчас заняться особо нечем на самоизоляции. Если ничего попадающего под NDA нет то помогу советами, может даже стратегию сделаю
Все, что живет отдельно, можно по очереди перевести на реакт. В противном случае получится каша из реакта, jquery и чего-то там еще, что там живет. Я бы не стал так мораться, это все плохо пахнет, гарантировано будут конфликты, их надо будет решать, потеть над ними, вместо того чтоб заниматься полезными вещами.