caffeine

Livecode the Web!

View the Project on GitHub

Caffeine is a livecoding environment for web browsers, Node.js, and WebAssembly. 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:

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.

Caffeine has support for Squeak, Pharo, Cuis, 3D VR (via A-Frame and OSC), zooming 3D presentations (via impress.js), VueJS, WebMIDI, Observable, Web Workers, DevTools and many other JS frameworks.

You can read more about the design of Caffeine, and new features, at my blog, https://thiscontext.com.

This repository is the content for the Caffeine website, caffeine.js.org. It provides these endpoints:

/ this page
/talk an impress-powered presentation about Caffeine and livecoding
/developer a developer-oriented overview of Caffeine, with a tutorial for developing with it
/2d Caffeine on a single-page application site
/3d an A-Frame-powered in-world virtual reality livecoding space
/pharo a demo of Pharo 7
/cuis a demo of Cuis
/tabulator a tabs-management app, with a VueJS user interface
/files a listing of the files Caffeine has stored in your web browser’s cache. You can download files from it, and drop new files into it.

There are issues and projects to follow; please do! Current activity is focused on making Caffeine a productive in-world VR livecoding environment, and deploying livecoded VueJS web apps.


Craig Latta
Black Page Digital
Amsterdam :: San Francisco
@ccrraaiigg