There’re few things to be considered for cross-platform or native app development and they are extremely crucial for apps that demand high performance. I don’t feel like rewriting the whole article and taking the author’s credits so here’s the link native app vs cross-platform
I spend of time working with Hippo CMS, a java-based open source enterprise level cms. And I build a custom small cms in clojure and clojurescript. A CMS like Hippo is not easy to build and maintain. One of the things that should be in there is an easy way to extends functionality. For example to also being able to link to content from another program/database. Another thing is permissions, and having a simple way to manage the permissions for different users. Yet another thing is multi language support. A lot of times people also want to create sub-sites and share some content, so you need some multi channel support. On of the more basic requirements is being able to serve images and other binaries. Getting it all right is pretty hard. You also need some way to structure the menu’s. You also want some way to generate a preview before putting it live.
I’m also inclined to think its a lot better/easier to just have the content exposed either by Rest or GraphQL over integrating a front-end.
For my ‘own’ cms I was able to take a lot of shortcuts. One of the things I did not find for rust is a hiccup style templating for html. In clojure(script) you can easily create functions to generate part of your html and combine then together, and also to use them both in the backend and the frontend. This made it relatively easy to have a preview functionality.