An independent technology lab with one mission: the joy of creating, for everyone. It starts from PocketJS, a compact UI runtime, and grows purpose-built engines small enough for anyone to hold.
Game engines exist so more people can build worlds. Every Pocket project grows from the same root: the joy of creating belongs to everyone. AI is democratizing software production itself, so a small lab can now grow a purpose-built engine for each kind of creation, each small enough to understand and own. PocketJS is the shared trunk. Everything below grew from it.
PocketJS runs Solid, Vue Vapor, and Octane components on one Rust core with one layout engine everywhere. The same bundle boots on a 2004 PSP, a PS Vita, an e-ink reader, and a Mac, without editing a component.
Every frame is one transaction over the input tape. Same tape in, same trajectory out, byte for byte, which is why every engine in this lab can be tested like a pure function.
$ pocket check --target psp ok 480x272 · text.glyphs.baked · input.buttons $ pocket check --target vita ok same bundle, density 2, no component edited
16 programs · 1 runtime · engine output only
PL-01 · burn yes · one state hash
PL-02 · route 1, 30 fps
PL-03 · vue on gba, 9.1 KB
PL-06 · agent in 304 KBNew software for machines the industry finished with. Every exhibit runs today's Pocket stack on the original hardware, as a live guest or a compiled cartridge, and every port ships with an engineering story. The museum is how the runtime keeps its portability honest.
Vue compiled to cartridges. Reactive JS in 2 KB of RAM.
The founding machine. Games, YouTube, Figma, DevTools at 60 fps.
A UIKit host with no Objective-C. Zero shaders on the MBX Lite.
From message pump to multitouch on Windows CE.
Cover-flow launcher and a 3D FPS on Symbian Belle.
Twice the pixels, zero forks. Same bundles, byte-exact goldens.
Animated partial refresh on a screen that loves stillness.
The crank as a first-class hardware-neutral axis.
Acquisition reports are public: pocketjs.dev/blog ↗