I would still recommend you to try Vaadin-on-Kotlin. It was designed for server-side programmers who don’t want to touch JavaScript with a two-feet pole
The purpose of Vaadin is to isolate and enclose JavaScript code into Components which you then orchestrate from server-side using a pure Kotlin code. You don’t have to write the JavaScript part: a rich set of components is pre-provided for you including layouts; unless you need to develop your own component you don’t have to touch JavaScript at all. All components fully use AJAX to communicate with server so that you can build rich single-page web app easily by using server-side Kotlin only.
Please see http://www.vaadinonkotlin.eu/ for more details; the main page links lots of example applications which are free, OSS and located on Github. Vaadin 8 uses GWT under the belt, Vaadin 10 uses JavaScript+WebComponents under the belt. AFAIK Vaadin is currently the only alternative to the REST+JavaScript approach.