Bootzooka

Simple project to quickly start developing a Scala-based microservice or web application.


Technology stack

When picking Bootzooka’s technology stack we wanted to use modern, but reasonably proven technologies. So while you won’t find the latest, hottest frameworks here, you also won’t see any JSPs or <marquee> tags. The components are easy to replace, so if you’d like to experiment with a new library, this should be a matter of replacing only a small part of Bootzooka. Also, we try to update the stack once in a while, so that it’s up-to-date with current developments and trends.

Bootzooka’s stack consists of the following technologies/tools, on the backend:

And on the frontend:

Why Scala?

Scala is a strongly-typed functional programming language, running (among others) on the JVM. It offers a range of tools to define flexible abstractions, increasing the quality and safety of the code being written, while keeping the codebase concise and free from boilerplate. For a deeper dive, see the “Why Scala” and “Principles of developing applications in Scala” articles.

A lot of the projects that we develop at SoftwareMill are written in Scala. It’s our go-to language for non-trivial server-side services.

Why React?

React is one of the most popular JavaScript framework right now, developed and supported by Facebook; we use it frequently at SoftwareMill (also because it’s really good). It offers a complete solution to build dynamic and modern HTML based web applications, with a “functional” approach.

Why Ox?

Ox provides the necessary utilities needed when writing direct-style Scala: structured concurrency, error handling, resource management and resiliency.

Why tapir + netty?

Tapir defines a programmer-friendly API for describing HTTP endpoints which can be interpreted as a server, or as Swagger/OpenAPI documentation. Netty is a battle-proven and fast networking library for the JVM.

Why SBT and Yarn?

To put it simply, SBT is the build tool of choice for Scala, yarn - for JavaScript.