This is a very short tutorial

If you need to learn how to setup Kotlin with Maven, please follow the beginning of our Kotlin CRUD REST API tutorial

A live demo can be found here



Our main class

fun main(args: Array<String>) {

    var todos = arrayOf(Todo(123123123, "My very first todo", false))

    val app = Javalin.create().apply {

    app.routes {
        get("/todos") { ctx ->
        put("/todos") { ctx ->
            todos = ctx.bodyAsClass(Array<Todo>


We’re use Javalin to serve our static files, as well as handle two endpoints: get and put.

Most of the work here is being done by ctx.json and ctx.bodyAsClass, which map a Todo data-class:

data class Todo(val id: Long = -1, val title: String = "", val completed: Boolean = false)

That’s it. The rest of the logic is in index.html (vue template) and todomvc.js (vue logic).
This is not a JavaScript tutorial, so please have a look at those files for yourself.