PAM Desktop
PAM Desktop 1.1.2 is a direct Servo host for native desktop applications whose application logic remains in typed PHP. It lives in a separate repository because its native toolchain, release cadence, and security boundary differ from the server runtime.
pam init hello-desktop --template desktopcd hello-desktoppam desktop doctor .pam desktop dev .pam desktop build .Application model
Section titled “Application model”PHP declares the manifest, windows, commands, events, effects, and allowed native capabilities. Local HTML, CSS, and JavaScript render directly in Servo and call only the commands or native surfaces the application explicitly exposes.
$app = Application::create( window: Window::create('My desktop app') ->size(1120, 720) ->minimumSize(720, 520) ->theme(WindowTheme::Dark), manifest: Manifest::create( 'com.example.my-app', 'My desktop app', '1.1.2', ),);Available today
Section titled “Available today”- stable public PHP API
1, worker protocol6, and Rust plugin protocol1; - local HTML, CSS, JavaScript, and assets rendered by Servo;
- typed commands and bidirectional events;
- deadlines, cancellation, crash detection, and worker recovery;
- multiple windows and targeted effects;
- development hot reload;
- named filesystem roots with read/write policy;
- dialogs, clipboard, notifications, and drag-and-drop grants;
- menus, tray behavior, global shortcuts, and periodic PHP jobs;
- composable PHP plugins and supervised process-isolated Rust plugins;
- signed Ed25519 update feeds with verified atomic install and rollback;
- reproducible Linux directory bundles, portable archives, and optional Debian packages; and
- per-file SHA-256 integrity metadata, public GitHub artifact provenance and executable compatibility snapshots.
Supported release track
Section titled “Supported release track”The stable 1.x contract targets Linux x86-64 on the Ubuntu 22.04 glibc baseline. Windows and macOS code is experimental groundwork and is not built, published, or certified in the current pipeline. Servo remains an evolving engine, so PAM guarantees the documented application and lifecycle contracts, not feature-for-feature Electron parity.
Continue with native shell, plugins, signed updates, and stability.