Sorry for my ignorance, but I never saw this approach before.
Why is this needed? Should people who do not use two react versions of the app be aware of this approach? Will something like that work with typescript?
p.s. just a note on presentation, it would be cool to see how you take this demo working with react 16 and convert it to gradual upgrade demo, instead of the whole app being in one "initial commit" where it's hard to reason about which parts are relevant to what.