Dashboard
Real-time overview · Live sync
Online Screens
—
of — registered
Active Playlists
—
In library
Broadcasts Today
0
This session
Active Schedules
—
Running now
Connected Screens
No screens connected
Activity● Live
Quick Controls
Screens
Manage individual displays · Click to control
No screens registered
Go to Add Screen
Go to Add Screen
Activity Log
All system events
Analytics
Proof-of-play impressions by screen and playlist
Total Impressions
—
Active Screens
—
Slide Types Shown
—
Impressions by Hour
By Slide Type
Per-Screen Breakdown
| Screen | Impressions | Top Slide Type | Last Seen Slide |
|---|---|---|---|
| Select a date to view data | |||
Playlists
Build and manage content playlists
Schedules
Route content by time, date, and location
Media Library
Upload files, paste URLs, add YouTube — all slide-ready
Drop files here or click to browse
Images: JPG, PNG, GIF, WebP, SVG · Videos: MP4, WebM, MOV, AVI · Documents: PDF
700 KB upload limit — large files must be added by URL (CDN, S3, Cloudflare R2, etc.)
700 KB upload limit — large files must be added by URL (CDN, S3, Cloudflare R2, etc.)
No media yet — upload files or add URLs
Live Metrics
Push KPI data to metrics slides in real-time
Simulate
Ticker
Manage scrolling text bands shown across all screens
No tickers yet — create one to add a scrolling band to your screens
Broadcast
Send live commands to screens instantly
Announcement
Interrupt playlist with a full-screen message
⬡ All Screens
Push Playlist
Video Command
Web Embed
Social Feeds
Display live social content on your screens
Step 1 — Embed Widget (works now, zero code)
Elfsight · Tagembed · EmbedSocial
Sign up at elfsight.com, tagembed.com, or embedsocial.com — connect your Instagram, Facebook, LinkedIn, or TikTok — then paste the embed URL below as a Social slide in any playlist. No API keys required.
Step 2 — Instagram API (auto-refresh via Netlify Function)
Requires: Netlify deploy + Instagram Basic Display API token
The included Netlify Function (
netlify/functions/instagram-feed.js) polls your Instagram account and writes new posts directly to Firebase as image slides. Set your token below and it activates automatically on deploy.
Setup Steps
1. Go to developers.facebook.com/apps → create an app → add Instagram Basic Display
2. Add your Instagram account as a test user and generate a long-lived access token
3. In your Netlify dashboard → Site settings → Environment variables → add
4. Redeploy — the function runs every time it's called and can be triggered on a schedule via Netlify scheduled functions
2. Add your Instagram account as a test user and generate a long-lived access token
3. In your Netlify dashboard → Site settings → Environment variables → add
INSTAGRAM_TOKEN and SIGNAL_FIREBASE_URL and SIGNAL_FIREBASE_KEY4. Redeploy — the function runs every time it's called and can be triggered on a schedule via Netlify scheduled functions
Social Slides in Playlists
No social slides yet — add one above
Add Screen
Choose a pairing method below — TV / kiosk screens show a PIN, other displays use a QR code or URL
Groups & Locations
When a screen pairs, it registers with a name, location, and group. Use these to route scheduled content to specific displays.
Pending Pairs
Generate a code to start
WhatsApp
Live moderation · Display control · Spotlight queue
Message Queue
No messages yet
Spotlight Queue
Pushed to screens immediately, any mode
No messages spotlighted yet — click ★ Spotlight on any message
Display Mode
Toast
Animated bottom-left banners
Full Screen
Cinematic single-message takeover
Chat Wall
Live social bubble wall
Slideshow
Large-format card carousel
Ticker
Scrolling marquee band
Social Wall
Grid cards · Event & festival style
Spotlight
One big message · LED wall / stadium
Bubble Wall
WhatsApp bubbles · Familiar & personal
Chat Overlay
TikTok-style chat · Scrolling over content
Live Social
Glassmorphic stream overlay · Premium event live wall
Live Chat
Floating chat + emoji reactions · TikTok / YouTube live
Social Wall / Spotlight / Bubble Wall / Live Social are premium display concepts designed for large social spaces, events, and LED walls.
Social Display Settings
Show phone on screen
Display number / QR invite in header
Moderation
Auto-approve
Messages go live instantly, no queue
Profanity filter
Auto-block common expletives
Auto-expire messages
Remove from screen after N minutes
min
Keyword Blacklist
Keyword Whitelist — auto-approve if matched
Display Options
Live Polls
Create audience polls · Display on screens · Track votes in real time
No polls yet — create one above
QR Code Scan Analytics
Scan Report
| Screen | Slide | Scans | Last Scan |
|---|---|---|---|
| Select a date to view scan data | |||
Settings
Firebase, Ably, and player defaults
🎬 Demo ContentSample Data
Load a showcase playlist covering every slide type: Hero, Metrics, Text, Announce, Image, Video (MP4), YouTube (CC), Web, QR Code. Uses public-domain Creative Commons content — Big Buck Bunny, Sintel, Elephants Dream, Tears of Steel (Blender Foundation). Will not overwrite existing data. Delete the existing "SIGNAL Demo" playlist first to reload with updated content.
Firebase ConfigConnected
⚡ Ably ConfigRealtime
Ably handles all real-time pub/sub (versions, commands, WA messages, presence).
Firebase is now persistence only — no listeners, ~95% less bandwidth.
Get a free key at ably.com (6M messages/month free).
Firebase is now persistence only — no listeners, ~95% less bandwidth.
Get a free key at ably.com (6M messages/month free).
Not connected
Player Defaults
Data Management
📊 Data Usage ControlsFirebase Quota
Control which high-frequency Firebase write features are active. Disabling screenshots and reducing heartbeat frequency are the most effective ways to reduce monthly download quota.
Thumbnail captured on every slide transition (~40 KB each write)
Hourly impression counts per screen — used in Analytics tab (1 write/slide)
Full duration log per slide — exportable CSV for client reporting (1 write/slide) ⚠ High write volume
60s
💡 Recommended for free tier: Disable Auto Screenshots · Disable Proof-of-Play · Set Heartbeat to 180s+.
Screenshots and PoP are the highest-volume writes. Enable PoP only when you need client reporting.
Cloud StorageMedia Uploads
Configure external storage so the Media Library can accept files larger than the 700 KB Firebase limit. Credentials are stored in your browser only — never sent to Anthropic or any third party.
Supabase Storage
Postgres-backed object storage. Requires a Supabase project with storage enabled.
Custom Upload Endpoint
POST multipart/form-data to your own endpoint. Receives file, returns
{"url":"…"}.