Building Production-Ready Web Apps Without a Framework
August Lilleaas

#Kotlin
#Web_Apps
#SQL
#ORM
#API
#TDD
#JavaScript
#HTML
#Spring
Build production-grade web apps from scratch – without using frameworks – with Kotlin on the Java platform. You’ll learn how to use and compose libraries, how to choose between different libraries, and the benefits of explicit and straight-forward code, vs. the implicit magic, conventions, and inversion of control you often see in frameworks.
The book teaches the Kotlin language by building production-ready Kotlin code. You’ll gain a deep understanding of the idiomatic use of the Kotlin language along with knowledge of how to apply Kotlin in production-grade web apps. The book also bridges the gap between building from scratch and using existing frameworks. For example, you’ll learn how to integrate Spring Security-based authentication in web apps written from scratch, so you can leverage existing tooling in your organization without having to take on the entire Spring framework.
The first section of the book sets up the base structure of your web app, such as routing, configuration files, and database migrations. The remaining chapters are broken into individual aspects of building production-ready web apps. Appendices at the end of the book explain how to use different libraries than the ones chosen in the main chapters, so you'll learn how to decouple your code from specific libraries, and choose between many different libraries to get the job done in your own web apps.
What You Will Learn
Who This Book Is For
The expert developer who is ready to take full control of the tech stack, and use the Kotlin language, type system, and standard library, to ship production-ready web apps. Readers should have prior programming experience. Experience with Java or another JVM language is helpful.
Table of Contents
Part I: Up and Running with a Web App
Chapter 1: Setting Up a Development Environment
Chapter 2: Setting Up the Web App Skeleton
Chapter 3: Configuration Files
Chapter 4: Decoupling Web Handlers from Specific Libraries
Part II: Libraries and Solutions
Chapter 5: Connecting to and Migrating SQL Databases
Chapter 6: Querying a SQL Database
Chapter 7: Automated Tests with jUnit 5
Chapter 8: Parallelizing Service Calls with Coroutines
Chapter 9: Building Traditional Web Apps with HTML and CSS
Chapter 10: Building API-Based Back Ends
Chapter 11: Deploying to Traditional Server Based Environments
Chapter 12: Building and Deploying to Serverless Environments
Chapter 13: Setup, Teardown, and Dependency Injection with Spring Context
Chapter 14: Enterprise Authentication Using Spring Security
Part III: Tools of the Trade
Chapter 15: Choosing the Right Library
Chapter 16: An Assortment of Kotlin Tricks
Appendix A: Using Jooby Instead of Ktor
Appendix B: Using Hoplite Instead of Typesafe Config
Appendix C: Using Spek Instead of jUnit 5
August Lilleaas has built web apps, user interfaces, and real-time systems since 2004, and mobile apps since the app stores opened in the late 2000s. After picking up Clojure in 2012, he left the frameworks and ORMs behind and started to build web apps from scratch, and has shipped to production using Clojure, Groovy, Node.JS, Elixir, and Kotlin. August has worked as a consultant for a decade and is now an independent contractor and startup founder.









