How can you have Composer install the site in the project root not in web/?

If you want to modify some of the properties of the downloaded composer.json before composer install is executed, use the --no-install flag when running composer create-project. For example, it is possible that you want to rename the subdirectory ‘web’ to something else.

To do that:

  1. Run composer create-project drupal/recommended-project my_site_name_dir --no-interaction --no-install
  2. Change directories to my_site_name_dir and edit the composer.json file to suit your needs
  3. Run composer install to download Drupal 8 and all its dependencies.