Full-Stack Technologies

What technologies are in use in this Scala full-stack implementation.

We structure the technologies by the Architecture Tiers.

Architecture Tiers

client

ScalaJS

  • A safer way to build robust front-end web applications!
  • Working on the client side with familiar Scala.
  • Of course not everything is supported, especially if you use Java-Libraries. But you will be surprised how much is already supported (see here ScalaJS Libraries).
  • Version 1 is soon to be released

Binding.scala

I tried quite some libraries before I came across this one (eg. Scalatags, scalajs-react, Outwatch etc.).

  • Binding.scala is a data-binding framework for Scala, running on both JVM and Scala.js.
  • Use your XHTML code directly in your Scala code - and of course it is type save.
  • Easily to compose, alike your server code.
  • A great way to manage the GUIs state, you can forget about Redux - this is way simpler.
  • This framework is actually the reason for this page - I love it;)

Semantic-UI

  • easy way to create nice Web-UIs.
  • like Bootstrap, but semantic style.

shared

All shared libraries have a version for ScalaJS and one for Scala(JVM). And so everything here can also be used on client and server.

Scala/ ScalaJS

The shared module compiles to the JVM and to Javascript. So everything you use here must support that.

play-json

  • Marshalling and Unmarshalling of JSON.

play-json-derived-codecs

  • Reads, OWrites and OFormat derivation for algebraic data types (sealed traits and case classes, possibly recursive), powered by Shapeless.

slogging

  • Logging library that supports:
    • SLF4J on the server
    • Console Logger on the browser

server

The server is a standard Scala/ Play application.

Scala / Play