Want to take your software engineering career to the next level? Join the mailing list for career tips & advice Click here


An example application written in ScalaJS using scala-js-dom and scala-js-workbench

Subscribe to updates I use workbench-example-app

Statistics on workbench-example-app

Number of watchers on Github 190
Number of open issues 11
Average time to close an issue 11 days
Main language Scala
Average time to merge a PR 1 day
Open pull requests 8+
Closed pull requests 3+
Last commit almost 4 years ago
Repo Created over 6 years ago
Repo Last Updated over 2 years ago
Size 921 KB
Organization / Authorlihaoyi
Page Updated
Do you use workbench-example-app? Leave a review!
View open issues (11)
View workbench-example-app activity
View on github
Book a Mock Interview With Me (Silicon Valley Engineering Leader, 100s of interviews conducted)
Software engineers: It's time to get promoted. Starting NOW! Subscribe to my mailing list and I will equip you with tools, tips and actionable advice to grow in your career.
Evaluating workbench-example-app for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)

Example Scala.js application

This is a slightly less barebone example of an application written in Scala.js. In particular, it links in libraries that are indispensible in being productive working with Scala.js.

Get started

To get started, run sbt ~fastOptJS in this example project. This should download dependencies and prepare the relevant javascript files. If you open localhost:12345/target/scala-2.11/classes/index-dev.html in your browser, it will show you an animated Sierpinski triangle (live demo). You can then edit the application and see the updates be sent live to the browser without needing to refresh the page.

The optimized version

Run sbt fullOptJS and open up index-opt.html for an optimized (~200kb) version of the final application, useful for final publication.

Dodge the Dots

Take a look at the dodge-the-dots branch in the git repository if you want to see a slightly more complex application that was made in 30 minutes using this skeleton. Similar steps can be used for development or publication. There's a live demo here.

Space Invaders

There's also a space-invaders branch, also made in 30 minutes, with its own live demo.


The todomvc branch contains an implementation of the TodoMVC example application, which is used to compare how the exact same application would be implemented using different languages and frameworks. This application makes heavy use of Scalatags and Scala.Rx, with heavy use of the DOM via scala-js-dom, making it a good example of how reactive web pages could be built using ScalaJS, as well as use of standalone ScalaJS libraries. live demo

Ray Tracer

The ray-tracer branch contains a simple ray-tracer written using Scala.js, with a live demo.

Weather Map

The mapper branch contains an application that renders a heat map of the earth, using data pulled from OpenWeatherMap, with a live demo


The autowire branch contains a small sample client-server application, using Scala.js on the client and Spray on the server. The readme on that branch contains instructions on how to run it.

workbench-example-app open issues Ask a question     (View All Issues)
  • about 4 years todomvc branch - java.io.IOException: This version (0.6.6) of Scala.js IR is not supported.
  • over 4 years Please upgrade samples to new Scala.RX version
  • over 4 years Unresolved dependency
  • almost 6 years Suggestion: Submiting todomvc example to the curation at http://todomvc.com/
workbench-example-app open pull requests (View All Pulls)
  • Fixes possible leak of Rx[T] in Framework
  • Fixes Framework crash when parentElement is null
  • dependencies up-to-date + no global execution context
  • Optimisations for the ray-tracer
  • Fixed red error on intelliJ
  • update to akka-http 10.0.0
  • fix #46
  • Autowire akka http - updates
workbench-example-app list of languages used
Other projects in Scala
Powered by Autocode - Instant Webhooks, Scripts and APIs
Autocode logo wordmark