SDK
One script tag. The whole box.
The box serves one shared plum-sdk.js at /apps/runtime/plum-sdk.js — no install, no build step, and every app on a device stays in sync. A drop-in mock lets you develop offline.
files The user's storage
Read and write the user's own encrypted storage. Scoped to the paths you declare in the manifest, enforced by the box.
user Identity without accounts
Profile, display name, and avatar come from the box's local identity. No OAuth, no user table to leak.
server A backend inside your app
Ship a Go service in the same .plu. The box runs it sandboxed and proxies it at /apps/<id>/svc.
From code to every box
Four steps, one line each.
Step 01
Build
Bundle your app and Go server into a single signed .plu.
plum build
Step 02
Submit
Upload to your namespace. Automated checks run in seconds.
plum publish
Step 03
Review
A Plum reviewer checks permissions, content, and the server sandbox.
# usually < 48h
Step 04
Live
Once approved, it appears in the store on every box — one-tap install.
# rollout complete