diff --git a/README.md b/README.md
index 7f1e1f5..b6e4bd6 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,13 @@
-# ScreenTinker
+# ScreenTinker — Open-Source, Self-Hosted Digital Signage Software
-ScreenTinker is self-hosted digital signage software. Manage screens across multiple locations from one dashboard — built for retail, offices, lobbies, and any environment where you need centralized control over what's displayed on remote screens. Open source, multi-tenant, single-developer maintained with direct contact access.
+ScreenTinker is a free, open-source **digital signage CMS** you can self-host on your own server — or run in our managed cloud. Manage TVs, video walls, and kiosks across multiple locations from one dashboard, with remote control, scheduling, playlists, and analytics. Built for retail, QSR menu boards, offices, lobbies, education, and any environment where you need centralized control over remote screens. Multi-tenant, MIT-licensed, single-developer maintained with direct contact access.
+
+**Runs on any screen** — Android TV, Fire TV, Samsung Tizen, LG webOS, Amazon Vega OS, Raspberry Pi, Windows, ChromeOS, or any web browser. No per-device player licence, no hardware lock-in.
+
+**Why self-host?** Keep your content and data on your own infrastructure, avoid per-screen SaaS fees, run air-gapped on a private LAN, and read or fork the source. Set `SELF_HOSTED=true` and a $5 VPS drives hundreds of screens.
**Hosted version:** [screentinker.com](https://screentinker.com) — free tier available, no credit card required.
+**Guides:** [What is digital signage?](https://screentinker.com/guides/what-is-digital-signage.html) · [Open-source digital signage](https://screentinker.com/guides/open-source-digital-signage.html) · [Self-hosting guide](https://screentinker.com/guides/self-hosted-digital-signage.html)
**Community:** [Discord](https://discord.gg/utTdsrqq4Z)
## Features
diff --git a/docs/seo-directory-listings.md b/docs/seo-directory-listings.md
new file mode 100644
index 0000000..f056284
--- /dev/null
+++ b/docs/seo-directory-listings.md
@@ -0,0 +1,53 @@
+# SEO: Off-Site Listings & Backlink Checklist
+
+These are the **off-repo** SEO actions that can't be done in code — they need an account, a
+form submission, or outreach. Every serious competitor (Yodeck, ScreenCloud, OptiSigns, Xibo,
+Anthias) is listed across these; ScreenTinker currently is not. Each listing is both a
+high-authority backlink and a surface that ranks for "best/free/open-source/alternative"
+queries. Ordered by ROI.
+
+## Reusable submission kit (prepare once, paste everywhere)
+
+- **Name:** ScreenTinker
+- **Category:** Digital Signage Software / Digital Signage CMS
+- **One-liner:** Free, open-source, self-hostable digital signage CMS. Runs on any screen — Android TV, Fire TV, Tizen, webOS, Raspberry Pi, Windows, browser — with no per-device player licence.
+- **Short desc (≈50 words):** ScreenTinker is an open-source (MIT) digital signage platform you can self-host or run in the cloud. Manage TVs, video walls, and kiosks from one dashboard with remote control, scheduling, playlists, multi-zone layouts, and analytics. Free plan; Pro from $39–99/mo; unlimited free when self-hosted.
+- **Pricing:** Free (1 device) · Starter $39/mo (5) · Pro $99/mo (15) · Self-hosted free/unlimited
+- **Deployment:** Cloud (SaaS) + On-premise / Self-hosted
+- **Platforms:** Android TV, Fire TV, Samsung Tizen, LG webOS, Amazon Vega OS, Raspberry Pi, Windows, ChromeOS, Web
+- **License:** MIT (open source)
+- **Website:** https://screentinker.com
+- **Repo:** https://github.com/screentinker/screentinker
+- **Logo / screenshots:** dashboard-preview.png + assets/icon-512.png (grab 3–4 dashboard shots)
+- **Differentiators to emphasize:** open source, self-host/air-gapped, no per-screen fee, all players free, live Android remote control.
+
+## Tier 1 — highest ROI (do first)
+
+- [ ] **Capterra** — https://www.capterra.com/vendors/sign-up · digital-signage category. The #1 review moat competitors have (Yodeck 4,700+ reviews). Claim/create the profile, then seed honest reviews from real users.
+- [ ] **G2** — https://www.g2.com/products/new · ranks for "[competitor] alternatives". Create the product, request reviews.
+- [ ] **AlternativeTo** — https://alternativeto.net/manage-item/ · submit ScreenTinker as an alternative to **Yodeck, ScreenCloud, OptiSigns, Xibo, Anthias/Screenly**. Tag: open source, self-hosted, free. This is where OSS-seekers browse.
+- [ ] **awesome-selfhosted** — PR to https://github.com/awesome-selfhosted/awesome-selfhosted (Digital Signage / Media section). High-authority, high-intent backlink; Anthias/Xibo are there.
+- [ ] **fingoweb "Top open source digital signage" roundup** — pitch inclusion via their contact form (their article ranks #1 for several OSS queries and omits us). Highest-value single listicle.
+
+## Tier 2 — directory saturation
+
+- [ ] **SourceForge** — https://sourceforge.net/create/ (OSS directory, ranks for "open source digital signage").
+- [ ] **GetApp** — https://www.getapp.com/ (Gartner network; often auto-generates "vs" pages).
+- [ ] **Software Advice** — https://www.softwareadvice.com/ (Gartner network).
+- [ ] **GoodFirms** — https://www.goodfirms.co/ (their "Top Free & Open Source" roundup ranks).
+- [ ] **SoftwareSuggest / SaaSHub / Slashdot** — quick profile submissions.
+- [ ] **Product Hunt** — a launch post (one-time spike + durable backlink).
+
+## Tier 3 — community / organic signals
+
+- [ ] **r/selfhosted** — a genuine "I built/self-host this" post (Anthias gets real traffic here). No spam; lead with the self-host story.
+- [ ] **r/digitalsignage** — participate, link where relevant.
+- [ ] **Hacker News (Show HN)** — "Show HN: ScreenTinker – open-source self-hosted digital signage."
+- [ ] **GitHub repo polish** — topics/tags: `digital-signage`, `signage`, `self-hosted`, `open-source`, `cms`, `raspberry-pi`, `kiosk`, `android-tv`. Keyword-rich description + README (done). Stars are themselves a ranking signal (Anthias ranks partly because its repo does).
+- [ ] **Roundup outreach** — signagespace.com, cenareo, nento, digitalsignagehub.org, softwaresuggest "15 best" — ask to be added.
+
+## Notes
+
+- **Do NOT fabricate reviews or ratings** — seed real ones from actual users only. Fake aggregateRating is a Google penalty risk (we already removed a fabricated one from the landing page).
+- Reuse the exact same name/desc/logo everywhere for entity consistency (helps Google's Knowledge Graph).
+- Re-run `scripts/indexnow-submit.sh` after the new pages deploy to prod so Bing/Yandex re-crawl immediately.
diff --git a/frontend/41498e6c84045d9d187f4504c122e54f.txt b/frontend/41498e6c84045d9d187f4504c122e54f.txt
new file mode 100644
index 0000000..f7a4eb2
--- /dev/null
+++ b/frontend/41498e6c84045d9d187f4504c122e54f.txt
@@ -0,0 +1 @@
+41498e6c84045d9d187f4504c122e54f
\ No newline at end of file
diff --git a/frontend/compare/anthias-alternative.html b/frontend/compare/anthias-alternative.html
new file mode 100644
index 0000000..6eccaf4
--- /dev/null
+++ b/frontend/compare/anthias-alternative.html
@@ -0,0 +1,156 @@
+
+
+
Best Anthias Alternative (2026): ScreenTinker vs Anthias
+
Anthias (formerly Screenly OSE) is a beloved free, open-source signage project for the Raspberry Pi. But it is built around one Pi driving one screen. Here is an honest comparison with ScreenTinker for anyone who needs to manage more than a single display.
+
+
The short answer
+
Anthias is free, open source, and has been active since 2012 with around 3,500 GitHub stars. It runs on the Raspberry Pi 2 through 5 and positions itself as "free digital signage for everyone - no subscriptions, no cloud lock-in." It is essentially one-Pi-one-screen: single-screen oriented, with no multi-tenant or team management and a thin widget ecosystem. (Screenly is the paid-cloud parent product.)
+
ScreenTinker is also free, open source (MIT), and self-hostable - but it adds a modern web dashboard, multi-device fleet management, video walls with multi-screen sync, group sync, scheduling and dayparting, players well beyond the Pi, and an optional managed cloud. It is the better fit the moment you go past a single screen.
+
+
Quick comparison
+
+
+
+
Feature
ScreenTinker
Anthias
+
+
+
Open source
Yes (MIT)
Yes
+
Free & self-hostable
Yes
Yes
+
Raspberry Pi player
Free setup script
Yes (Pi 2-5)
+
Runs beyond Raspberry Pi
Android, Tizen, webOS, Fire TV, Vega, web
No (Pi only)
+
Modern web dashboard
Yes
Basic device UI
+
Multi-device fleet management
Yes
Limited (single-screen oriented)
+
Multi-tenant / team management
Yes
No
+
Video walls (multi-screen sync)
Yes
No
+
Group sync
Yes
No
+
Scheduling / dayparting
Yes
Basic
+
Multi-zone layouts
Yes
No
+
Widget ecosystem
YouTube, RSS, Weather, Webpage, more
Thin
+
Live remote control*
Yes
No
+
Optional managed cloud
Yes
Via Screenly (paid)
+
Self-host cost
Free (your server)
Free (your Pi)
+
+
+
+
+ * Live remote control is Android only and requires granting the on-device accessibility permission.
+ Comparison as of July 2026, based on each project's publicly listed documentation and repositories. Spot an error? Open an issue on GitHub and we'll fix it.
+
+
+
Where Anthias does well
+
+
Dead-simple single Pi setup. If you have one Raspberry Pi and one screen showing a rotating playlist, Anthias is lightweight and gets you there fast.
+
Genuinely free and open. No subscriptions, no cloud lock-in, active since 2012 with a large community (~3,500 GitHub stars).
+
Low footprint. Purpose-built for the Pi, so it runs well on modest hardware.
+
+
+
Where ScreenTinker is the better choice
+
+
You have more than one screen. Anthias is single-screen oriented with no multi-tenant or team management. ScreenTinker is built around multi-device fleet management from the start.
+
You need video walls or synced screens. ScreenTinker does video walls with multi-screen sync and per-group synchronized playback. Anthias does not.
+
You run mixed hardware. Beyond the Pi, ScreenTinker has native players for Android TV, Fire TV, Samsung Tizen, LG webOS, Amazon Vega OS, and any web browser. Anthias is Raspberry Pi only.
+
You want real scheduling and widgets. Dayparting, content expiry, and native widgets (YouTube, RSS, Weather, Clock, plus a universal Webpage widget for any framable URL) go well past Anthias's basic scheduling and thin widget set.
+
You want the option of managed cloud later. Self-host for free now, and move to the managed cloud without changing products if you ever want hosting handled for you.
+
+
+
Pricing snapshot
+
Both Anthias and self-hosted ScreenTinker are free and open source - Anthias on your Raspberry Pi, ScreenTinker on a $5 VPS that comfortably runs hundreds of screens. The difference is not price but reach: ScreenTinker adds fleet management, video walls, group sync, and multi-platform players at the same free-and-self-hosted price point, plus an optional managed cloud (Free, Starter $39/mo, Pro $99/mo) if you would rather not run a server.
Best Xibo Alternative (2026): ScreenTinker vs Xibo
+
Xibo is one of the oldest open-source digital signage projects. But its open-source edition ships only a Windows player - the Android, Samsung Tizen, and LG webOS players you probably want cost money. Here is an honest comparison with ScreenTinker.
+
+
The short answer
+
Xibo is a mature, well-documented signage platform that has been around since roughly 2010, with a strong community forum. Its CMS is open source under the AGPLv3 licence - but only the CMS and the Windows player are free. The Android, Tizen, and webOS players require paid perpetual per-device licences, and there is no free plan (the homepage funnels you into a 14-day trial and a paid cloud CMS).
+
ScreenTinker is open source (MIT licensed), self-hostable, and every player is free - Android TV, Fire TV, Samsung Tizen, LG webOS, Amazon Vega OS, Raspberry Pi, and any web browser. No per-device player licence, and there is a genuine free plan. It is the better fit if you want the mainstream players without buying licences, or you want a straightforward MIT codebase you can fork.
+
+
Quick comparison
+
+
+
+
Feature
ScreenTinker
Xibo
+
+
+
Open source
Yes (MIT)
Yes (AGPLv3, CMS)
+
Self-host option
Yes
Yes
+
Free plan
1 device, 500MB
No (14-day trial)
+
Windows player
Yes (web player)
Yes (free)
+
Android / Fire TV player
Free
Paid licence
+
Samsung Tizen player
Free
Paid licence
+
LG webOS player
Free
Paid licence
+
Raspberry Pi
Free setup script
Community/unofficial
+
Web browser player
Yes
No
+
Video walls (multi-screen sync)
Yes
Yes
+
Multi-zone layouts
Yes
Yes
+
Scheduling / dayparting
Yes
Yes
+
Live remote control*
Yes
No
+
Managed cloud option
Yes
Yes (paid)
+
Per-device player cost
Free (all players)
Paid on Android/Tizen/webOS
+
Self-host cost
Free (your server)
Free CMS + paid player licences
+
+
+
+
+ * Live remote control is Android only and requires granting the on-device accessibility permission.
+ Comparison as of July 2026, based on each vendor's publicly listed pricing and documentation. Spot an error? Open an issue on GitHub and we'll fix it.
+
+
+
Where Xibo does well
+
+
Maturity. Xibo has been developed since around 2010 and is battle-tested in large deployments.
+
Community and docs. An active community forum and extensive documentation make it easy to find answers.
+
Windows-first deployments. If your fleet is Windows players, the free Windows player plus the free AGPLv3 CMS is a genuinely capable open-source stack.
+
+
+
Where ScreenTinker is the better choice
+
+
Every player is free. The players most people actually deploy - Android TV, Fire TV, Samsung Tizen, LG webOS - all cost money on Xibo as paid perpetual per-device licences. On ScreenTinker they are free, with no per-device player fee.
+
There is a real free plan. Xibo funnels you into a 14-day trial and a paid cloud CMS. ScreenTinker has a genuine free tier (1 device, 500MB) and free unlimited self-hosting.
+
Broader player support out of the box. Amazon Vega OS, a first-class web player for any browser, and a free Raspberry Pi setup script - all included, no licence gate.
+
Live remote control. ScreenTinker streams a live view of an Android display and forwards taps and key events back to the device.
+
Simple MIT licence. ScreenTinker is MIT licensed on GitHub - audit it, extend it, or fork it without AGPL copyleft obligations.
+
+
+
Pricing snapshot
+
Xibo's CMS is free and open source, but the Android, Tizen, and webOS players carry paid perpetual per-device licences, and Xibo explicitly frames self-hosting as "typically a higher total cost of ownership than a plan" to steer you toward its paid cloud CMS. ScreenTinker charges nothing per player on any platform: the managed cloud is a flat $99/mo for 15 devices on Pro, and self-hosting is free and unlimited on a $5 VPS.
Open Source Digital Signage Software: Free & Self-Hosted (2026)
+
Open source digital signage lets you own your content, skip per-screen subscription fees, and run your screens on your own terms. Here is what it means, why it matters, and how ScreenTinker fits in.
+
+
What is open-source digital signage?
+
Open-source digital signage is signage software whose source code is publicly available under a permissive license, so anyone can inspect, run, modify, and redistribute it. Instead of renting access to a closed cloud platform, you get the actual application - the content management system (CMS) that schedules and pushes content, plus the players that run on your screens.
+
ScreenTinker is an open-source digital signage CMS released under the MIT license. That license is about as permissive as it gets: you can audit the code, fork it, extend it, and deploy it commercially with no strings attached. You can run it as a managed cloud service or self-host it on a server you control - the same codebase either way.
+
+
Why choose open source over cloud SaaS?
+
+
Data ownership. With a self-hosted open-source deployment, your content, schedules, device list, and logs live on infrastructure you control - not in a vendor's cloud. For healthcare, finance, government, and education, that is often a hard requirement.
+
No per-screen fees. Closed SaaS products charge a recurring fee for every screen, typically $5-15/screen/month. Self-hosting ScreenTinker replaces that with a flat server cost - a $5 VPS can run hundreds of screens.
+
No vendor lock-in. If a cloud vendor raises prices, pivots, or shuts down, your deployment goes with it. With MIT-licensed source you own your copy and control your own roadmap.
+
Auditable and MIT-licensed. You can read every line, run a security review, and satisfy procurement teams that need to know exactly what runs on the network.
+
Self-host or cloud. Open source does not force you onto your own servers. Start on the hosted free plan to evaluate, then self-host when you are ready - or stay on the cloud if you prefer managed hosting.
+
+
+
What ScreenTinker gives you
+
ScreenTinker is a full digital signage platform, not just a media player. Everything below is in the open-source project:
+
+
Content and scheduling: playlists, scheduling and dayparting, content expiry, and multi-zone layouts.
+
Multi-screen: video walls with multi-screen sync, group sync, kiosk mode, and offline-native playback that keeps running when the network drops.
+
Management: live remote control (Android players, with accessibility permission), auto-update/OTA, telemetry, a public API with scoped tokens, an agency portal, and white-label / reseller support.
+
Every player is free: Android TV / Fire TV (native APK), Samsung Tizen (.wgt), LG webOS, Amazon Vega OS, Raspberry Pi (free setup script), and Windows / ChromeOS / any browser via the web player.
+
Native widgets: YouTube, RSS, Weather, Clock, Text/HTML, Social, and a Directory-board. A universal Webpage widget embeds any framable public URL - published Google Slides, Canva, Power BI publish-to-web, and live dashboards.
+
Self-host switch: set SELF_HOSTED=true to unlock the enterprise plan, disable subscription and Stripe checks, and run unlimited devices for free.
+
+
+
Open source vs the paid SaaS incumbents
+
The dominant hosted products - Yodeck, ScreenCloud, OptiSigns - are closed, cloud-only, and billed per screen. Here is how an open-source CMS compares:
+
+
+
+
Concern
ScreenTinker (open source)
Cloud SaaS (Yodeck / ScreenCloud / OptiSigns)
+
+
+
License / source access
Open source (MIT)
Closed / proprietary
+
Per-screen monthly fee
None
$5-15/screen/month
+
Self-host on your own server
Yes
No
+
Data location
Your server (or ST cloud)
Vendor's cloud
+
Air-gapped / offline LAN deployment
Possible
Not possible
+
Player apps included free
All platforms
Varies / add-on hardware
+
Fork / customize the code
Yes
No
+
Vendor lock-in risk
None (you own it)
High
+
Managed cloud option available
Yes (free / $39 / $99)
Yes
+
+
+
+
+
How ScreenTinker compares to other open-source options
+
ScreenTinker is not the only open-source signage project - the two best-known alternatives are Xibo and Anthias (formerly Screenly OSE).
+
vs Xibo: Xibo is open source on the server side, but its player apps are not all free - the Android, Tizen, and webOS players are paid licenses. With ScreenTinker every player is free on every platform. See the ScreenTinker vs Xibo comparison.
+
vs Anthias: Anthias is a lightweight single-screen player built for one Raspberry Pi at a time, without a true multi-device fleet CMS. ScreenTinker is a modern multi-device platform - manage Android TV, Fire TV, Tizen, webOS, Vega, Pi, and browsers from one dashboard. See the ScreenTinker vs Anthias comparison.
+
+
Getting started
+
The fastest path is the hosted free plan - one device, no server to run. When you are ready to self-host, clone the repo:
+
git clone https://github.com/screentinker/screentinker.git
+cd screentinker/server
+npm install
+cp .env.example .env
+# edit .env with your domain, JWT_SECRET, and SELF_HOSTED=true
+node server.js
+
ScreenTinker runs on Node.js with a SQLite database, so a $5 VPS is enough to manage hundreds of screens. Full deployment details are in the GitHub README, and the self-hosted guide walks through reverse proxy, TLS, and backups.
+
+
Frequently asked questions
+
Is ScreenTinker really free and open source?
+
Yes. ScreenTinker is released under the MIT license, so the full source code is public and you can audit, fork, and extend it. Self-hosting is free with unlimited devices; the managed cloud has a free plan plus paid tiers if you prefer hosted convenience.
+
What does the MIT license let me do?
+
The MIT license lets you run, modify, and redistribute the software - including commercially - with essentially no restrictions beyond keeping the copyright notice. You can build custom widgets, integrate it into your own systems, and white-label it.
+
Do I have to self-host to use open-source digital signage?
+
No. Open source means the code is available if you want it, but you can still use ScreenTinker's managed cloud. Many teams start on the hosted free plan and self-host later once their screen count grows.
+
Are all the player apps free?
+
Yes. Android TV / Fire TV, Samsung Tizen, LG webOS, Amazon Vega OS, Raspberry Pi, and the browser-based web player are all free on every platform, with no per-player license.
+
How is ScreenTinker different from Xibo?
+
Both are open source on the server, but Xibo charges license fees for its Android, Tizen, and webOS players. ScreenTinker keeps every player free on every platform.
+
How many screens can a self-hosted server handle?
+
ScreenTinker runs on Node.js and SQLite, which is efficient. A small $5/month VPS can comfortably manage hundreds of screens; larger fleets just need a bit more CPU, RAM, and storage.
Digital signage turns everyday screens into centrally managed displays for menus, announcements, dashboards, and ads. This guide explains what it is, how it works, and what it costs.
+
+
What is digital signage?
+
Digital signage is the use of electronic displays - TVs, monitors, or video walls - to show content such as images, video, menus, and live information, all managed remotely from a central software platform. Instead of printing and swapping posters, you update what appears on every screen from one dashboard. It is used in stores, restaurants, offices, schools, hospitals, and public spaces to inform, advertise, and guide people.
+
+
How does digital signage work?
+
Every digital signage setup has three parts:
+
+
A CMS (content management system). The web dashboard where you upload media, build playlists, set schedules, and assign content to screens.
+
A player. A small device (or app) connected to the screen that downloads content from the CMS and plays it - even when the network is down.
+
A display. The TV, monitor, or video wall that people actually see.
+
+
In ScreenTinker's model, you manage everything from the CMS, and a free player app runs on the screen. You pair a display with a 6-digit code, assign it a playlist, and the player pulls content and plays it. Playback is offline-native: once content is cached, the screen keeps running through network outages.
Video - product clips, brand reels, looping ambient content.
+
YouTube - embed videos or channels directly with a native widget.
+
Playlists - sequences of items that rotate on a schedule, with dayparting and content expiry.
+
Web pages and dashboards - a universal Webpage widget embeds any framable public URL: published Google Slides, Canva, Power BI publish-to-web, and live BI dashboards.
+
RSS feeds - headlines, alerts, or any syndicated feed.
+
Weather and clock - native widgets for local conditions and time.
+
Menus and directories - menu boards for QSR/retail and a directory-board widget for building listings.
+
+
+
Common use cases
+
+
Retail and QSR - digital menu boards, price displays, and promotional loops.
+
Corporate communications - lobby screens, KPIs, and internal announcements.
+
Education - campus notices, event schedules, and emergency messaging.
+
Healthcare - waiting-room information, wayfinding, and queue status.
+
Hospitality - welcome screens, event boards, and guest information.
+
Events - schedules, sponsor loops, and live directional signage.
+
+
+
What hardware do you need?
+
Digital signage needs two things: a screen and a player device to drive it. Almost any modern TV or monitor with an HDMI input works as the screen. For the player, ScreenTinker supports a wide range of free options:
+
+
Android TV / Fire TV - a native APK; the most common low-cost choice.
+
Raspberry Pi - a free setup script turns a Pi into a kiosk player.
+
Samsung Tizen and LG webOS - run directly on compatible commercial smart TVs, no external box.
+
Amazon Vega OS - the newer Fire TV platform.
+
Windows, ChromeOS, or any browser - the web player runs on hardware you may already own.
+
+
All ScreenTinker players are free, so hardware is the only cost - and it can be as little as a Raspberry Pi or a budget Android TV stick.
+
+
How much does digital signage software cost?
+
Pricing splits into two models. Closed cloud SaaS products bill per screen, typically $5-15/screen/month, which adds up quickly across a fleet. Open-source and self-hosted software can be free: with ScreenTinker you can self-host for free with unlimited devices, paying only for a small server (a $5 VPS runs hundreds of screens).
+
If you prefer managed hosting, ScreenTinker's cloud has a Free plan (1 device, 500MB), Starter at $39/mo (5 devices, 5GB), Pro at $99/mo (15 devices, 20GB, all features), and custom Enterprise pricing. Either way, all player apps are free.
+
+
Digital signage software vs a plain TV
+
You could plug a USB stick into a TV and loop a video - but that is not digital signage. A signage platform adds the management layer that makes screens practical at scale:
+
+
Scheduling - show different content by time of day (dayparting) and auto-expire dated promotions.
+
Remote management - update every screen from one dashboard instead of visiting each TV with a USB stick.
+
Multi-screen - synchronize video walls, group screens, and keep dozens or hundreds of displays consistent.
+
Reliability - offline-native playback, auto-updates, and telemetry so you know a screen is alive.
+
+
+
Frequently asked questions
+
What is digital signage?
+
Digital signage is the use of electronic displays - TVs, monitors, or video walls - to show content like images, video, menus, and live information, managed remotely from central software. It replaces printed posters with screens you update from one dashboard.
+
Do I need special hardware?
+
Not necessarily. You need a screen and a player device. Almost any TV or monitor with HDMI works, and the player can be an inexpensive Android TV / Fire TV stick, a Raspberry Pi, a compatible Samsung or LG smart TV, or a Windows/ChromeOS device running the web player.
+
Is there free digital signage software?
+
Yes. ScreenTinker is open-source (MIT licensed) and free to self-host with unlimited devices. There is also a free managed cloud plan for a single device, plus paid tiers if you want hosting managed for you. All player apps are free.
+
Can I run digital signage without internet or offline?
+
Yes. ScreenTinker's playback is offline-native: once a player has cached its content, it keeps playing through network outages. You can also self-host entirely on a private LAN with no internet at all.
+
What's the difference between digital signage and a smart TV?
+
A smart TV plays apps or a looping file on that one screen. Digital signage adds a central CMS that schedules content, manages many screens at once, synchronizes video walls, and reports device status - things a standalone smart TV cannot do.
+
What can you display on digital signage?
+
Images, video, YouTube, playlists, web pages and live dashboards, RSS feeds, weather and clock widgets, and menu or directory boards - all scheduled and rotated from the dashboard.
How to display Canva designs on a digital signage screen
+
ScreenTinker has no dedicated "Canva app," and it does not need one. Canva can publish a design as a public website, and ScreenTinker's universal Webpage widget can show that public link on any screen - looping it as a slideshow for lobbies, menus, and announcement boards.
+
+
The short version
+
In Canva, open Share → Publish → Website (or Embed), copy the public link, then add a Webpage widget in ScreenTinker, paste the link, add it to a playlist, and assign the playlist to a screen. That is the entire integration.
+
+
Step by step
+
+
Open your design in Canva and click Share in the top-right.
+
Choose Publish → Website (or the Embed option). For a multi-page design, pick a navigation style such as Scroll or a presentation layout so all pages are reachable.
+
Publish the design and copy the public website link (or the src URL from the embed snippet). This is a public URL - not your normal edit link.
+
In ScreenTinker, add a Webpage widget. Create or edit a playlist item and select the Webpage widget type.
+
Paste the Canva public link into the URL field and save.
+
Add the widget to a playlist and set a duration long enough to show the whole design.
+
Assign the playlist to a screen. The player loads the published design and displays it on the wall.
+
+
A published Canva website URL looks like this:
+
https://your-design-name.my.canva.site/
+
+
Getting the right URL
+
Only a published, public Canva URL will embed. The private editing link will not:
+
+
The edit URL (contains /design/ and /edit) requires a Canva login and blocks framing - it will not appear in the Webpage widget.
+
The published website / embed URL (from Publish → Website or Embed) is public and framable. Always use this one.
+
+
As with any embedded page, the deciding factor is X-Frame-Options / frame-ancestors: a page that denies framing cannot be shown in ScreenTinker's Webpage widget, because the widget is an iframe. Canva's published website URL is served to allow embedding; the private edit link is not. If your design does not show up, the URL is the first thing to check.
+
+
Auto-advance and refresh tips
+
+
Use a looping presentation for slideshows. When you publish, choose a presentation/autoplay option so a multi-page design advances on its own and loops rather than sitting on page one.
+
Give the playlist item enough time. Set the Webpage widget's on-screen duration to at least one full pass through the design so every page is seen.
+
Re-publish to update. Canva does not always push edits to an already-published URL instantly; after changing a design, use Share → Publish again to refresh the public version the screen loads.
+
Match the aspect ratio. Design at your screen's resolution (for example 1920×1080) so the published page fills the display without letterboxing.
+
+
+
FAQ
+
+
Why won't my Canva link show up on the screen?
+
You likely used the private edit link (the one with /design/ and /edit). It needs a login and blocks framing. Re-open Share → Publish → Website and copy the public .my.canva.site link instead.
+
+
Does the design have to be public?
+
Yes. Only a published, public Canva design embeds. Private designs are login-gated and cannot be shown on an unattended signage player.
+
+
Can I loop a multi-page design as a slideshow?
+
Yes. Choose a presentation or autoplay publish option so the pages advance automatically and loop, then set the widget duration to cover the full cycle.
+
+
Will the screen update when I change the design?
+
Not always automatically. Canva may keep serving the previously published version, so re-publish after edits to make sure the screen loads the latest.
+
+
Is there a native Canva widget?
+
No - this uses the universal Webpage widget with the design's published website URL. That is the supported way to show Canva on ScreenTinker.
+
+
+
+
+
+
+
+
diff --git a/frontend/integrations/google-slides-digital-signage.html b/frontend/integrations/google-slides-digital-signage.html
new file mode 100644
index 0000000..7c527ce
--- /dev/null
+++ b/frontend/integrations/google-slides-digital-signage.html
@@ -0,0 +1,166 @@
+
+
+
+
+
+ How to Put Google Slides on Digital Signage (2026) | ScreenTinker
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
How to put Google Slides on a digital signage screen
+
ScreenTinker does not have a dedicated "Google Slides app" - and it does not need one. Google Slides can publish a deck to the web, and ScreenTinker's universal Webpage widget can display that published URL on any screen, auto-advancing through the slides on a loop.
+
+
The short version
+
In Google Slides, go to File → Share → Publish to web → Embed, set the auto-advance interval, and copy the published URL. In ScreenTinker, add a Webpage widget, paste that URL, drop the widget into a playlist, and assign the playlist to a screen. That is the whole integration.
+
+
Step by step
+
+
Open your deck in Google Slides and choose File → Share → Publish to web.
+
Switch to the "Embed" tab. Pick how fast slides should advance (for example, every 5 seconds) and tick Auto-advance and Restart the slideshow after the last slide so it loops forever.
+
Click Publish and confirm. Copy the published URL from the embed snippet - it is the src value that looks like the one below, not your normal editing link.
+
In ScreenTinker, add a Webpage widget. Open your dashboard, create or edit a playlist item, and choose the Webpage widget type.
+
Paste the published URL into the widget's URL field and save.
+
Add the widget to a playlist and set its duration to at least one full loop of the deck.
+
Assign the playlist to a screen. The player pulls the published deck and it starts advancing on the wall.
This is the step that trips people up. Google Slides has several URLs and only one of them will embed:
+
+
The /edit URL (ends in /edit) is your working document. It requires a Google login and refuses to be framed - it will not show up in the Webpage widget.
+
The /present URL (ends in /present) is presenter mode and also blocks framing.
+
The published URL from Publish to web (contains /pub or /pubembed) is the only one that permits embedding. Always use this one.
+
+
The reason is X-Frame-Options / frame-ancestors: any page that sends those headers to deny framing cannot be shown in an iframe, and ScreenTinker's Webpage widget is an iframe. The published URL is served without that restriction specifically so it can be embedded. If your slides do not appear, the URL is almost always the cause.
+
+
Auto-advance and refresh tips
+
+
Set the pace in Slides, not ScreenTinker. The delayms parameter in the published URL controls how long each slide holds. Adjust it by re-publishing with a different interval, or edit the delayms value directly in the URL (milliseconds).
+
Keep loop=true so the deck restarts after the last slide and never goes blank.
+
Give the playlist item enough time. Set the Webpage widget's on-screen duration to at least the length of one full loop so viewers see every slide.
+
Content updates are automatic-ish. When you edit the source deck, Google re-publishes changes to the published URL within a short window (usually a few minutes), so the sign updates without touching ScreenTinker.
+
+
+
FAQ
+
+
Why won't my Google Slides link show up on the screen?
+
You almost certainly pasted the /edit or /present URL. Those require a login and block framing. Go back to File → Share → Publish to web and copy the published /pubembed URL instead.
+
+
Do viewers need a Google account to see the deck?
+
No. A published-to-web deck is public and renders without any login, which is exactly why it works on an unattended signage player.
+
+
Can I make the slides advance automatically?
+
Yes. Enable auto-advance when you publish and set the interval; the delayms and loop parameters in the published URL handle timing and looping.
+
+
Will the sign update when I edit the deck?
+
Yes, on a short delay. Google re-publishes edits to the published URL automatically, so the screen picks up changes without any change in ScreenTinker.
+
+
Is there a native Google Slides widget?
+
No - this uses the universal Webpage widget with the deck's published URL. That is the supported and reliable way to show Slides on ScreenTinker.
ScreenTinker connects to the tools you already use in two ways: purpose-built native widgets for common content types, and a universal Webpage widget that embeds any public web page on your screens. Between the two, most apps that can produce a public link can appear on a ScreenTinker display.
+
+
Native widgets
+
These are built directly into ScreenTinker. You configure them in the dashboard - no embed URL required - and they render natively on every player (Android TV, Fire TV, Tizen, webOS, Vega, Raspberry Pi, Windows, ChromeOS, and the browser player).
+
+
YouTube. Play a single video, a playlist, or a live stream, with autoplay and loop handled for you.
+
RSS. Pull headlines from any feed - news, blogs, internal announcements - and rotate them on screen.
+
Weather. Current conditions and forecast for any location.
+
Clock. Analog or digital time and date, with time-zone support for multi-site fleets.
+
Social. Surface social posts and feeds in a signage-friendly layout.
+
Text / HTML. Free-form rich text or hand-written HTML for banners, notices, and custom markup.
+
Directory board. A building or event directory board for lobbies and wayfinding.
+
+
+
Embed anything with the Webpage widget
+
The Webpage widget renders any framable public URL inside an iframe on your screen. If a service can publish a public link and does not block framing, you can put it on a display - no dedicated integration needed. This is how you connect apps that ScreenTinker does not have a native widget for.
+
Honest caveat: sites that send X-Frame-Options or a frame-ancestors Content-Security-Policy that denies embedding cannot be shown in the Webpage widget. You must use each service's official "publish to web" / "embed" URL - not the normal share, edit, or present URL - because the published URL is the one that permits framing.
+
+
Google Slides. Publish a deck to the web and auto-advance it as an announcement board.
+
Canva. Publish a design as a website and loop it as a slideshow.
+
Power BI. Use "Publish to web (public)" to put a live-refreshing dashboard on a wall.
+
Tableau. Embed a published Tableau Public view or a share URL that allows framing.
+
Grafana. Point the widget at a public or LAN-reachable Grafana dashboard URL.
+
Internal dashboards. Any in-house web app on a URL your player can reach that does not block framing.
+
+
+
Frequently asked questions
+
+
Can ScreenTinker integrate with a specific app?
+
If the app has a native widget above, use that. Otherwise: if the app can produce a public embed or "publish to web" URL that allows framing, then yes - add a Webpage widget and paste that URL. If the only URL the app offers denies framing, it cannot be embedded, and you would need a screenshot, export, or a native widget instead.
+
+
What is the difference between a native widget and the Webpage widget?
+
Native widgets are built into ScreenTinker and configured with a few fields in the dashboard; they render reliably on every player. The Webpage widget is a generic iframe - more flexible, since it can show almost any public page, but subject to the framing rules of the site you point it at.
+
+
Do I need a paid plan to use integrations?
+
No. Native widgets and the Webpage widget are available on the free plan and in self-hosted deployments. Plans differ by device count and storage, not by which widgets you can use.
How to put a Power BI dashboard on a digital signage screen
+
ScreenTinker has no dedicated "Power BI app," and it does not need one. Power BI can produce an embeddable public URL with "Publish to web," and ScreenTinker's universal Webpage widget can display that live, self-refreshing report on a wall - as long as you understand the security trade-off first.
+
+
The short version
+
In Power BI, use File → Embed report → Publish to web (public) to generate an embeddable URL, then add a Webpage widget in ScreenTinker, paste the URL, add it to a playlist, and assign it to a screen. Because "Publish to web" makes the report public, only do this for non-confidential data.
+
+
Step by step
+
+
Open the report in the Power BI service (app.powerbi.com).
+
Confirm the data is safe to make public. "Publish to web" exposes the report to anyone with the link - see the caveat below before continuing.
+
Choose File → Embed report → Publish to web (public). Create the embed code and copy the link (the standalone URL, not just the <iframe> snippet).
+
In ScreenTinker, add a Webpage widget. Create or edit a playlist item and select the Webpage widget type.
+
Paste the Publish-to-web URL into the widget's URL field and save.
+
Add the widget to a playlist and set a comfortable on-screen duration.
+
Assign the playlist to a screen. The player loads the report and it refreshes on its own schedule.
Power BI offers two very different "embed" paths, and only one works on an unattended screen:
+
+
Publish to web (public) produces a URL (app.powerbi.com/view?r=...) that anyone can open with no login and that is allowed to be framed. This is the one that works on signage.
+
Embed (for your organization) requires each viewer to sign in with a Microsoft Entra / Azure AD account. A signage player has no one to complete that login, so this path generally will not display on an unattended screen - it will show a sign-in wall instead.
+
+
The underlying reason is the same as every embed: pages that send X-Frame-Options / frame-ancestors to deny framing, or that demand authentication, cannot render in ScreenTinker's Webpage widget (it is an iframe). Publish-to-web is served specifically to be publicly embeddable; the org embed and the normal report URL are not.
+
+
Security caveat: Publish to web makes the report public
+
This matters, so it gets its own section. "Publish to web" exposes your report and its underlying data to anyone who has the link - no authentication, no row-level security, indexable by search engines in some cases. Do not use it for confidential, personal, financial, or otherwise sensitive data. Many organizations disable Publish to web in the Power BI admin portal for exactly this reason.
+
If the dashboard contains anything private, do not put it on a public URL. The safer pattern for confidential dashboards is to self-host ScreenTinker on a trusted LAN and point the Webpage widget at an internal, network-restricted dashboard URL that never leaves your network. Reserve Publish to web for genuinely public metrics - marketing stats, public KPIs, community dashboards, and the like.
+
+
Auto-refresh tips
+
+
Refresh is driven by Power BI, not ScreenTinker. A Publish-to-web report updates on Power BI's cached schedule (typically about hourly, and roughly every few minutes for visuals in an open view). Design expectations around that cadence rather than expecting real-time.
+
Match your dataset refresh schedule. The screen can only be as fresh as the dataset behind it, so set the dataset's scheduled refresh to the fastest cadence your source and license allow.
+
Reload periodically if needed. For long-running displays, rotating the report through a playlist (so the widget reloads on each cycle) helps ensure the latest cached view is fetched.
+
Design for the wall. Build a report page sized for your display and hide slicers/filters the audience cannot interact with, so the unattended view stays clean.
+
+
+
FAQ
+
+
Why won't my Power BI report show up on the screen?
+
You probably used the normal report URL or the "Embed for your organization" link, both of which require a Microsoft login. Use Publish to web (public) and paste that app.powerbi.com/view?r=... URL instead.
+
+
Is it safe to put a Power BI dashboard on signage?
+
Only if the data is non-confidential. "Publish to web" makes the report public to anyone with the link. For private data, self-host ScreenTinker on a trusted LAN and point the Webpage widget at an internal, network-restricted dashboard URL instead.
+
+
Can I use "Embed for your organization" on a screen?
+
Generally no. That path requires each viewer to sign in with an organizational account, and an unattended signage player cannot complete that login - it will show a sign-in wall.
+
+
How often does the dashboard refresh?
+
On Power BI's cached schedule for Publish-to-web (roughly hourly, with visuals updating every few minutes in an open view), and never fresher than the dataset's own scheduled refresh.
+
+
Is there a native Power BI widget?
+
No - this uses the universal Webpage widget with a Publish-to-web URL. That is the supported way to show Power BI on ScreenTinker.
RSS Feeds on Digital Signage: News Tickers & Headlines
+
ScreenTinker has a native RSS widget. Point it at a feed URL and it renders live headlines on screen - perfect for a news ticker, blog headlines, or an internal announcement board.
+
+
The short version
+
The RSS widget is built in - no plugins or embeds. You give it a feed URL like https://example.com/feed.xml and it pulls the latest items and renders the headlines on screen. Because it is a configurable widget, you can add it to playlists and layouts, and it can share a multi-zone layout with your main content so headlines run alongside images or video.
+
+
Step by step
+
+
Open the Content Library (or the layout editor) in your ScreenTinker dashboard.
+
Add the RSS widget.
+
Configure it with your feed URL, for example https://example.com/feed.xml. The widget fetches the feed and renders the current headlines.
+
Add the RSS widget to a Playlist, or place it in a zone of a multi-zone layout next to your other content.
+
Publish and schedule the playlist or layout, then assign it to one or more screens.
+
+
+
Tips & use cases
+
+
News ticker. The classic use - a strip of scrolling or rotating headlines along the bottom or side of the screen while the main zone shows video or promos.
+
Multi-zone layouts. Put the RSS widget in one zone and your primary content in another so headlines and the main message play at the same time instead of taking turns.
+
Internal announcements. If your intranet, wiki, or CMS can publish an RSS feed, point the widget at it to broadcast staff updates without emailing everyone.
+
Status pages. Many status and monitoring tools expose an RSS feed - surface incidents on an ops or NOC wall board.
+
Blog and content marketing. Show your own latest posts in a waiting area or office lobby to keep visitors engaged with fresh material.
+
Which feeds work. Any standard RSS or Atom feed URL that returns headline items. Feeds you control are the most reliable, since you know they will stay online and public.
+
+
+
FAQ
+
Is the RSS widget really built in?
+
Yes. RSS is a native ScreenTinker widget - you configure a feed URL and it renders headlines. There is no third-party plugin or embed code to manage.
+
+
What kind of feed URL do I use?
+
A standard RSS or Atom feed URL, such as https://example.com/feed.xml. Most blogs, news sites, CMSes, and status pages publish one.
+
+
Can the RSS ticker share the screen with other content?
+
Yes. Place the RSS widget in one zone of a multi-zone layout and your main content in another. Headlines and your primary message then display at the same time.
+
+
Can I use an internal or private feed?
+
The widget fetches a feed URL, so any feed the player can reach works - including an internal feed on your network for a self-hosted deployment. Publish your announcements as RSS and point the widget at that URL.
+
+
Does it work on all ScreenTinker players?
+
Yes. The RSS widget runs on Android TV, Fire TV, Tizen, webOS, Vega, Raspberry Pi, Windows, ChromeOS, and the browser player - all free.
ScreenTinker has a native weather widget. Set a location, optionally a timezone, and it shows current conditions on screen - a lobby-board staple next to a clock and your main content.
+
+
The short version
+
The weather widget is built in. You configure a location and, if you want, a timezone, and it renders current conditions on the display. It is most often placed in a multi-zone layout alongside a clock and a main content area to make a clean reception or lobby board.
+
+
Step by step
+
+
Open the Content Library (or the layout editor) in your ScreenTinker dashboard.
+
Add the Weather widget.
+
Configure it with your location, and optionally set a timezone. The widget renders current conditions for that location.
+
Add the widget to a Playlist, or place it in a zone of a multi-zone layout next to a clock and your main content.
+
Publish and schedule the playlist or layout, then assign it to one or more screens.
+
+
+
Tips & use cases
+
+
Pair it with a Clock. ScreenTinker's native Clock widget plus the weather widget is the classic lobby combo - people glance up for the time and today's conditions.
+
Reception and lobby boards. A multi-zone layout with weather in a corner, a clock, and a main zone for announcements or a welcome message makes a polished front-of-house display.
+
Set the location correctly. Configure the location for where the screen physically lives so staff and visitors see local conditions.
+
Set the timezone when it matters. If you run screens across regions, set the timezone so a paired clock and any time-based content line up with the local site.
+
Keep it as a supporting element. Weather works best as a small, always-there widget in a zone rather than a full-screen item - it complements your main message instead of competing with it.
+
Multi-site fleets. Give each location its own layout with the local weather so every site's board feels local, all managed from one dashboard.
+
+
+
FAQ
+
Is the weather widget built in?
+
Yes. Weather is a native ScreenTinker widget. You configure a location (and optionally a timezone) and it renders current conditions - no third-party embed required.
+
+
What do I configure?
+
A location, and optionally a timezone. That is enough for the widget to show current conditions on screen.
+
+
Can I show weather and a clock together?
+
Yes. The Clock is also a native widget. Put both into a multi-zone layout - weather in one zone, clock in another, main content in a third - for a lobby or reception board.
+
+
Can I show different weather on different screens?
+
Yes. Configure a layout per location with that site's location set, then assign each layout to the screens at that site.
+
+
Does it work on all ScreenTinker players?
+
Yes. The weather widget runs on Android TV, Fire TV, Tizen, webOS, Vega, Raspberry Pi, Windows, ChromeOS, and the browser player - all free.
YouTube is a built-in content type in ScreenTinker. Paste a video URL, give it a name, and it plays on your screens like any other media - no embed code, no browser hacks.
+
+
The short version
+
ScreenTinker has a native YouTube widget, so you do not need to download videos or wire up a browser workaround. In the Content Library you choose Add YouTube, paste the video URL, give it a name, and it becomes a library item you can drop into any playlist, schedule, and assign to screens. On the display it plays muted (browser autoplay policy) using YouTube's iframe player.
+
+
Step by step
+
+
Open the Content Library in your ScreenTinker dashboard.
+
Click Add YouTube and paste the YouTube video URL (for example https://www.youtube.com/watch?v=...).
+
Give the item a name so you can find it later - something like "Brand reel" or "Product loop."
+
Save it. The video now appears in your library alongside images and uploaded video. The dashboard preview plays it muted so autoplay works.
+
Add the YouTube item to a Playlist, set its duration or let it run to the end of the clip, and order it with your other content.
+
Publish the playlist, then schedule it or assign it directly to one or more screens.
+
+
+
Tips & use cases
+
+
It plays muted. Browsers only allow autoplay when audio is muted, so plan for silent playback. Pick videos that read well without sound, or add on-screen captions in the source video.
+
Great for brand reels and product loops. A single hero video on a lobby or retail screen is one of the easiest ways to fill a display with high-production content you already have.
+
Ambient and atmosphere. Aquarium scenes, fireplaces, and slow B-roll make good background content for waiting areas when you want motion without a hard message.
+
Mix it into a rotation. Because a YouTube item behaves like any other playlist entry, you can alternate a brand video with images, a menu, or an RSS ticker.
+
Schedule it. Run a promo video during business hours and swap to quieter content after close using the same scheduling tools as the rest of your content.
+
Pick stable URLs. Use videos on channels you control or trust, so the content does not disappear or get set to private mid-campaign.
+
+
+
FAQ
+
Do I need to download the YouTube video first?
+
No. The YouTube widget is native - you paste the video URL and ScreenTinker's player streams it through YouTube's iframe player. There is nothing to download or re-upload.
+
+
Why does the video play without sound?
+
Browsers require muted playback for autoplay to work reliably, so YouTube content plays muted on the display and in the dashboard preview. Choose videos that work as silent visuals or that have burned-in captions.
+
+
Can I loop a single YouTube video all day?
+
Yes. Put the YouTube item in a playlist on its own (or with a short rotation) and assign that playlist to the screen. The playlist repeats, so the video loops.
+
+
Can I schedule YouTube content to specific times?
+
Yes. YouTube items schedule exactly like images and uploaded video - assign the playlist to a daypart or specific screens using ScreenTinker's scheduling.
+
+
Does this work on every player?
+
The YouTube widget works on ScreenTinker's players - Android TV, Fire TV, Tizen, webOS, Vega, Raspberry Pi, Windows, ChromeOS, and the browser player - all free.