I've been using web components using a wrapper to avoid all boilerplate. It gets me 80% of web component functionality with very little effort: https://github.com/lelanthran/ZjsComponent
Discussed on HN previously: https://news.ycombinator.com/item?id=44290315
Now this is not perfect, but there is, for me, no easier way to create and use new html components.