Avoid mistakes in API design, implementation and evolution with Smithy

Most back-end projects eventually reach a point when they have to define an API. We implement their routes, document them, sometimes we write a client. We do essentially the same work multiple times - each view of an endpoint contains the same path, and yet we don't have a "single source of truth".
In this talk, I'll show how Smithy (https://smithy.io) and smithy4s enable defining an API in a single place, and how they make it easy to build its server, client, and even a CLI - in a Scala-friendly, tooling-compatible way.
Scala is improving rapidly. This session will give you the perspective of someone in the middle of these changes.
Let's go through some libraries from ZIO ecosystem that will allow us to implement API layer with ZIO HTTP
I'll share a handful of techniques that can help you avoid runtime errors and shift them to the realm of compile time
How to leverage Scala with scala.js to write frontend as functional programmers would do.