Merge branch 'swiftdisplay1' of https://github.com/xadyz1/screentinker into swiftdisplay1

This commit is contained in:
xadyz1 2026-07-26 20:11:01 +01:00
commit c3bebc06b7
2 changed files with 1740 additions and 125 deletions

View file

@ -6,36 +6,36 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Primary SEO -->
<title>Open-Source Digital Signage CMS — Self-Hosted &amp; Free | ScreenTinker</title>
<title>Open-Source Digital Signage CMS — Self-Hosted &amp; Free | SwiftDisplay</title>
<meta name="description"
content="Open-source, self-hostable digital signage CMS. Manage TVs, video walls, kiosks &amp; schedules on Android, Raspberry Pi, Windows &amp; any browser. Free plan — start today.">
<meta name="keywords"
content="digital signage, open source digital signage, self hosted signage, digital signage cms, free digital signage software, digital signage raspberry pi, digital signage android tv, video wall software, kiosk software, screen management">
<meta name="author" content="ScreenTinker">
<meta name="author" content="SwiftDisplay">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://screentinker.com/">
<link rel="canonical" href="https://swiftdisplay.com/">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://screentinker.com/">
<meta property="og:title" content="ScreenTinker - Open-Source Digital Signage CMS">
<meta property="og:url" content="https://swiftdisplay.com/">
<meta property="og:title" content="SwiftDisplay - Open-Source Digital Signage CMS">
<meta property="og:description"
content="Open-source digital signage CMS. Free plan, self-host or cloud. Manage TVs, video walls, kiosks, and schedules across 9 platforms.">
<meta property="og:image" content="https://screentinker.com/assets/dashboard-preview.png">
<meta property="og:image" content="https://swiftdisplay.com/assets/dashboard-preview.png">
<meta property="og:image:width" content="2500">
<meta property="og:image:height" content="1314">
<meta property="og:image:alt"
content="ScreenTinker open-source digital signage dashboard showing four online displays with playlist assignments">
<meta property="og:site_name" content="ScreenTinker">
content="SwiftDisplay open-source digital signage dashboard showing four online displays with playlist assignments">
<meta property="og:site_name" content="SwiftDisplay">
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="ScreenTinker - Open-Source Digital Signage CMS">
<meta name="twitter:title" content="SwiftDisplay - Open-Source Digital Signage CMS">
<meta name="twitter:description"
content="Open-source digital signage CMS. Free plan, self-host or cloud. Video walls, kiosks, scheduling, and live remote control across 9 platforms.">
<meta name="twitter:image" content="https://screentinker.com/assets/dashboard-preview.png">
<meta name="twitter:image" content="https://swiftdisplay.com/assets/dashboard-preview.png">
<meta name="twitter:image:alt"
content="ScreenTinker open-source digital signage dashboard showing four online displays with playlist assignments">
content="SwiftDisplay open-source digital signage dashboard showing four online displays with playlist assignments">
<!-- Theme -->
<meta name="theme-color" content="#111827">
@ -527,7 +527,7 @@
}
.price-card li::before {
content: ' ';
content: ' ';
color: var(--accent);
}
@ -768,78 +768,21 @@
<a href="#pricing">Pricing</a>
<a href="#compare">Compare</a>
<a href="/integrations/">Integrations</a>
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener"
aria-label="ScreenTinker on GitHub" class="nav-github"
style="margin-left:16px;display:inline-flex;align-items:center;color:var(--muted)">
<svg width="20" height="20" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path
d="M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1.1-.7.1-.7.1-.7 1.2.1 1.9 1.3 1.9 1.3 1.1 1.9 2.9 1.4 3.6 1 .1-.8.4-1.4.8-1.7-2.7-.3-5.5-1.3-5.5-6 0-1.3.5-2.4 1.2-3.2-.1-.3-.5-1.5.1-3.2 0 0 1-.3 3.3 1.2a11 11 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.7 1.7.3 2.9.1 3.2.8.8 1.2 1.9 1.2 3.2 0 4.6-2.8 5.6-5.5 5.9.4.4.8 1.1.8 2.2v3.3c0 .3.2.7.8.6A12 12 0 0 0 12 .3" />
</svg>
</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"><span class="btn-full">Start Free
Trial</span><span class="btn-short">Try Free</span></a>
</div>
</div>
</nav>
<main>
<!-- Hero -->
<section class="hero">
<div class="hero-badge">&#9889; Open source &middot; Free plan &middot; 14-day Pro trial, no credit card</div>
<h1>Open-Source Digital Signage<br>for <span>Any Screen</span></h1>
<p>Free, open-source <strong>digital signage software</strong> to manage TVs, video walls, and kiosks from
anywhere. A complete <strong>digital signage CMS</strong> with remote control, scheduling, playlists, and
analytics — <strong>self-host it</strong> on your own server or use our managed cloud.</p>
<div class="hero-btns">
<a href="/app#/login" class="btn btn-primary" style="padding:14px 28px;font-size:16px">Start Free Trial</a>
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener" class="btn btn-outline"
style="padding:14px 28px;font-size:16px">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true"
style="margin-right:2px">
<path
d="M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1.1-.7.1-.7.1-.7 1.2.1 1.9 1.3 1.9 1.3 1.1 1.9 2.9 1.4 3.6 1 .1-.8.4-1.4.8-1.7-2.7-.3-5.5-1.3-5.5-6 0-1.3.5-2.4 1.2-3.2-.1-.3-.5-1.5.1-3.2 0 0 1-.3 3.3 1.2a11 11 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.7 1.7.3 2.9.1 3.2.8.8 1.2 1.9 1.2 3.2 0 4.6-2.8 5.6-5.5 5.9.4.4.8 1.1.8 2.2v3.3c0 .3.2.7.8.6A12 12 0 0 0 12 .3" />
</svg>
View on GitHub
</a>
<a href="#compare" class="btn btn-outline" style="padding:14px 28px;font-size:16px">See How We Compare</a>
</div>
</section>
<!-- Intro video -->
<div style="max-width:800px;margin:32px auto;border-radius:12px;overflow:hidden;border:1px solid var(--border)">
<div style="position:relative;padding-bottom:56.25%;height:0">
<iframe src="https://www.youtube-nocookie.com/embed/Sq3RbnuDgKw?rel=0"
title="ScreenTinker - Open Source Digital Signage for Any Screen" loading="lazy" width="800" height="450"
frameborder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
referrerpolicy="strict-origin-when-cross-origin" allowfullscreen
style="position:absolute;top:0;left:0;width:100%;height:100%"></iframe>
</div>
</div>
<!-- Dashboard preview -->
<div class="screenshot">
<img src="/assets/dashboard-preview.png"
alt="ScreenTinker open-source digital signage dashboard showing 4 online displays with playlist assignments"
alt="SwiftDisplay open-source digital signage dashboard showing 4 online displays with playlist assignments"
loading="lazy" width="2500" height="1314">
</div>
<!-- Open Source callout -->
<section class="opensource" id="opensource"
style="max-width:900px;margin:0 auto;padding:40px 24px;text-align:center">
<h2 style="font-size:28px;margin-bottom:12px">Fully Open Source</h2>
<p style="color:var(--muted);font-size:16px;margin-bottom:20px">MIT licensed. Self-host on your own infrastructure
or use our managed cloud. Your data, your rules.</p>
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener" class="btn btn-outline"
style="display:inline-flex;align-items:center;gap:8px">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor" aria-hidden="true">
<path
d="M12 .3a12 12 0 0 0-3.8 23.4c.6.1.8-.3.8-.6v-2c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1.1-.7.1-.7.1-.7 1.2.1 1.9 1.3 1.9 1.3 1.1 1.9 2.9 1.4 3.6 1 .1-.8.4-1.4.8-1.7-2.7-.3-5.5-1.3-5.5-6 0-1.3.5-2.4 1.2-3.2-.1-.3-.5-1.5.1-3.2 0 0 1-.3 3.3 1.2a11 11 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.7 1.7.3 2.9.1 3.2.8.8 1.2 1.9 1.2 3.2 0 4.6-2.8 5.6-5.5 5.9.4.4.8 1.1.8 2.2v3.3c0 .3.2.7.8.6A12 12 0 0 0 12 .3" />
</svg>
github.com/screentinker/screentinker
</a>
</section>
<!-- How it works -->
<section class="features" id="how-it-works">
@ -847,19 +790,19 @@
<p class="subtitle">No proprietary hardware, no complicated setup.</p>
<div class="feature-grid" style="grid-template-columns:repeat(auto-fill,minmax(280px,1fr))">
<div class="feature-card">
<div class="feature-icon">1&#65039;&#8419;</div>
<div class="feature-icon">1.</div>
<h3>Connect a screen</h3>
<p>Install the free player on an Android TV, Fire TV, Raspberry Pi, Windows PC, or open a browser tab — then
pair it with a code.</p>
</div>
<div class="feature-card">
<div class="feature-icon">2&#65039;&#8419;</div>
<div class="feature-icon">2.</div>
<h3>Add your content</h3>
<p>Upload images and video, build playlists and multi-zone layouts, or design screens with built-in widgets.
</p>
</div>
<div class="feature-card">
<div class="feature-icon">3&#65039;&#8419;</div>
<div class="feature-icon">3.</div>
<h3>Schedule and publish</h3>
<p>Assign content to displays or groups, set day/time schedules, and push live. Change it any time from your
phone.</p>
@ -1066,7 +1009,7 @@
<thead>
<tr>
<th></th>
<th style="color:var(--accent);font-weight:700">ScreenTinker</th>
<th style="color:var(--accent);font-weight:700">SwiftDisplay</th>
<th>Yodeck</th>
<th>ScreenCloud</th>
<th>OptiSigns</th>
@ -1144,7 +1087,7 @@
* Live screen view + remote key presses is Android only and requires granting the on-device accessibility
permission.<br>
Comparison as of June 2026, based on each vendor's publicly listed pricing and documentation. Spot an error? <a
href="https://github.com/screentinker/screentinker/issues" target="_blank" rel="noopener"
href="https://github.com/swiftdisplay/swiftdisplay/issues" target="_blank" rel="noopener"
style="color:var(--accent)">Open an issue on GitHub</a> and we'll fix it.
</p>
</section>
@ -1183,7 +1126,7 @@
<div
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Compare</div>
<div style="font-weight:600;margin-bottom:4px">ScreenTinker vs Yodeck</div>
<div style="font-weight:600;margin-bottom:4px">SwiftDisplay vs Yodeck</div>
<div style="font-size:13px;color:var(--muted)">Features, pricing, platform support.</div>
</a>
<a href="/compare/screencloud-alternative.html"
@ -1191,7 +1134,7 @@
<div
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Compare</div>
<div style="font-weight:600;margin-bottom:4px">ScreenTinker vs ScreenCloud</div>
<div style="font-weight:600;margin-bottom:4px">SwiftDisplay vs ScreenCloud</div>
<div style="font-size:13px;color:var(--muted)">Pricing breakdown at scale.</div>
</a>
<a href="/compare/optisigns-alternative.html"
@ -1199,7 +1142,7 @@
<div
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Compare</div>
<div style="font-weight:600;margin-bottom:4px">ScreenTinker vs OptiSigns</div>
<div style="font-weight:600;margin-bottom:4px">SwiftDisplay vs OptiSigns</div>
<div style="font-size:13px;color:var(--muted)">Side by side feature and price comparison.</div>
</a>
<a href="/guides/open-source-digital-signage.html"
@ -1208,7 +1151,7 @@
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Guide</div>
<div style="font-weight:600;margin-bottom:4px">Open-source digital signage explained</div>
<div style="font-size:13px;color:var(--muted)">Why open source, and how ScreenTinker fits.</div>
<div style="font-size:13px;color:var(--muted)">Why open source, and how SwiftDisplay fits.</div>
</a>
<a href="/guides/what-is-digital-signage.html"
style="display:block;background:var(--card);border:1px solid var(--border);border-radius:10px;padding:20px;color:var(--text);transition:border-color 0.2s">
@ -1223,7 +1166,7 @@
<div
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Compare</div>
<div style="font-weight:600;margin-bottom:4px">ScreenTinker vs Xibo</div>
<div style="font-weight:600;margin-bottom:4px">SwiftDisplay vs Xibo</div>
<div style="font-size:13px;color:var(--muted)">Open source vs open source — and the paid players.</div>
</a>
<a href="/compare/anthias-alternative.html"
@ -1231,7 +1174,7 @@
<div
style="font-size:12px;color:var(--accent);text-transform:uppercase;letter-spacing:0.5px;margin-bottom:6px">
Compare</div>
<div style="font-weight:600;margin-bottom:4px">ScreenTinker vs Anthias</div>
<div style="font-weight:600;margin-bottom:4px">SwiftDisplay vs Anthias</div>
<div style="font-size:13px;color:var(--muted)">Beyond one Pi, one screen.</div>
</a>
<a href="/integrations/"
@ -1252,7 +1195,7 @@
<div style="display:flex;flex-direction:column;gap:20px">
<div>
<h3 style="font-size:18px;margin-bottom:6px">Is there free digital signage software?</h3>
<p style="color:var(--muted);font-size:15px">Yes. ScreenTinker is free and open source (MIT licensed). The
<p style="color:var(--muted);font-size:15px">Yes. SwiftDisplay is free and open source (MIT licensed). The
free cloud plan runs 1 display with 500 MB of storage, and if you self-host there's no per-screen fee at all
— run as many displays as your own server can handle. New accounts also get a 14-day Pro trial (15 displays)
with no credit card required.</p>
@ -1265,26 +1208,26 @@
guide</a>.</p>
</div>
<div>
<h3 style="font-size:18px;margin-bottom:6px">Does ScreenTinker work on Android TV and Fire TV?</h3>
<h3 style="font-size:18px;margin-bottom:6px">Does SwiftDisplay work on Android TV and Fire TV?</h3>
<p style="color:var(--muted);font-size:15px">Yes. Install the free APK on any Android TV box or Amazon Fire TV
Stick to turn it into a managed signage display, complete with kiosk mode and live remote control.
Step-by-step instructions are in our <a href="/guides/digital-signage-android-tv.html">Android TV &amp; Fire
TV guide</a>. ScreenTinker also runs on Windows, ChromeOS, LG webOS, Samsung Tizen, and any web browser.
TV guide</a>. SwiftDisplay also runs on Windows, ChromeOS, LG webOS, Samsung Tizen, and any web browser.
</p>
</div>
<div>
<h3 style="font-size:18px;margin-bottom:6px">What's the difference between self-hosted and cloud digital
signage?</h3>
<p style="color:var(--muted);font-size:15px">With cloud, we host everything and you just sign in — the fastest
way to start. With self-hosting, you deploy ScreenTinker on your own server or VPS so your content and
way to start. With self-hosting, you deploy SwiftDisplay on your own server or VPS so your content and
device data never leave your network, with no recurring SaaS fees. You can switch later. Our <a
href="/guides/self-hosted-digital-signage.html">self-hosted digital signage guide</a> covers sizing,
deployment, TLS, and backups.</p>
</div>
<div>
<h3 style="font-size:18px;margin-bottom:6px">Is ScreenTinker really open source?</h3>
<h3 style="font-size:18px;margin-bottom:6px">Is SwiftDisplay really open source?</h3>
<p style="color:var(--muted);font-size:15px">Yes. The full platform is released under the permissive MIT
license on <a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener">GitHub</a>.
license on <a href="https://github.com/swiftdisplay/swiftdisplay" target="_blank" rel="noopener">GitHub</a>.
You can read the code, self-host it, modify it, and even white-label it — no vendor lock-in and no
proprietary black box.</p>
</div>
@ -1296,7 +1239,7 @@
</div>
<div>
<h3 style="font-size:18px;margin-bottom:6px">Do my displays keep playing if the internet goes down?</h3>
<p style="color:var(--muted);font-size:15px">Yes. ScreenTinker players cache their content locally and keep
<p style="color:var(--muted);font-size:15px">Yes. SwiftDisplay players cache their content locally and keep
playing during an internet or server outage, then sync automatically once the connection returns. No blank
screens.</p>
</div>
@ -1313,9 +1256,9 @@
only by your own hardware.</p>
</div>
<div>
<h3 style="font-size:18px;margin-bottom:6px">How does ScreenTinker compare to Yodeck, ScreenCloud, and
<h3 style="font-size:18px;margin-bottom:6px">How does SwiftDisplay compare to Yodeck, ScreenCloud, and
OptiSigns?</h3>
<p style="color:var(--muted);font-size:15px">ScreenTinker is typically a fraction of the price at scale and is
<p style="color:var(--muted);font-size:15px">SwiftDisplay is typically a fraction of the price at scale and is
the only one of the four you can self-host. See the detailed breakdowns: <a
href="/compare/yodeck-alternative.html">vs Yodeck</a>, <a href="/compare/screencloud-alternative.html">vs
ScreenCloud</a>, and <a href="/compare/optisigns-alternative.html">vs OptiSigns</a>.</p>
@ -1336,7 +1279,7 @@
<div
style="max-width:1200px;margin:0 auto;padding:48px 24px 24px;display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:32px">
<div>
<div style="font-weight:700;color:var(--accent);margin-bottom:12px">ScreenTinker</div>
<img src="/assets/logowhiteswift.png" alt="SwiftDisplay" style="width:160px;margin-bottom:16px">
<div style="font-size:13px;color:var(--muted);line-height:1.6">Open-source digital signage. Free plan, self-host
or cloud. MIT licensed.</div>
</div>
@ -1365,10 +1308,10 @@
style="font-size:13px;font-weight:600;color:var(--text);margin-bottom:10px;text-transform:uppercase;letter-spacing:0.5px">
Project</div>
<div style="display:flex;flex-direction:column;gap:6px;font-size:13px">
<a href="https://github.com/screentinker/screentinker" target="_blank" rel="noopener"
<a href="https://github.com/swiftdisplay/swiftdisplay" target="_blank" rel="noopener"
style="color:var(--muted)">GitHub</a>
<a href="https://discord.gg/utTdsrqq4Z" target="_blank" rel="noopener" style="color:var(--muted)">Discord</a>
<a href="https://www.youtube.com/@ScreenTinker" target="_blank" rel="noopener"
<a href="https://www.youtube.com/@SwiftDisplay" target="_blank" rel="noopener"
style="color:var(--muted)">YouTube</a>
<a href="/app#/login" style="color:var(--muted)">Sign in</a>
</div>
@ -1386,7 +1329,7 @@
</div>
<div
style="max-width:1200px;margin:0 auto;padding:16px 24px 32px;border-top:1px solid var(--border);color:var(--dim);font-size:13px;text-align:center">
&copy; 2026 ScreenTinker. All rights reserved.
&copy; 2026 A project by goldencreative.pt. All rights reserved.
</div>
</footer>
@ -1447,33 +1390,32 @@
{
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "ScreenTinker",
"name": "SwiftDisplay",
"applicationCategory": "BusinessApplication",
"applicationSubCategory": "Digital Signage",
"operatingSystem": "Android, Web browser, Windows, Linux, ChromeOS, LG webOS, Samsung Tizen, Fire TV",
"description": "Self-hosted, open-source digital signage CMS. MIT licensed. Manage TVs, video walls, kiosks, and content schedules across Android, Raspberry Pi, Windows, ChromeOS, and any browser.",
"url": "https://screentinker.com/",
"image": "https://screentinker.com/assets/dashboard-preview.png",
"screenshot": "https://screentinker.com/assets/dashboard-preview.png",
"url": "https://swiftdisplay.com/",
"image": "https://swiftdisplay.com/assets/dashboard-preview.png",
"screenshot": "https://swiftdisplay.com/assets/dashboard-preview.png",
"license": "https://opensource.org/license/mit",
"isAccessibleForFree": true,
"softwareHelp": "https://screentinker.com/guides/self-hosted-digital-signage.html",
"softwareHelp": "https://swiftdisplay.com/guides/self-hosted-digital-signage.html",
"publisher": {
"@type": "Organization",
"name": "ScreenTinker",
"url": "https://screentinker.com/",
"logo": "https://screentinker.com/assets/icon-512.png"
"name": "SwiftDisplay",
"url": "https://swiftdisplay.com/",
"logo": "https://swiftdisplay.com/assets/icon-512.png"
},
"offers": {
"@type": "AggregateOffer",
"priceCurrency": "USD",
"priceCurrency": "EUR",
"lowPrice": "0",
"highPrice": "99",
"offerCount": "3",
"offers": [
{ "@type": "Offer", "name": "Free", "price": "0", "priceCurrency": "USD", "description": "1 device, 500MB storage", "url": "https://screentinker.com/#pricing" },
{ "@type": "Offer", "name": "Starter", "price": "39", "priceCurrency": "USD", "priceValidUntil": "2027-12-31", "description": "5 devices, 5GB storage, remote URL streaming", "url": "https://screentinker.com/#pricing" },
{ "@type": "Offer", "name": "Pro", "price": "99", "priceCurrency": "USD", "priceValidUntil": "2027-12-31", "description": "15 devices, 20GB storage, all features", "url": "https://screentinker.com/#pricing" }
{ "@type": "Offer", "name": "Starter", "price": "39", "priceCurrency": "EUR", "priceValidUntil": "2027-12-31", "description": "5 devices, 5GB storage, remote URL streaming", "url": "https://swiftdisplay.com/#pricing" },
{ "@type": "Offer", "name": "Pro", "price": "99", "priceCurrency": "EUR", "priceValidUntil": "2027-12-31", "description": "15 devices, 20GB storage, all features", "url": "https://swiftdisplay.com/#pricing" }
]
},
"featureList": [
@ -1500,14 +1442,14 @@
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "ScreenTinker",
"url": "https://screentinker.com/",
"logo": "https://screentinker.com/assets/icon-512.png",
"name": "SwiftDisplay",
"url": "https://swiftdisplay.com/",
"logo": "https://swiftdisplay.com/assets/icon-512.png",
"description": "Open-source, self-hostable digital signage CMS. Free plan, self-host or managed cloud. MIT licensed.",
"sameAs": [
"https://github.com/screentinker/screentinker",
"https://github.com/swiftdisplay/swiftdisplay",
"https://discord.gg/utTdsrqq4Z",
"https://www.youtube.com/@ScreenTinker"
"https://www.youtube.com/@SwiftDisplay"
]
}
</script>
@ -1516,12 +1458,12 @@
{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "ScreenTinker",
"url": "https://screentinker.com/",
"name": "SwiftDisplay",
"url": "https://swiftdisplay.com/",
"publisher": {
"@type": "Organization",
"name": "ScreenTinker",
"url": "https://screentinker.com/"
"name": "SwiftDisplay",
"url": "https://swiftdisplay.com/"
}
}
</script>
@ -1531,16 +1473,16 @@
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{ "@type": "Question", "name": "Is there free digital signage software?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. ScreenTinker is free and open source (MIT licensed). The free cloud plan runs 1 display with 500 MB of storage, and if you self-host there's no per-screen fee at all — run as many displays as your own server can handle. New accounts also get a 14-day Pro trial (15 displays) with no credit card required." } },
{ "@type": "Question", "name": "Is there free digital signage software?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. SwiftDisplay is free and open source (MIT licensed). The free cloud plan runs 1 display with 500 MB of storage, and if you self-host there's no per-screen fee at all — run as many displays as your own server can handle. New accounts also get a 14-day Pro trial (15 displays) with no credit card required." } },
{ "@type": "Question", "name": "Can I run digital signage on a Raspberry Pi?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. A Raspberry Pi 4 or newer makes an excellent low-cost signage player. Our one-line installer sets up kiosk mode, auto-start, and pairing for you." } },
{ "@type": "Question", "name": "Does ScreenTinker work on Android TV and Fire TV?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Install the free APK on any Android TV box or Amazon Fire TV Stick to turn it into a managed signage display, complete with kiosk mode and live remote control. ScreenTinker also runs on Windows, ChromeOS, LG webOS, Samsung Tizen, and any web browser." } },
{ "@type": "Question", "name": "What's the difference between self-hosted and cloud digital signage?", "acceptedAnswer": { "@type": "Answer", "text": "With cloud, we host everything and you just sign in — the fastest way to start. With self-hosting, you deploy ScreenTinker on your own server or VPS so your content and device data never leave your network, with no recurring SaaS fees. You can switch later." } },
{ "@type": "Question", "name": "Is ScreenTinker really open source?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. The full platform is released under the permissive MIT license on GitHub. You can read the code, self-host it, modify it, and even white-label it — no vendor lock-in and no proprietary black box." } },
{ "@type": "Question", "name": "Does SwiftDisplay work on Android TV and Fire TV?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. Install the free APK on any Android TV box or Amazon Fire TV Stick to turn it into a managed signage display, complete with kiosk mode and live remote control. SwiftDisplay also runs on Windows, ChromeOS, LG webOS, Samsung Tizen, and any web browser." } },
{ "@type": "Question", "name": "What's the difference between self-hosted and cloud digital signage?", "acceptedAnswer": { "@type": "Answer", "text": "With cloud, we host everything and you just sign in — the fastest way to start. With self-hosting, you deploy SwiftDisplay on your own server or VPS so your content and device data never leave your network, with no recurring SaaS fees. You can switch later." } },
{ "@type": "Question", "name": "Is SwiftDisplay really open source?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. The full platform is released under the permissive MIT license on GitHub. You can read the code, self-host it, modify it, and even white-label it — no vendor lock-in and no proprietary black box." } },
{ "@type": "Question", "name": "What can I put on my screens?", "acceptedAnswer": { "@type": "Answer", "text": "Images, video, playlists, multi-zone layouts, and live widgets — clocks, weather, RSS tickers, countdowns, QR codes, web pages, and scrolling lobby/staff directories. You can schedule different content by day and time, per display or per group." } },
{ "@type": "Question", "name": "Do my displays keep playing if the internet goes down?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. ScreenTinker players cache their content locally and keep playing during an internet or server outage, then sync automatically once the connection returns. No blank screens." } },
{ "@type": "Question", "name": "Do my displays keep playing if the internet goes down?", "acceptedAnswer": { "@type": "Answer", "text": "Yes. SwiftDisplay players cache their content locally and keep playing during an internet or server outage, then sync automatically once the connection returns. No blank screens." } },
{ "@type": "Question", "name": "Can I control my screens remotely?", "acceptedAnswer": { "@type": "Answer", "text": "Yes, on every plan. See a live view of what's on each screen, push content instantly, and send remote key presses or power commands. Live view and key presses on Android require the on-device accessibility permission." } },
{ "@type": "Question", "name": "Is there a limit on how many screens I can manage?", "acceptedAnswer": { "@type": "Answer", "text": "On cloud plans, your display count is set by your tier (1 free, up to 15 on Pro, more on Enterprise). If you self-host, there is no built-in device cap — you're limited only by your own hardware." } },
{ "@type": "Question", "name": "How does ScreenTinker compare to Yodeck, ScreenCloud, and OptiSigns?", "acceptedAnswer": { "@type": "Answer", "text": "ScreenTinker is typically a fraction of the price at scale and is the only one of the four you can self-host. Detailed side-by-side breakdowns are available for Yodeck, ScreenCloud, and OptiSigns." } }
{ "@type": "Question", "name": "How does SwiftDisplay compare to Yodeck, ScreenCloud, and OptiSigns?", "acceptedAnswer": { "@type": "Answer", "text": "SwiftDisplay is typically a fraction of the price at scale and is the only one of the four you can self-host. Detailed side-by-side breakdowns are available for Yodeck, ScreenCloud, and OptiSigns." } }
]
}
</script>
@ -1556,7 +1498,7 @@
// settings.js, admin.js) get the full list as before.
fetch('/api/subscription/plans').then(r => r.json()).then(plans => {
const grid = document.getElementById('pricingGrid');
const publicPlans = plans.filter(p => p.active && p.name !== 'enterprise');
const publicPlans = plans.filter(p => p.active && p.name !== "enterprise" && p.name !== "free");
const planCardsHtml = publicPlans.map((p, i) => `
<div class="price-card ${i === 2 ? 'featured' : ''}">
<h3>${p.display_name}</h3>

1673
frontend/landing.html.tmp Normal file

File diff suppressed because it is too large Load diff