Write a full web application, including its user interface, entirely in Scheme instead of JavaScript.
Build a reactive UI that updates automatically when data changes, without a virtual DOM.
Render the same page template live in the browser or as static HTML on a server.
Build browser based 3D graphics or games using WebGL or WebGPU with shaders written in Scheme.
| guenchi/goeteia | ra77a3l3-jar/forest.hx | cristiancmoises/securityops-os | |
|---|---|---|---|
| Stars | 58 | 67 | 3 |
| Language | Scheme | Scheme | Scheme |
| Setup difficulty | hard | moderate | moderate |
| Complexity | 5/5 | 3/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires an engine with WebAssembly GC and tail calls support, such as Node 22+ or a current browser.
Goeteia is a compiler and toolkit that lets you write full web applications, including graphics and games, entirely in the Scheme programming language, which is normally used for teaching and research rather than building websites. It takes Scheme code and compiles it into WebAssembly, a format that browsers and other engines can run quickly, using a newer WebAssembly feature that adds garbage collected memory management. Notably, the compiler itself is written in the same Scheme language it compiles, and building it from scratch produces an identical result byte for byte. The language implementation includes most of the features a serious Scheme programmer would expect, such as closures, proper tail calls, hygienic macros for extending the language, a numeric system covering whole numbers and decimals, the call with current continuation control flow feature, and common data structures like vectors, strings, symbols, and hash tables. It also strips out unused code so compiled programs stay small, and keeps track of source file and line information so errors and browser stack traces remain readable. Beyond the core language, Goeteia ships an extensive set of web focused libraries. These cover talking to JavaScript and the page's structure, a reactive system for building user interfaces that update automatically when data changes without using a virtual DOM, rendering the same templates either live in a browser or as plain HTML strings on a server, treating CSS stylesheets as ordinary Scheme data, embedding Goeteia components inside existing React applications, laying out text without relying on the browser at all so exact heights are known in advance, a virtual scrolling helper for very long chat style feeds, and networking tools including an efficient binary wire format, remote procedure calls, JSON, WebSockets, and server sent events. A separate graphics layer, still shown in the README, adds raw WebGL and WebGPU access with shaders written as Scheme expressions, aimed at building 3D games and visualizations. Given how specialized and low level this project is, it would mainly interest experienced Scheme or compiler enthusiasts and graphics programmers who want to build browser based games or applications without leaving the Scheme language.
A Scheme-to-WebAssembly compiler and web toolkit for building browser apps, UIs, and games entirely in Scheme.
Mainly Scheme. The stack also includes Scheme, WebAssembly, JavaScript.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.