If you are on Kotlin, ktor is a nice framework. And it works outside the JVM too. Ktor client works in the browser, on native, wasm, and on the jvm. Ktor server is mainly for the jvm but also works on native.
There are actually two ways to use ktor-server with native.
1) you can use Graal and compile your jvm project with that.
2) you can use kotlin-native and produce native code directly.
And I would not be surprised to see some wasm support come together either when the kotlin wasm compiler has had a chance to mature a bit.
But short term, targeting the jvm is the easiest. Either way, ktor is a nice framework.
I've been working on a framework built on top of Ktor for a while now with the intention of providing SSR capabilities with the HTML and CSS DSL and auto generated bindings to generate JavaScript from Kotlin multiplatform code in order to provide interactivity.
The only stumbling block I've encountered is the hot reloading support, for whatever reason only half the application is reloaded (some classes are and others aren't). This has been enough of an enigma for me to plan a switch to vertx.io.
Massive shame because I think the general Ktor framework is brilliant and I especially appreciate their adoption of the Kotlin Multiplatform.
There are actually two ways to use ktor-server with native.
1) you can use Graal and compile your jvm project with that.
2) you can use kotlin-native and produce native code directly.
And I would not be surprised to see some wasm support come together either when the kotlin wasm compiler has had a chance to mature a bit.
But short term, targeting the jvm is the easiest. Either way, ktor is a nice framework.