gitwtfhub

wtf is pocketjs?

pocket-stack/pocketjs — explained in plain English

Analysis updated 2026-05-18

740TypeScriptAudience · developerComplexity · 4/5LicenseSetup · hard

TL;DR

A framework that lets you write web style UI code in Solid or Vue and run it natively on PSP, PS Vita, browsers, macOS, or a headless server.

Mindmap

mindmap
  root((PocketJS))
    What it does
      Web style UI
      Runs outside browser
      Rust rendering core
    Tech stack
      TypeScript
      Rust
      Tailwind CSS
    Targets
      PSP
      PS Vita
      Browser
      macOS
    Use cases
      Handheld homebrew
      Emulator testing
      Controller UI

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Why would anyone build with this?

REASON 1

Build a homebrew UI for a Sony PSP or PS Vita using familiar component code.

REASON 2

Test the same interface in a browser or PPSSPP/Vita3K emulator before deploying to hardware.

REASON 3

Create a lightweight native desktop window using web style components.

REASON 4

Design controller navigable menus with built in focus, modal, and action bar components.

What's in the stack?

TypeScriptRustSolid.jsVueTailwind CSSBun

How it stacks up

pocket-stack/pocketjsangular/web-codegen-scorerindalok/rzweb
Stars740744723
LanguageTypeScriptTypeScriptTypeScript
Setup difficultyhardmoderateeasy
Complexity4/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you spin it up?

Difficulty · hard Time to first run · 1h+

Requires a pinned PSP or Vita toolchain plus Bun and Rust to build for real hardware.

Use freely for any purpose, including commercial use, as long as you keep the copyright notice (MIT license).

Wtf does this do

PocketJS lets developers write user interfaces using familiar web style code, such as Solid or Vue components, and then run that interface on hardware that has nothing to do with a web browser. The project can build and run the same UI on a real Sony PSP, a PS Vita, emulators for both of those handheld consoles, inside a regular browser, as a native macOS window, or in a backend environment called Bun with no display attached at all. Under the hood, PocketJS moves the actual work of laying out, styling, animating, and drawing text into a small Rust program that does not depend on a full operating system. This is what lets it hit 60 frames per second animation while staying inside an 8 megabyte memory budget, tight enough to run comfortably on aging handheld game console hardware. Styling is written in a Tailwind like shorthand, but it is fully checked and turned into fixed data at build time rather than being interpreted while the app runs, which keeps things fast and predictable. Building an app is a two step process: first your components are checked and converted, along with a scan of exactly which styles and text characters you actually use, then everything is bundled and packaged into a single file ready to install on the target device. A command line tool called pocket handles setup, checking, compiling, and building for either the PSP or Vita target, and there is also a browser and desktop development mode for testing. The project also includes small reusable interface building blocks such as focusable buttons, modals, and action bars designed for controller based navigation rather than a mouse. It is licensed under MIT, meaning it can be used freely, including commercially, as long as the copyright notice stays intact. With 740 stars, it has a meaningfully active following among developers interested in retro game hardware and embedded interfaces.

Yoink these prompts

Prompt 1
Help me set up the PocketJS toolchain and build my first counter app targeting PSP.
Prompt 2
Show me how to write a Vue single file component that works with PocketJS's Vapor mode.
Prompt 3
Explain PocketJS's two pass build process and what happens in each pass.
Prompt 4
Walk me through packaging and running my PocketJS app in the Vita3K emulator.

Frequently asked questions

wtf is pocketjs?

A framework that lets you write web style UI code in Solid or Vue and run it natively on PSP, PS Vita, browsers, macOS, or a headless server.

What language is pocketjs written in?

Mainly TypeScript. The stack also includes TypeScript, Rust, Solid.js.

What license does pocketjs use?

Use freely for any purpose, including commercial use, as long as you keep the copyright notice (MIT license).

How hard is pocketjs to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is pocketjs for?

Mainly developer.

View the repo → Decode another repo

This repo across BitVibe Labs

Don't trust strangers blindly. Verify against the repo.