https://enhance.dev/ Probably the better approach if we're going with custom elements for everything?