This post is over 6 months old. Some details, especially technical, may have changed.

Tinsmith: Online Scala REPL/Worksheet

I recently released a basic self-hosted, we based Scala REPL called Tinsmith (alternatively play with the online demo). If you've been following Scala news recently you may have noticed a similar project codebrew.io being talked about and in fact Tinsmith is heavily built off the same stack.

So why bother doing yet another REPL/Worksheet when one already exists? Well the first spike came into existence because codebrew.io was rather sluggish one day I was using it and I wanted something I could run locally or deploy to a dedicated remote instance when I needed. Then as I had my own instance running there were things I realised I wanted to do differently or didn't need at all and so rather than cloning codebrew I decided to use some common techs to produce a slightly different experience.

  • Tinsmith doesn't execute code automatically instead you need to explicitly execute code by Alt-Enter or ⌘-Enter.
  • Tinsmith doesn't have the bells and whistles such as Doc lookup and autocomplete
  • Tinsmith doesn't have Github integration (though it did have gist integration at one point but I decided against it)
  • Tinsmith does save the code to the querystring to make pages bookmarkable (like jsconsole)
  • Tinsmith does return the console output as well as the REPL output
  • Tinsmith does explicitly include some useful libs (Scala Utils, Scalaz, Guava etc.)
  • Tinsmith does run as a single application and can be quickly deployed to Heroku
  • Tinsmith does use WebSockets instead of Ajax

This is in no way meant to act as competition to the clearly better codebrew.io - it's simply something I needed quickly and decided other people might benefit from it as well. Afterall it's just the scala-codesheet and codemirror thrown together with a bit of webby glue.

Published in Scala on November 17, 2013