Skip to content


Repository files navigation

jsdares Dependency Status

jsdares is an experimental learning environment, created by Jan Paul Posma for a masters dissertation at the University of Oxford. The code is available under the MIT license.


  • Collaborative platform for anyone to create and solve programming puzzles: "dares".
  • Custom parser for a subset of Javascript: "js--".
  • Runtime that saves everything, and allows moving through the program execution with ease, inspired by Omniscient Debugger.
  • Advanced interface for making games that allows going back in time, visualises how the code maps to the output, and makes it easy to tinker with the code, inspired by Bret Victor.
  • Robot environment for learning the basics of programming, based on the Logo turtle and Karel the Robot.
  • Canvas and console environments based on the standard browser components.
  • Extensive set of code examples.
  • Basic set of dares which challenge learners to make shorter programs using the concepts they are learning, inspired by Code Golf.
  • Cohesively designed experience.


  1. Install dependencies: npm install.
  2. Run grunt: node_modules/.bin/grunt.
  3. Done! Serve using some webserver, on the root domain.

To load the default dares, register a user with username janpaul123 and restart the server. Automatically dares will be created for this user, and the user will get admin rights.

Spinoff projects

  • Clayer, a direct interaction library based on BVlayer.
  • Robot, a robot applet based on the robot environment.


PRs and bug reports are always welcome! :)