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

data class Todo(val id: Long, val title: String, val completed: Boolean)

fun main() {

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

    val app = Javalin.create {
        it.staticFiles.add("/public", Location.CLASSPATH)
    app.get("/todos") { ctx ->
    app.put("/todos") { ctx ->
        todos = ctx.bodyAsClass()


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.