// about the museum

A permanent collection, kept honest by a build.

The Pocket Museum is the catalogue of every machine PocketJS runs on. It belongs to Pocket Lab, whose landing page carries a short version of this collection; this site is the long version, with hardware, bring-up documents and example code per machine.

00

Where the content comes from

two owners, one page

Curated here

  • Hardware specifications — processor, clock, memory, panel, storage, body, release date — with sources.
  • Product photographs, each with author and licence (credits below).
  • The plaque text: what the machine was and why it is in the collection.
  • The status and execution-path labels, which follow upstream's evidence tables.

Lives in src/data/devices/*.ts of the museum repository.

Owned upstream

  • Toolchains, build and deploy steps, acceptance rules — the host READMEs and docs/*.md.
  • Target profiles — read from contracts/spec/platforms.ts.
  • Board definitions — vapor/boards/*.json.
  • Blog titles and dates — site/nav.ts; screenshots — site/assets/blog/.
  • Example code — the demo apps and runtime sources themselves.

Rendered verbatim from the git submodule external/pocketjs, pinned at 6c43f49 (2026-08-19).

The rule is simple: the museum never rewrites a bring-up document. Markdown is parsed into a token stream at build time; headings get anchors, relative links resolve to the repository at the pinned revision, code is highlighted — and nothing about the text changes. When a machine lacks a document upstream, its page says so instead of inventing one. 40 upstream documents are in this build's render set.

01

How to add an exhibit

four steps
  1. 01

    Land the bring-up upstream first

    A host README or a docs/<MACHINE>.md in pocket-stack/pocketjs is the source of truth for toolchain, build, deploy and acceptance. The museum only points at it.

  2. 02

    Update the submodule

    bun run upstream:update moves external/pocketjs to the current main and stages it.

  3. 03

    Write the exhibit

    Add src/data/devices/<slug>.ts with the hardware sheet, a freely licensed photograph in src/assets/devices/, the upstream document paths and example files, and register it in src/data/devices.ts. If a document lives in a new directory, add the glob to src/data/upstream.ts.

  4. 04

    Build

    bun run check type-checks and prerenders every page. A missing document, a broken path or a wrong type fails the build rather than the visitor.

02

Photo credits

every product photograph
ExhibitPhotographAuthorLicenceNote
NESWikimedia Commons · NES-Console-Set.jpgEvan-AmosPublic domain
Game BoyWikimedia Commons · Game-Boy-FL.jpgEvan-AmosPublic domain
Game Boy AdvanceWikimedia Commons · Nintendo-Game-Boy-Advance-Purple-FL.jpgEvan-AmosPublic domain
Sony PSPWikimedia Commons · Psp-1000.jpgEvan-AmosPublic domain
iPhone 2GWikimedia Commons · Apple iPhone 2G 8GB (15).jpgPavel ŠevelaCC BY-SA 3.0
Meizu M8Wikimedia Commons · Meizu m8 wikipedia.jpgCrimson05 (de.wikipedia)Public domain
Nokia E7Wikimedia Commons · Nokia E7-00 mobile phone.JPGVilleke1CC BY-SA 3.0Slider closed; the four-row QWERTY keyboard is hidden in this shot.
iPhone 4SWikimedia Commons · Apple iPhone 4S (7997974054).jpgDomenic K. (Flickr)CC BY 2.0
PS VitaWikimedia Commons · PlayStation-Vita-1101-FL.jpgEvan-AmosPublic domain
iPod touch 6Wikimedia Commons · IPod 6th Generation.jpgRedoltaCC0The fifth and sixth generations share the same body.
ESP32 MeowBitWikimedia Commons · Kittenbot meowbit.jpgXnouCC BY-SA 4.0A KittenBot Meowbit is pictured; the Xueersi ESP32 revision shares the form factor.
PlaydateWikimedia Commons · Playdate with crank.pngLouie Mantia (Louiemantia)CC BY-SA 4.0
PocketBookWikimedia Commons · 2012-08-04 PocketBook 360 Plus.jpgArtem Topchiy (user Art-top)CC BY-SA 3.0A PocketBook 360° Plus (2011) is pictured; the device PocketJS is validated on is the Verse.
ESP32-P4Wikimedia Commons · Espressif ESP32-P4.jpgPathfinbirdCC BY-SA 4.0The SoC on a development board; no M5Stack Tab5 photo is available under a free licence.
macOSWikimedia Commons · MacBook M1.jpgWilfredorCC0
iOS simulatorWikimedia Commons · IPhone 14 Pro.jpgiGeeksBlogCC BY-SA 4.0
Web & simsite/assets/pocketjs-demo-wall.jpgpocket-stack/pocketjsMITEngine output only, baked by site/bake-demo-wall.ts.

Screenshots and device captures on exhibit pages come from the PocketJS repository (MIT) and are credited to their upstream path in place. Motion Lab studies are by yui540 and are not reproduced here.

03

Colophon

how it is built
Stack
Vue 3, Vite, vue-router and vite-ssg for static pages; Tailwind CSS v4 compiled at build time; markdown-it and shiki at build time. No runtime CSS or JS framework beyond Vue.
Type
Space Grotesk for display and body, IBM Plex Mono for labels, specifications and code — the Pocket Lab pairing.
Colour
Near-black navy surfaces on a 56 px bench grid; cyan for interaction, green for shipping, amber for time.
Source
pocketlab-museum · design notes in DESIGN.md, working rules in CLAUDE.md.