Если вдруг кому интересно - нашел оптимальное решение.
Монорепой рулю с помощью yarn workspaces.
Пока что для теста задеплоил на Heroku. Было сложно разобраться, как билдить и запускать два разных приложения в одной репе, попарился, но в итоге завелось.
CI/CD от гитхаба. Сначала билдится там. Если все ок, то отправляется на Heroku.
Mongo на Atlas задеплоил.
Хранилище для файлов - cloudinary.
yarn как то херово с приватными регистрами работает. Я в одном месте выкинул его из-за этого и заменил на npm. Монорепу можно и так вести.