Self-hosted digital signage for restaurants, churches, schools, and community spaces. Manage screens from a central dashboard. No cloud. No fees. No lock-in.
Native installers for every platform. The server app runs in your system tray; the kiosk app boots displays fullscreen with no browser setup.
Dashboard + WebSocket server — system tray
Display client — fullscreen, no browser needed
Files are available once a release is published. Until then, run from source. Full setup guide →
Built for operators who need reliability, not a SaaS dashboard with a monthly bill.
Configure resolution, refresh rate, rotation, colour profile, and LED panel grids per screen.
WebSocket server pushes playlist changes to all displays instantly, with no polling or page reloads.
Drag-and-drop slides with per-slide durations, transitions, and day/time scheduling.
Upload images, videos, and PDFs. Automatic WebP optimisation via Sharp, with configurable quality and dimensions.
Live online/offline status, last-seen timestamps, and client IP, updated every 30 seconds.
Broadcast a full-screen urgent message to every display simultaneously with one click.
PIN-protected overlay prevents tampering. Unlock with a configurable key combination.
Super Admin, Admin, Operator, and Viewer roles with granular permission controls.
Display clients cache their last playlist and keep playing through network outages.
Split any screen into independently controlled regions, each running its own playlist. Define regions by percentage coordinates.
Restrict slides to specific days and time windows. The server re-evaluates schedules every minute and updates displays automatically.
Native installers for Windows, macOS, and Linux. Server app runs in the system tray; kiosk app boots displays fullscreen with no browser config. ARM64 support for Raspberry Pi 4B/5.
Stream live video from NDI devices on the local network directly to any display region.
No cloud account. No credit card. Just a server, a browser, and your content.
Clone the repo, run pnpm install and pnpm db:migrate. Works on Windows, macOS, and Linux, including Raspberry Pi.
Open the dashboard in your browser. Set your app name, create a Super Admin account, and configure the kiosk PIN.
Create zones to group your displays, then add screens. Each screen gets a unique pairing token.
Upload images, videos, and PDFs to the asset library. Create playlists and add slides with custom durations and transitions.
Open the display client on any browser-capable device and enter the screen token. It connects and starts playing.
Update playlists from the dashboard. Changes are pushed to all paired displays in real time via WebSocket.
Split a single screen into independently controlled regions, each playing its own playlist simultaneously. Define regions by percentage coordinates in the dashboard.
Restrict individual slides to specific days and times. The server enforces the schedule automatically and refreshes displays every minute.
Download a native installer for Windows, macOS, or Linux. A tray-based server app manages the dashboard and WebSocket server, while a dedicated kiosk app runs displays fullscreen — no browser setup required. ARM64 AppImage for Raspberry Pi 4B/5 included.
NDI live source support, analytics, user audit logs, content approval workflows, and remote screen management on the roadmap.
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 the Super Admin role.
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.