About

Welcome to Developing Web Apps!

When I started writing Developing Web Apps at the beginning of the 2020s, my intention was to publish a book that shows how to develop Web applications from the ground up with Play & Scala for the API/backend and with React & TypeScript for the GUI/frontend and how the two come together in one self-contained system or monolith. I never finished writing that book and have pivoted from that book to this site.

I still prefer Play over Spring Boot and Scala over both Java and Kotlin, so most pages and posts are about Play & Scala. Nevertheless, some pages and posts are framework- and language-agnostic and some are about Kotlin & Spring Boot since

  • Spring Boot keeps re-entering my life, most recently because of Spring AI, which is a godsend as it saves me from having to deal with Python and its (admittedly impressive) ecosystem, and
  • Kotlin is Java’s heir apparent even though Scala keeps evolving nicely.

(By the way, if you are more of an I code Java person, Play has you obviously covered. But you could also develop web apps in Scala with Spring Boot.)

This Site

I am not going to teach Play or Scala to you. Alas, I have read too many books whose authors have bitten off more than they could chew by trying to explain anything & everything themselves. The parts which go to make Play are concisely and well explained in the official, freely accessible docs; there is no point in me reinventing the wheel. Instead, this book is a guided tour through the Play docs and my intention is to show how to apply what you have learned by reading them (whether lazily, while going through the rest of this site, or eagerly, before going through the rest of this site) to two production-level, albeit simple, Web apps.

In any case, I strongly recommend reading the Play docs (i.e., the Main concepts for Scala, the Advanced topics for Scala, and the Common topics) “from cover to cover” eventually, both to solidify your knowledge and to learn of features you did not know existed but that might actually be of use to you.

In doing so, my aim is to help you progress from programming to software development sprinkled with some software engineering.