CiviCRM is an old Drupal 7 friend and its relationships with Drupal 8 are in a pretty good way. Let's make them meet the Composer template for Drupal projects, a widespread setup that stores the vendor directory outside of the docroot. Lando will host the party by spinning up a local environment, however this method should be generalizable with any other development environment.
A walkthrough to join the dots between two posts about setting up Lando for Drupal and Solr for Drupal with Search API, and also a good opportunity to cover all the steps to spin up an evaluation or development environment for this setup. Lando comes with the great benefit for a team to share the server configuration alongside the project, so we have a predictable environment to deploy in production and do not add configuration maintenance overhead on the team, especially in the case of more advanced setup like Solr, Varnish, decoupled setup, ...
Progressive decoupling and ES6 support on Drupal 8 are definitely gaining some momentum. After having tested several methods to make use of React within Drupal, I had a look a the React Comments module, that provides a self contained, standard and developer friendly way to get started with React. It has been derived in a repository to have a kind of boilerplate to run tests on and a demo that loads article nodes from a JSON API endpoint.
The migrate system is stable since Drupal 8.5.0, so this is a great time to review the migration tools provided by the community. This post does not cover migration from the UI, it focuses on partially customized migration that are runned with Drush. In most cases, you will probably want to review the content model a bit (you know, that content type or field machine name that does not actually reflect the truth since its creation, ...). The idea behind is to delegate the heavy lifting to Migrate Upgrade for migration template generation, then apply content model changes if needed.