I used Elm for a while (even gave a conference talk about it in 2015) but I don’t really know what Elm would add to the discussion. Elm’s template syntax is only superficially different from JSX. It’s nested function calls, which is exactly what the JSX transform turns JSX into.
And Elm overall is really not very different from React. What happened is that TypeScript got really good and took over. You don’t need a different language to get great static typing.
Typescript's type system isn't sound and it's overly complicated. Elm's type system is by far more robust, sound, and much much easier to learn and reason about.
Elm went away because:
1.) It doesn't have a "Microsoft" behind it to champion it.
2.) It's a functional languages with "weird syntax" (I happen to think the ML style langs are beautiful, but to each their own)
3.) Probably most important, the maintainers and the community around Elm imploded.
IMO TypeScript’s unsoundness is a red herring. It’s a wise pragmatic design choice, and the alternatives have tradeoffs that were judged to be worse. Whether people run into the particular problems caused by TypeScript’s particular sources of unsoundness is an empirical question. I can’t remember a time it caused me an issue.
And Elm overall is really not very different from React. What happened is that TypeScript got really good and took over. You don’t need a different language to get great static typing.