These are the tools used by the template, you don't need to master them all but being familiar with them definitely helps:
- Scala, we use Scala 2.13 because it has great tooling support, we'll eventually upgrade to Scala 3.
- Scala.js powers the frontend side.
- Scalablytyped generates the Scala facades to interact with JavaScript libraries by converting TypeScript definitions to Scala.js facades.
- yarn (v1) as the JavaScript package manager.
- React as the view library.
- Slinky being the Scala wrapper for React.
- Webpack to bundle the web apps.
- Scalajs bundler being the Scala wrapper for Webpack.
- Material UI v3 as the Material UI framework on top of React (hoping to upgrade to v5 when Scalablytyped supports it).
- Play Framework as the backend framework, used for the REST API.
- sttp as the REST API client.
- react-router is the frontend routing library.
- play-json is the JSON library.
- ansible as the tool for deploying everything to a VM.
- nginx as the reverse proxy for handling the internet traffic, as well as the authentication mechanism for admin endpoints.
- GitHub actions integration so that you have a way to get every commit tested.