caffeine

Caffeine is a livecoding environment for web browsers, Deno, 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, assisted by dynamically-generated WebAssembly. 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 includes the Epigram parser and compiler framework, with which I have written compilers for Smalltalk, SVG, Protocol Buffers, and WebAssembly.

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. Check out the teaser trailer on YouTube.

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

/ this page
/spa Caffeine on a single-page-application site
/worldly Worldly, an A-Frame-powered in-world virtual reality livecoding space
/minimal a minimal object memory
/talk an impress-powered presentation about Caffeine and livecoding
/developer a developer-oriented overview of Caffeine, with a tutorial for developing with it
/beatshifting Beatshifting :: Play Music in Sync and Out of Phase
/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 WebComponent-based web apps.


Craig Latta
Black Page Digital
Amsterdam :: San Francisco
@ccrraaiigg@mastodon.social