Creating Full-stack Web Apps with Kotlin DSLs
summary
Builds a working full‑stack app called Life Visualizer using Ktor backend, Ktor HTTP client to call Unsplash, Exposed with H2 for storage, and kotlinx.html plus the React wrapper with Axios on the frontend; demo playback fails but the app and routes run. Shows concrete DSL techniques: Ktor routing & locations, lambdas with receivers and suspending functions for async HTTP, a small DB transaction helper and Exposed DSL for SQL‑like queries, and kotlinx.html for component HTML builders.
AI-written summary · about
chapters (32)
- 0:00Intro
- 0:54PROJECT INTRODUCTION
- 4:13THE PROJECT PHILOSOPHY
- 4:33YOU CAN CALL IT BEAUTIFUL CODE WHEN THE CODE MAKES IT LOOK LIKE THE LANGUAGE WAS MADE FOR THE PROBLEM.
- 6:29What makes Kotlin a great language for DSLS?
- 7:33Lambdas with receivers
- 9:09BUILDING THE BACKEND WITH KTOR
- 9:23ktor is a Kotlin framework for creating asynchronous servers and clients
- 10:46THE FLEXIBILITY TO INCORPORATE DIFFERENT TOOLS IN ADDITION TO ITS LIGHT-WEIGHT ARCHITECTURE-MAKES KTOR AN INTERESTING OPTION FOR CREATING RESTFUL SERVICES
- 14:08Creating the application
- 15:07Setting up the routes (2)
- 18:18Route refinement - Locations
- 19:56Route refinement - Splitting into files
- 20:41Unsplash API
- 21:16Setting up the Ktor client
- 23:32DATA WITH EXPOSED
- 23:42Exposed is a light-weight SQL library written for the Kotlin language • Created and maintained by JetBrains
- 25:17Creating a table
- 26:05A clever little piece of Kotlin code
- 26:40Inserting data dbtransaction
- 27:55Querying data
- 30:14FRONTEND WITH KOTLINX.HTML
- 31:56Project setup with npm
- 32:20Creating a component step-by-step 1. Define a properties interface (Optional)
- 33:06Defining the properties interface
- 34:03Defining the state interface
- 34:29Creating the component
- 34:50Implementing the render method
- 36:06Implementing the builder
- 36:52Using a JavaScript library directly
- 37:57Creating the external functions and interfaces
- 39:11Using the functions








