Self-hosted signage for restaurants, churches, schools, and community spaces. Manage every screen from one dashboard — no cloud, no fees, no lock-in.
Built for operators who need reliability — not another SaaS dashboard with a monthly bill.
Split any screen into independently controlled regions, each running its own playlist simultaneously. Define regions by percentage coordinates — perfect for menu boards with a live footer, or a lobby wall mixing announcements with video.
WebSocket pushes playlist changes to every display instantly — no polling, no reloads.
Drag-and-drop slides with per-slide durations, transitions, and scheduling.
Images, videos, and PDFs with automatic WebP optimisation via Sharp.
Live online/offline status, last-seen timestamps, and client IPs at a glance.
Broadcast a full-screen urgent message to every display with one click — or fire a one-tap preset (fire, lockdown, closure) with no typing.
PIN-protected overlay prevents tampering; unlock with a configurable key combo.
Play HLS (.m3u8) or WebRTC (WHEP) sources as slides. Pair with go2rtc or MediaMTX to put IP cameras and OBS feeds on any screen — the foundation for NDI support on the roadmap.
Restrict slides to specific days and time windows — re-evaluated every minute, automatically.
Displays cache their last playlist and keep playing through network outages.
Super Admin, Admin, Operator, and Viewer roles with granular permissions.
Resolution, refresh rate, rotation, colour profile, and LED panel grids per screen.
Server and kiosk apps keep themselves current from GitHub Releases — kiosks update silently on restart.
One container runs everything: docker compose up -d, state in a single volume.
Token-authenticated endpoints for automation — trigger the emergency override or read screen status from Home Assistant, n8n, or a cron job. See the reference.
Fillable layouts — welcome screen, announcement, menu board, event schedule — so anyone can build a good-looking slide in minutes, no design skills required.
Native installers for Windows, macOS (Universal), and Linux. The server lives in your tray; the kiosk app boots displays fullscreen with zero browser setup.
One command turns a £35 Pi into a fullscreen kiosk. Server updates reach every Pi instantly — no device maintenance.
Stream live video from NDI devices on the local network to any display region — building on the live-stream foundation. See the roadmap →
No cloud account. No credit card. Download an app — or run one Docker command — and follow the wizard.
Download for Windows, macOS, or Linux — or run docker compose up -d. The database sets itself up on first launch.
The dashboard opens automatically. Name your app, create the Super Admin account, and set a kiosk PIN.
Group displays into zones (lobby, corridor, reception), then add screens. Each screen gets a unique pairing token.
Upload images, videos, and PDFs, then arrange slides with custom durations, transitions, and schedules.
Install the Kiosk App on each display device — or open the display client in any browser — and enter the screen token. It connects and starts playing.
Update playlists from the dashboard; changes are pushed to every paired display in real time via WebSocket.
Split screens into multi-zone layouts, schedule slides by day and time, and drop live camera or OBS feeds onto any screen.
The apps keep themselves updated from GitHub Releases. Kiosks apply updates silently on restart — never mid-show.
From the IT admin who manages everything to the volunteer who uploads the weekly schedule.
Manage everything: users, screens, content, and settings. Can assign any role, including Super Admin.
Manage all screens, playlists, assets, and user accounts. Cannot delete users or assign Super Admin.
Day-to-day content management: screens, zones, playlists, assets. No access to user management.
View all content pages without being able to create, edit, or delete anything.
Free forever. Self-hosted. No accounts to create, no subscriptions to manage.