Choose a target
PAM uses the same persistent PHP foundation across several application targets, but each target has a different maturity and deployment model.
| You want to build | Start with | Current boundary |
|---|---|---|
| API or web service | pam init my-api --template api |
Experimental Linux runtime |
| Laravel application | pam init my-app --template laravel |
Laravel 12 and 13 executable matrix |
| Real-time server | Add --socket to API or Laravel |
Native RFC 6455 transport |
| Native application, low-level UI | pam init my-app --template mobile |
Android API 26–36 verified; iOS host/distribution incomplete |
| Android application, component library | pam init my-app --template mobile-ui |
Component maturity varies |
| Desktop application | pam init my-app --template desktop |
Linux experimental; macOS/Windows planned |
Server runtime
Section titled “Server runtime”Choose the server runtime when you need persistent HTTP, streaming, WebSockets, background I/O, or high-throughput APIs without leaving PHP and Composer.
Laravel
Section titled “Laravel”Choose Laravel when you want the Laravel application model and ecosystem. PAM boots the framework once, creates an isolated application sandbox for each request, and limits the host to one concurrent request per worker because Laravel and many packages keep mutable process-global state.
PAM Native
Section titled “PAM Native”Choose PAM Native when you want real platform controls while keeping application state and composition in PHP. It is not a WebView and does not include React’s JavaScript runtime.
PAM Mobile UI
Section titled “PAM Mobile UI”Choose Mobile UI when you want an accessible, themed component layer above PAM Native. Its catalog records maturity, implementation kind, examples, and verification gates for every component; “present in the API” does not automatically mean “production complete.”
PAM Desktop
Section titled “PAM Desktop”Choose Desktop for controlled prototypes where PHP owns the application and Servo renders local HTML, CSS, and JavaScript. The native bridge is capability-based and disabled by default. Linux packaging exists today; Windows, macOS, signing, and automatic updates remain roadmap work.