Portable content types
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.