My impression was that wave failed because it was slow and miserable to use. Maybe it would have failed later on for your reason as well, but this was the reason it failed for me.
The great and mighty Google didn’t actually have the ability to make a fairly complex UI for the web that could scale to 100 items. As of today, the craft of UI programming has been lost to all but a few Qt programmers. Google are now gradually rebuilding the art, with Flutter, and I think they may succeed, and this will have a shocking quantity of downstream consequences.
The only thing I remember about Wave was that it was a collaboration tool, but it was in private beta, and when I got in, I couldn’t invite others to the private beta to collaborate with them. So I poked around a bit and then never came back to it. I suspect many others had the same issue.
Sometimes projects are killed not for deep reasons but just from simple, basic execution failures.
What does Flutter do that various JS/CS frameworks don’t? Does it give design advantages on web, or is the benefit that it brings web design to non-web applications?
It makes non-web applications possible. It has a better layout system, rendering system. Animates everything properly. Centers Dart, which seems to be a pretty good language: It can be compiled ahead of time for faster boots (although I’m not completely sure that typescript wont be basically just as compilable once wasm-gc is up), has better type reflection, will have better codegen (already supports annotations), has a reasonable import system, better data structures, and potentially higher performance due to the type system not being an afterthought (although typescript is still very good relative to dart).