There are a lot of DOM util libraries that look like
h("ul", h("li", "task 1"), h("li", "task 2"))
This is called "hyperscript-style" after an early library that used it. This is basically what JSX compiles to too. There used to be a lot of JSX vs hyperscript debates.
There's also variants like h.ul(h.li("task 1"), h.li("task 2")) using Proxies now too.
There's also variants like h.ul(h.li("task 1"), h.li("task 2")) using Proxies now too.