Documentation

Tutorials

Lessons that take you by the hand through building something, start to finish. Read them in order the first time.

  • Your first eezo application

    This page is for people who can read Scala and have never run eezo. By the end you'll have an application scaffolded, running, restarting on every save, and…

  • From a case class to seven routes

    This page continues from your first application. By the end, the bookshelf application has a Book model, a table in Postgres, a migration file you can commit,…

  • Adding sign in

    This page continues from the model tutorial. By the end, the bookshelf has users, a login page, and every book belongs to whoever created it: anyone signed in…

  • From nothing to Fly.io — the eezo deploy walkthrough

    The whole arc: scaffold an app, give it a model, ship it. Every output below is from a real run (2026-09-09, first field deploy). Time budget: ~15 minutes,…

  • A live page, from nothing — the eezo live walkthrough

    The arc: scaffold an app, write a component, watch it update in the browser with no JavaScript of yours, share state between two browsers, deploy it. The live…

The example applications

  • hello: the http layer

    One handwritten route and no database. src/main/scala/app/Hello.scala defines def hello, and the sbt plugin turns the file's name into GET /hello in a…

  • reminders: the database layer

    A nightly job over rows and no server. models/Reminder.scala derives Table, AppSchema.scala registers it with an index on dueOn, and Main.scala names that…

  • blog: both layers

    One case class with all three derivations. models/Post.scala carries derives Table, Form, Resource: the table, the HTML form, and the seven CRUD routes over…

  • todo: the CLI tour

    One model deriving Table, Form, Resource, an AppSchema with two indexes, two handwritten routes, and a Postgres schema of its own. Everything the CLI currently…