Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.

Play Framework with Scala.js


This is a simple example application showing how you can integrate a Play project with a Scala.js project.

The application contains three directories:

  • server Play application (server side)
  • client Scala.js application (client side)
  • shared Scala code that you want to share between the server and the client

Run the application

$ sbt
> run
$ open http://localhost:9000


The application uses the sbt-play-scalajs sbt plugin and the play-scalajs-scripts library.

  • Run your application like a regular Play app
    • compile simply triggers the Scala.js compilation
    • run triggers the Scala.js fastOptJS command on page refresh
    • ~compile, ~run, continuous compilation is also available
    • start, stage and dist generate the optimised javascript
    • playscalajs.html.scripts selects the optimised javascript file when the application runs in prod mode (start, stage, dist).
  • Source maps
    • Open your browser dev tool to set breakpoints or to see the guilty line of code when an exception is thrown
    • Source Maps is disabled in production by default to prevent your users from seeing the source files. But it can easily be enabled in production too by setting emitSourceMaps in fullOptJS := true in the Scala.js projects.

IDE integration


  1. $ sbt eclipse
  2. Inside Eclipse, File/Import/General/Existing project..., choose the root folder. Uncheck the second and the last checkboxes to only import client, server and one shared, click Finish. Alt text


In IntelliJ, open Project wizard, select Import Project, choose the root folder and click OK. Select Import project from external model option, choose SBT project and click Next. Select additional import options and click Finish. Make sure you use the IntelliJ Scala Plugin v1.3.3 or higher. There are known issues with prior versions of the plugin.



  1. $ heroku create -n creates an app and prints its name.
  2. Set the herokuAppName in build.sbt with the name of the application you created.
  3. $ sbt stage deployHeroku

This example uses the sbt-heroku plugin to deploy to Heroku.


Source code for website






No releases published


No packages published