Play is a stack-oriented, immutable and statically typed programming language. It compiles to web assembly, and so can run on the command line, backend and in the browser.

This project is still in early development. A list of planned features can be seen on the roadmap.


We do not accept code contribution at this point in the time. Do, however, feel free to post suggestions in our forum or report bugs as tickets.


The compiler of Play is written in Elm. Code is compiled to Web Assembly Text (wat). To convert wat to wasm we make use of the web assembly binary toolkit (wabt), so the project contains some javascript for linking the compiler and wabt together.

To try out the project on your local machine, start by cloning this project using fossil. Install dependencies with 'npm ci'. Tests can be run using 'npm test'.

If you'd like to re-run all Elm tests when code is changed, you can run 'npm run auto-elm-tests'.

To only run the wasm tests, you can run 'npm run wasm-tests'.