Plum Developer Platform

Your app, on your users' box. With no one in between.

Publish to every Plum Box with a single signed .plu. Files, identity, and your server backend all run on hardware your users own — no Plum server in the middle.

SDKBrowser JS · served by the box
Runs onEvery Plum Box
Data leaves the boxNever
SDK

One script tag. The whole box.

View on GitHub

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

Your app. Your users' box. No middleman.

Create a developer account, get your namespace, and publish your first .plu today.