Community
Scala.js has a very active and friendly community supporting newcomers as well as seasoned Scala.js developers. To solve your issues, please use the following resources.
Stack Overflow
Many developers have probably faced the same issues you have, so there might be an answer on Stack Overflow just waiting to be read.
#scala-js
on Discord
For fastest answers, join the #scala-js
channel in the official Scala discord and ask your questions,
or just chat with other Scala.js developers!
Official mailing list
This is the place for general discussion, ideas, announcements of your libraries, etc.
Adopters
See which companies are using Scala.js:
Supporters
The Scala.js core team uses the YourKit Java Profiler graciously provided by YourKit.
Built with Scala.js
Want to get a peek at some web applications that have been built with Scala.js? Here you go:
- Seventh Sense, predictive analytics for sales and marketing. Scala.js+react components used inside legacy angular application.
- Querki, a cloud-based system for small-scale data management
- MF Metabolic Analyzer is a system to help physicians interpret and draw conclusions from cardiopulmonary exercise tests.
- NetLogo Web, an agent-based simulation language. (only the NetLogo-to-JavaScript compiler is written in Scala, not the front end)
- MiniJava compiler which originally targeted amd64, but received an AST interpreter to run in the browser.
- FlowRun, a web app for creating and running flowcharts
Open Source Scala.js projects
Use these open source projects to see how others have used Scala.js to build their applications.
- Querki, a cloud-based system for small-scale data management
- ICD, for validating, storing, managing, searching and viewing APIs and ICDs (Interface Control Documents between TMT subsystems)
- Dashy, extensible dashboard webapp written in scalajs
- Doctus, a library for the creation of visual art pieces, by Wolfgang Wagner
- Kerbal Calculator, a rocket solver for Kerbal Space Programme (works well on a tablet or smartphone to complement gameplay)
- Weather Information System, by Ayush Mishra, Knoldus Software LLP
- Play and Scala.js Showcase, by Hussachai Puripunpinyo
- Papa-Carlo Incremental Parser Demo, by Eliah-Lakhin
- Ray-Tracer, a ray-tracer written in Scala.js by Li Haoyi
- TodoMVC example applications
- Scala.Rx • TodoMVC, an implementation using Scala.js, Scalatags, Scala.Rx and scala-js-dom, by Li Haoyi
- Binding.scala • TodoMVC, an implementation using Scala.js, Binding.scala and upickle, by Yang Bo
- Port of the Dart benchmark harness
- 2048 Game in Scala, 2048 game clone made using scalajs-react in just 350 lines of Scala and 250 lines of CSS.
- swimstats.org (source): Display/plot amateur swim results and times, by Andy Wagner
- ScalaKata (source): Scala Interactive Playground
- CodeCraft (source): Real-time strategy programming game for Scala/JavaScript using OpenGL/WebGL
- Checkers (source): Checkers game rendered in web browser using SVG (about 10000 lines of Scala.js)
- Scastie (source): An interactive playground for Scala, which can run any Scala program with any library in your browser
- Scalafiddle-editor (source): An online playground for creating, sharing and embedding Scala fiddles (little Scala programs that run directly in your browser).
- FlowRun: Editor and interpreter for the FlowRun flowcharts, written in Scala.js using Scala 3.
- Airframe Rx/RPC Airframe enables pure-Scala development of frontend (Scala.js) and backend (Scala JVM) applications with RPC and reactive interface (Rx). Presentation: Unifying Frontend and Backend Development with Scala (ScalaCon 2021)
- Cazadescuentos is a set of Scala.js applications sharing a common core, includes a browser extension for Chrome/Firefox and a Progressive Web Application. These applications allows to track prices from online stores.
- Chrome for Scala.js is an sbt plugin for developing Chrome/Firefox extensions using Scala.js
- Chrome scalajs template is a template for developing Chrome/Firefox extensions using Scala.js
- Scala.js games have simple games ported to Scala.js (using Scala 3).
- sjs-material-ui-facade is a ScalablyTyped facade generated for https://v3.material-ui.com to avoid huge compile times while using it from Slinky.
- st-material-ui-demo-slinky is a demo for using mui5 ScalablyTyped facades with Slinky.
- Wiringbits WebApp template is a template for developing fullstack web applications with Scala and Scala.js
Testimonials
Coming from JS/Coffee/TypeScript, I think Scala.js is an absolute game changer for us. And as more and more Scala libraries get ported over to Scala.js, I believe this is just the start.
The Scala.js experience was great! Thanks to the compiler and better IDE support, I was immensely more productive writing Scala for the browser than I am with plain JS and, say, Angular.
Being able to leverage our existing build and test infrastructure for Scala.js has been a great productivity and reliability boost compared to bringing in an entirely different stack such as TypeScript. We have a number of computation libraries that have been ported to a shared module and can be used on both the front-end and the backend, which in and of themselves have made investment worthwhile.
Scala's type safety is essential to manage the complexity of these business rules. Scala.js gives us Scala's technical advantages and let us make a pleasingly responsive interface for our users.