Portable content types I'm used to leverage Bundle Copy to import/export content types with Drupal 7. One of my expectations with Drupal 8 is that I could theoretically achieve this with CMI. On the Bundle Copy project page it's also mentioned that "Bundle Copy is in Drupal 8 Core CMI!" so it all looks promising.

However, due to UUIDs and CMI's focus being on supporting content staging across multiple instances of a same site, it doesn't seem that obvious to create a generic content type that you would export on N number of sites.

For instance, take a photo gallery content type. Once you've created it and that you're happy with everything, you probably don't want to go through the same hassle again and would likely prefer to simply import the YML files onto the active configuration dir via CMI's single import tab (by manually copying the content of your YML files) or via the Synchronize tab (by making YML files available under the staging dir).

I thus wonder if a) I've missed something and b) if yes, what's your recipe for portable content types, if any?
It should be possible to take most relevant config files (content type, fields, displays, ...), create a module, put them in the config folder of it and install that module on any site you want. Or the same with an install profile, I made some relatively successful* tests there by throwing all config of an actual site into an install profile and was able to install it.

You can also manually edit them, as long as you're not doing in the active storage.

Problematic are for example config files that contain a mix of things. Translation settings for example, which are stored in a single yml file for all entities and bundles, or rest.module settings, all enabled resources are also in a single file. So you would have to write code that manually updates that configuration in hook_install().

* Relatively successful, which means I had some troubles with config that referenced content (custom blocks, default images of image fields) but I think that can be sorted out.