example.com/path/to/article
000 points · username · 0 hours ago
example.com12 points · 12 comments · 1 month ago · brandonpayton
Kandelo is still experimental, but it already runs a substantial range of existing software.
Do you have use cases for this?
We are trying Kandelo as a new foundation for WordPress Playground which runs server-side WordPress entirely in the browser. Kandelo also looks promising as a sandbox for running agents in the the browser and on the command line. On the side, we've been playing with porting games and desktop environments and even compiling runnable programs within Kandelo.
Yet it feels like there are many possibilities we haven't considered.
How would you like to use something like this?
Demos:
Some notes: The demos have been tested in desktop browsers. Unfortunately, YMMV on mobile today. Some of the disk images are large (~50MB) and may take a while to boot initially.
Main set, with Shell (bash, vim, nethack, and more), Nginx, PHP, WordPress, and Doom: https://kandelo.dev/20260819-demo/
LÖVE game engine: https://kandelo.dev/20260819-demo-love/
SNKRX running under LÖVE: https://kandelo.dev/20260819-demo-love/?vfs=love-snkrx-abi44...
Commander Keen running in DOSBox: https://kandelo.dev/20260819-demo-dos/?demo=keen
LXDE desktop PoC: https://kandelo.dev/20260819-demo-lxde/?demo=desktop-lxde
Background
I wanted an authentic OS-level foundation for running systems software in the browser and started this as a vibe-coded exploration. I figured it would end up being too slow and that we would have to offer many different ways to compromise default POSIX behavior to get anything usable. But after weeks of fighting agents, insisting on genuine POSIX compatibility as the default, I was surprised at how well the system worked without those compromises.
Nginx, PHP, Python, Ruby, Redis, and even MariaDB were able to be built using the SDK with minimal hacks.
Then we started porting games, having fun, and playing to see how far we could push it.
Notes on architecture:
There is a central, single-worker kernel, aiming to provide all supportable POSIX syscalls. Each process is a dedicated worker with independent memory. Each process thread is a dedicated worker that shares memory with threads from the same process. Syscalls are done with the process SharedArrayBuffer and the Atomics API. fork() is supported. The system is centered around virtual file system (VFS) images, and the VFS can contain lazy references to programs that may or may not be used. Vim is such a reference in the shell demo.
On GitHub: https://github.com/Automattic/kandelo
grayrest
Lerc
https://lerc.neocities.org (first page load initialized the filesystem in indexeddb, reload the page to boot off it). I really should automate that.
If there is enough of an API to the processes being run by kandelo, I could even build a full /proc interface for them.
program
What is the main plus you have over other similar projects or tools like JSLinux?
Which preprocessor directives can I expect to have if I need to write custom code when my executable is compiled for Kandelo?
What is the reason for choosing GPL instead of MIT or similar?
faxmeyourcode
The some points of trouble I ran into were dead symlinks left behind on the FS pointing to real files and escape codes interacting with the terminal (e.g. escape codes reading from the clipboard).