Is it feasible to migrate by only migrating content? I am preparing to do a Drupal 7 to Drupal 8 migration. This is not a pure like for like migration. Whilst many of the content types are similar there will be some differences between the Drupal 7 and Drupal 8 content types and paragraphs (i.e. site architecture improvements).
I would have thought that the easiest way to do the migration would be to completely rebuild the site in Drupal 8 and configure and customise it the way I want and then just migrate the content (e.g. users, taxonomy, nodes, etc.); however, according to the Drupal documentation one should not configure the site. From the Drupal &quot;Preparing a site for upgrade to Drupal 8&quot; page

Do not configure the Drupal 8 site
Keep in mind that the upgrade process will overwrite configuration on the Drupal 8 site, so do not do any configuration of the Drupal 8 site until after the upgrade process is complete. This means you do not have to create all the content types and fields manually before running this upgrade. The Migrate module will create them as a part of the migration process. In fact, it is a common best practice to install Drupal 8 using the Minimal install profile, because the Standard profile introduces its own configuration that you might not want to use.

Couldn't I just build and configure the Drupal 8 site just the way I like it and then just migrate the content being sure to customise the migration in order to adjust for any architectural changes? This idea of migrating all content and configuration and then making content changes afterwards doesn't make sense to me.
TL;DR: use Migrate and associated modules to do the heavy lifting, adding in your own code as needed.
Yes, you absolutely can build your configuration first and then migrate content. I'd suggest the following outline approach (you'll still need to read the documentation for Migrate and these modules carefully):

Install the Migrate Tools and Migrate Upgrade modules.
Use migrate upgrade to generate prototype migration configuration, eg. drush migrate-upgrade --legacy-db-url=mysql://user:pass@12.34.56.78/d6db --legacy-root=http://myd6site.com --configure-only
Export the configuration and weed out any migrations that you don't need, such as content type and field definitions. Remove references to these from other migrations.
Edit the remaining configurations to your needs. This can be laborious and for some cases it may be easier to use custom hooks to manipulate data rather than configuring process plugins. However, the process plugins provided by core, supplemented by those from Migrate Plus, are very powerful once you understand them.

These modules will do much of the hard work for you so you can concentrate on the tougher problems you may face, such as dealing with embedded media tags that may require modules that are not ported to D8.
(If you are thinking of moving field collections to paragraphs, the D8 Paragraphs module has everything you need already in place).