If nothing in the store fits, build it. A custom app runs on Screenly like any other content, and the logic and the look are yours.
What one is
A standard web application, an index.html with its CSS and JavaScript, plus a screenly.yml manifest describing its name, its settings, and its secrets.
my-app/
index.html
screenly.yml
styles.css
app.jsYou write it the way you would write any web page. It runs in a browser on the player.
Why bother, rather than pointing a screen at a URL
Everything around the code.
Configuration in the dashboard. The manifest declares the fields, and a non-technical colleague sets it up without touching anything you wrote.
Secrets. An API key goes in encrypted and never appears in the page source. See Settings and secrets.
Versioned deploys across a fleet. One command updates every screen running it.
A CORS proxy. Apps can fetch from APIs that would otherwise block a browser request, with no proxy of your own to run.
Branding. The app reads your workspace logo and colors rather than having them hard-coded.
If you need none of those, a web page is simpler and perfectly legitimate.
The workflow
screenly edge-app validate
screenly edge-app run --generate-mock-data
screenly edge-app deployBuild locally, run against mock data without deploying, then deploy. It is non-interactive, so it drops into GitHub Actions or any other pipeline, and the whole app is plain text that commits cleanly to git.
Where the detail is
The manifest schema, the JavaScript API available to your app, the branding values, and the deploy model are all in Edge apps and at developer.screenly.io.