Caffeine is a livecoding environment for the web. After adding it to a webpage, you can use it to make live persistent changes to that page and other pages running Caffeine, without reloading.

     You can interact with Caffeine from JavaScript in several ways:

  1. as a headless Web Worker, with which you post and receive messages (you are responsible for all DOM manipulation).
  2. as an IDE in a headful IFrame, with Caffeine able to manipulate the DOM directly.
  3. on a headless Node server, with which you also exchange messages (over a WebSocket).
  4. through a headful DevTools panel IDE, using the Chrome Debugging Protocol to manipulate every page your browser is running.

     Caffeine's underlying computation engine is SqueakJS, an open-source Smalltalk. It features a bi-directional JavaScript bridge, enabling Smalltalk methods to send messages to JavaScript objects, and provide Smalltalk block closures as JavaScript promises or callback functions.

     To get started, open your browser's DevTools on this page, and read the comment below this text.

     Craig Latta
     version 2019.4
     22 December 2019