PUTTV is digital signage you drive from code. Create a free account, pair a screen, and control any TV over a REST + Socket.IO API. Templates are plain JSON you can version in git.
Everything runs in the PUTTV cloud — there are no servers to run. You plug in a box and push.
Create a free account, flash a device, pair it, and push.
Every device is driven by the same REST + Socket.IO API the dashboard uses. Here's the whole loop.
Boot a flashed box, scan its QR while signed in, and it appears in your account. Grab its UUID from the dashboard or GET /api/v1/devices.
Send any template JSON straight to a screen. It renders live.
curl -X POST https://api.puttv.io/api/v1/devices/<device-id>/push-inline \ -H 'Content-Type: application/json' \ -d '{"template":{"version":1,"background":"#0f172a","widgets":[ {"type":"text","x":160,"y":420,"w":1600,"h":200, "props":{"text":"Hello from the API","fontSize":110,"color":"#ffffff","textAlign":"center"}}]}}'
GET /api/v1/templates # list saved templates POST /api/v1/devices/:id/push # push a saved template by id PUT /api/v1/devices/:id/variables # update {{placeholders}} live POST /api/v1/devices/:id/clear # blank the screen POST /api/v1/devices/:id/power # { "action": "on" | "off" } WS socket.io # real-time device + render events
A template is a background plus a list of widgets positioned on a 1920×1080 canvas. Design in the browser or write them by hand.
{
"version": 1,
"background": "linear-gradient(135deg,#0f172a,#1e293b)",
"widgets": [
{ "type": "text", "x":160, "y":220, "w":1600, "h":180,
"props": { "text": "🚀 Now Open", "fontSize":120, "textAlign":"center" } },
{ "type": "clock", "x":660, "y":520, "w":600, "h":240,
"props": { "format": "24h", "showDate": true } }
]
}
Widget types include text, image, clock, list, shape and html. Use {{variables}} and update them with one API call to change what's on screen without re-pushing the whole template.
Because it's just an API, screens can react to anything you can script.
Swap menu items or flash "sold out" the moment your POS or stock system changes.
A scheduled job pushes breakfast, lunch, and after-hours boards automatically.
Put build status, deploy state, or live KPIs on the wall from your pipeline.
Fire an alert across every screen in every building from a single call.
Free for one screen. Sign up, plug in a box, and you're pushing pixels in minutes.