Interesting, no mention of Flutter here. I found the dev experience as well as customer experience far better than web apps on web and mobile as they mention here.
Flutter and Kotlin Multiplatform have the potential to be sleeper hits here. Kotlin in particular is interesting because it lets you go in at several points on the spectrum - you can share just logic code between platforms and use Apple UI on iOS / HTML for a web version, or you can use Jetpack Compose and use the same UI toolkit on each platform. You can also create desktop apps this way and that opens up the possibility of just skipping the web version entirely: use Kotlin and Jetpack Compose for Android, iOS and Desktop. This is nice because it means you can do things like consistently use multithreading throughout, share libraries, use GraalVM native image to optimize startup time and memory usage on desktop, have low latency UI everywhere, work offline, use files, integrate with the host OS and so on.
This is one reason I created Conveyor (https://hydraulic.software/) - if you go this route without it then you'll hit the painful desktop distribution process. With Conveyor it's no harder than publishing a static webapp, and you can avoid the desktop app stores with their various rules and rakes.