First of all, you need to know that you are not creating tag HTML. HTML is just what was defined by the W3C with this nomenclature. HTML is a pattern that does not allow customization. You are creating tags XML that browsers support the loose use of interpretation, allowing you to interact with the DOM as you need it.
It could even be a public site if you need indexing, you should only know that some browsers may not understand this very well (it can not be very old, type IE8).
You need to know how to do it right. For example, it seems you know, except for the names used.
You may suffer a little from most development tools that will claim "your" tags . This is an incompatibility (because of them, not yours).
It may be that in the future an HTML tag may appear that uses the same name that you used. You will have to make a global renaming of your to something else. Is it okay for you? To avoid this, it is recommended that your custom names always have a dash (minus sign) in the name.
Under these conditions everything is ok. Go deep!
Documentation . Technology Draft . Useful JS .
Interesting tutorial on the subject .