screentinker/frontend/integrations/index.html
screentinker 2dc1d1279a
feat(seo): IndexNow + landing-page optimization (schema, FAQ, CWV, content) (#177)
* feat(seo): enable IndexNow (key file + submission script)

Instant re-crawl pings to Bing/Yandex/Seznam/Naver on content changes (Google ignores IndexNow
but uses the same sitemap). Hosts the ownership key at frontend/<key>.txt (served at
https://screentinker.com/<key>.txt) and adds scripts/indexnow-submit.sh which POSTs the sitemap
URLs to api.indexnow.org (DRY_RUN=1 to preview). Run after a content deploy / from CI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(seo): landing-page optimization pass (schema fixes, FAQ, content depth, CWV)

From a 3-way SEO audit (technical / structured-data / content). Highest-value fixes:

Structured data (penalty risk + rich results):
- REMOVE the fabricated aggregateRating (4.8/50) from SoftwareApplication — no visible reviews
  on the page = a "spammy structured markup" risk. Replace loose Offers with a proper AggregateOffer
  + publisher + image/screenshot.
- Add a VISIBLE FAQ section (10 Q&As) so the FAQPage schema finally has on-page content (it shipped
  4 Q&As with no visible counterpart — a mismatch); expand the FAQPage JSON-LD to mirror all 10.
- Add a WebSite entity block; add YouTube to Organization sameAs + a description.
- Fix the guides/compare BreadcrumbList position-2 target (dead /#features -> /).

Content / keywords / IA:
- Hero + Features subtitle rewritten to surface "digital signage software" / "digital signage CMS"
  / "self-host" / "free" above the fold.
- New "How It Works" (3-step) and "Use Cases / Industries" (8 verticals) sections for snippet +
  long-tail intent. Platform tiles (Android TV / Fire TV / Raspberry Pi) now link to their guides.
- FAQ answers add keyword-rich internal links to the guides + compare pages.

Technical / Core Web Vitals:
- Lazy-load the YouTube iframe (loading=lazy + youtube-nocookie + explicit width/height) — the top
  LCP/TBT win on mobile.
- Title 84->~60 chars (keyword-front), meta description ~178->~156 + CTA.
- <div> footer -> <footer> landmark; favicon sizes (192+512).
- sitemap.xml: add <lastmod> to all 10 URLs.

All JSON-LD validated (4 blocks parse; single H1; no fabricated data).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

* feat(seo): open-source/what-is pillars, Xibo+Anthias compares, integrations hub [#177]

Competitor-SEO gap-fill from the Yodeck/ScreenCloud/OptiSigns/Xibo teardowns.
11 new static pages + sitemap/landing/README wiring. All match the existing
seo-page.css template; BreadcrumbList on every page, FAQPage (visible-backed)
on guides + integration spokes. No fabricated ratings.

Pillar guides:
- guides/open-source-digital-signage.html  (head term "open source digital signage")
- guides/what-is-digital-signage.html       (TOFU definitional pillar + FAQ)

Comparisons (the open-source SERP Xibo/Anthias own):
- compare/xibo-alternative.html    (wedge: every ScreenTinker player free vs Xibo's paid Android/Tizen/webOS licences; no free plan)
- compare/anthias-alternative.html (wedge: fleet + video walls + multi-platform vs one-Pi-one-screen)

Integrations (OptiSigns' top tactic — one page per app):
- integrations/index.html hub
- google-slides / canva / power-bi  (honestly framed as the universal Webpage widget, with the X-Frame-Options / publish-vs-edit-URL caveat + Power BI public-data warning)
- youtube / rss / weather           (native widgets)

Wiring:
- sitemap.xml +11 URLs (lastmod 2026-07-13)
- landing.html Resources grid: 6 new cards (open-source, what-is, vs Xibo, vs Anthias, integrations hub)
- README.md: keyword-rich open-source/self-hosted intro + platform list + guide links (GitHub-SERP asset)
- docs/seo-directory-listings.md: off-repo G2/Capterra/AlternativeTo/awesome-selfhosted/fingoweb submission checklist + reusable kit

Validated: all JSON-LD parses, canonicals match paths, 0 broken internal links, sitemap well-formed (21 URLs).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 11:22:37 -05:00

136 lines
9.2 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Digital Signage Integrations - Connect Any App | ScreenTinker</title>
<meta name="description" content="Connect ScreenTinker to the apps you already use. Native widgets for YouTube, RSS, weather, and clocks, plus a universal Webpage widget that embeds any public URL - Google Slides, Canva, Power BI, and more.">
<meta name="keywords" content="digital signage integrations, digital signage widgets, embed webpage digital signage, google slides signage, canva signage, power bi signage, screentinker integrations">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://screentinker.com/integrations/index.html">
<meta property="og:type" content="website">
<meta property="og:url" content="https://screentinker.com/integrations/index.html">
<meta property="og:title" content="Digital Signage Integrations - Connect Any App | ScreenTinker">
<meta property="og:description" content="Native widgets plus a universal Webpage widget that embeds any public URL - Google Slides, Canva, Power BI, and more.">
<meta property="og:image" content="https://screentinker.com/assets/dashboard-preview.png">
<meta property="og:site_name" content="ScreenTinker">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Digital Signage Integrations - Connect Any App">
<meta name="twitter:description" content="Native widgets plus a universal Webpage widget that embeds any public URL - Google Slides, Canva, Power BI, and more.">
<meta name="twitter:image" content="https://screentinker.com/assets/dashboard-preview.png">
<meta name="theme-color" content="#111827">
<link rel="icon" href="/assets/icon-192.png">
<link rel="apple-touch-icon" href="/assets/icon-192.png">
<link rel="stylesheet" href="/css/seo-page.css">
</head>
<body>
<nav>
<div class="nav-inner">
<div class="nav-logo">
<a href="/" style="display:flex;align-items:center;gap:10px">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
<span class="nav-logo-text">ScreenTinker</span>
</a>
</div>
<div class="nav-links">
<a href="/#features">Features</a>
<a href="/#pricing">Pricing</a>
<a href="/#compare">Compare</a>
<a href="/app#/login" class="btn btn-outline" style="margin-left:16px">Sign In</a>
<a href="/app#/login" class="btn btn-primary" style="margin-left:8px">Try Free</a>
</div>
</div>
</nav>
<main class="article">
<nav class="breadcrumb" aria-label="Breadcrumb">
<a href="/">Home</a>
<span>/</span>
<span>Integrations</span>
</nav>
<h1>Digital Signage Integrations</h1>
<p class="lead">ScreenTinker connects to the tools you already use in two ways: purpose-built <strong>native widgets</strong> for common content types, and a universal <strong>Webpage widget</strong> 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.</p>
<h2>Native widgets</h2>
<p>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).</p>
<ul>
<li><strong><a href="/integrations/youtube-digital-signage.html">YouTube</a>.</strong> Play a single video, a playlist, or a live stream, with autoplay and loop handled for you.</li>
<li><strong><a href="/integrations/rss-digital-signage.html">RSS</a>.</strong> Pull headlines from any feed - news, blogs, internal announcements - and rotate them on screen.</li>
<li><strong><a href="/integrations/weather-digital-signage.html">Weather</a>.</strong> Current conditions and forecast for any location.</li>
<li><strong>Clock.</strong> Analog or digital time and date, with time-zone support for multi-site fleets.</li>
<li><strong>Social.</strong> Surface social posts and feeds in a signage-friendly layout.</li>
<li><strong>Text / HTML.</strong> Free-form rich text or hand-written HTML for banners, notices, and custom markup.</li>
<li><strong>Directory board.</strong> A building or event directory board for lobbies and wayfinding.</li>
</ul>
<h2>Embed anything with the Webpage widget</h2>
<p>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.</p>
<p><strong>Honest caveat:</strong> sites that send <code>X-Frame-Options</code> or a <code>frame-ancestors</code> Content-Security-Policy that denies embedding <em>cannot</em> 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.</p>
<ul>
<li><strong><a href="/integrations/google-slides-digital-signage.html">Google Slides</a>.</strong> Publish a deck to the web and auto-advance it as an announcement board.</li>
<li><strong><a href="/integrations/canva-digital-signage.html">Canva</a>.</strong> Publish a design as a website and loop it as a slideshow.</li>
<li><strong><a href="/integrations/power-bi-digital-signage.html">Power BI</a>.</strong> Use "Publish to web (public)" to put a live-refreshing dashboard on a wall.</li>
<li><strong>Tableau.</strong> Embed a published Tableau Public view or a share URL that allows framing.</li>
<li><strong>Grafana.</strong> Point the widget at a public or LAN-reachable Grafana dashboard URL.</li>
<li><strong>Internal dashboards.</strong> Any in-house web app on a URL your player can reach that does not block framing.</li>
</ul>
<h2>Frequently asked questions</h2>
<h3>Can ScreenTinker integrate with a specific app?</h3>
<p>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.</p>
<h3>What is the difference between a native widget and the Webpage widget?</h3>
<p>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.</p>
<h3>Do I need a paid plan to use integrations?</h3>
<p>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.</p>
<div class="related">
<h2>Related guides</h2>
<ul>
<li><a href="/integrations/google-slides-digital-signage.html">Put Google Slides on digital signage</a></li>
<li><a href="/integrations/canva-digital-signage.html">Display Canva designs on digital signage</a></li>
<li><a href="/integrations/power-bi-digital-signage.html">Power BI dashboards on digital signage</a></li>
<li><a href="/guides/what-is-digital-signage.html">What is digital signage?</a></li>
<li><a href="/guides/self-hosted-digital-signage.html">Self-hosted digital signage: complete guide</a></li>
</ul>
</div>
<div class="cta">
<h2>Try ScreenTinker free</h2>
<p>Add a widget, drop in a URL, and see it on a screen in minutes. Free plan, no credit card required.</p>
<a href="/app#/login" class="btn btn-primary" style="padding:14px 28px;font-size:16px">Start Free</a>
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener" class="btn btn-outline" style="padding:14px 28px;font-size:16px;margin-left:12px">View on GitHub</a>
</div>
</main>
<footer>
<div style="color:var(--dim);font-size:13px">&copy; 2026 ScreenTinker. All rights reserved.</div>
<div class="links">
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener">GitHub</a>
<a href="https://discord.gg/utTdsrqq4Z" target="_blank" rel="noopener">Discord</a>
<a href="/legal/terms.html">Terms</a>
<a href="/legal/privacy.html">Privacy</a>
<a href="/legal/third-party.html">Licenses</a>
<a href="/app#/login">Sign In</a>
</div>
</footer>
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BreadcrumbList",
"itemListElement": [
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "https://screentinker.com/" },
{ "@type": "ListItem", "position": 2, "name": "Integrations", "item": "https://screentinker.com/integrations/" }
]
}
</script>
</body>
</html>