Documentation

Atracast Docs

Everything you need to get screens up and running, design content, manage menus, schedule playlists, and make the most of every feature.

🚀

Getting Started

Overview

Atracast is a cloud-based digital signage platform. Content flows from your dashboard to your TV screens in real time — no USB drives, no on-site visits, no proprietary hardware.

The typical workflow is: upload media → design a frame → build a playlist → schedule it → register a screen. The screen then receives content automatically and keeps itself in sync.

Create an account

Go to the Atracast dashboard and click "Get started". Enter your company name and email address, set a password, and you will be dropped straight into your account.

The Starter plan is free for up to 3 screens — no credit card is required until you add a 4th device.

Every account gets a company workspace. All media, screens, playlists, and users live under that workspace.

Connect your first screen

Open the TV client URL (your Atracast installation URL + /tv) on any browser-capable device connected to a screen. The client will display a 6-character pairing code.

In your dashboard, go to Devices → Claim Device, enter the pairing code, and give the device a name. The screen will pair instantly and begin receiving its assigned playlist.

The TV client works on smart TVs, Amazon Fire Sticks, Raspberry Pi, Chrome sticks, or any device with a modern browser. If it has a browser and an internet connection, it works.

🖼️

Media Library

Uploading files

Navigate to the Media section and click Upload. You can select multiple files at once. Videos are queued for background transcoding — a processing indicator will show while FFmpeg normalises the file. Other file types are available immediately.

Uploaded files are stored in your tenant storage space (S3, Cloudflare R2, or local storage depending on your installation). All paths are tenant-scoped so files are never shared across accounts.

Supported formats

Images: JPG, PNG, GIF, WebP. Videos: MP4, MOV (transcoded to a normalised MP4 via FFmpeg). Audio: MP3, AAC. PDF files are also accepted.

The upload limit is 512 MB per file. For very large video files, compress to H.264 before uploading for faster transcoding.

Folders & organization

Create folders from the Media section to organise files by campaign, location, or content type. Folders can be nested. Moving files between folders does not break any playlist or frame references.

Use the search bar to find files by name across all folders instantly.

🎨

Frame Designer

The canvas

The Frame Designer works on a fixed 1920×1080 canvas that scales to fit any screen size at render time. Everything you place is positioned in absolute pixel coordinates relative to that base resolution.

The background can be a solid color, a custom gradient, a full-bleed image from your media library, or a looping background video. Set it using the Background panel on the right side of the designer.

Use the zoom controls to work on fine details, or fit-to-window to see the full layout at once. Press Ctrl+Z / Cmd+Z to undo, Ctrl+Shift+Z to redo.

Layers & types

Each element on the canvas is a layer. Layers are stacked — higher z-index means in front. Drag layers in the Layer Panel to reorder them.

Available layer types: Text (content, font, size, color, alignment, bold/italic, letter spacing, line height, padding, background), Image (from media library, object-fit), Video (autoplay, muted, loop), Shape (rect, ellipse, banner with fill and stroke), Clock (live time in 12h/24h), Ticker (scrolling text or RSS headlines).

Select a layer to reveal its property controls in the right panel. Hold Shift to select multiple layers. Use the lock icon to prevent accidental moves.

Widgets

Widgets are specialised overlay layers added via the toolbar buttons at the top of the designer. Unlike basic layers they pull live data or render rich components.

Available widgets: Clock, Ticker (text or RSS news), Weather (current conditions or 3-day forecast), Stock prices (scrolling ticker or portrait board), Forex rates (exchange rate ticker or board), News feed (card or list layout), Spotify now-playing, Livestream (embed URL), Sports scores, Condo Board, and Menu (service menu overlay).

Widgets are free-position — drag them anywhere on the canvas and resize to any dimensions. A forex ticker pinned to the bottom 80px strip or a full-screen rate board are both valid configurations.

Entrance animations

Each layer (except widgets) can have an entrance animation applied via the Animation section in the Properties Panel. The animation plays once when the frame first appears on screen.

Available animations: none, fade-in, slide-in-left, slide-in-right, slide-in-top, slide-in-bottom, zoom-in, typewriter.

Set the duration (seconds) and delay (seconds) per layer. Use delay to stagger elements — for example, title appears at 0s, subtitle at 0.3s, body text at 0.6s.

▶️

Playlists

Creating a playlist

Go to Playlists and click New Playlist. Give it a name and set the default item duration (how long each item shows if it has no individual override) and the default transition.

A playlist must be marked Active before it can be scheduled to a screen. Use the Active toggle at the top of the playlist detail page.

Adding items

A playlist item can be one of three source types: a designed Slide (rendered natively from canvas JSON), a Media file (image or video from your library), or a URL (any web page displayed in an iframe).

Each item can override the playlist default duration and transition. Drag items to reorder. Items play top-to-bottom and loop.

Transitions

Available transitions: none, fade, slide-left, slide-right, slide-up, slide-down, zoom-in, zoom-out, flip-horizontal, wipe-left.

Set a default at the playlist level, then override per item where needed. Set an item to "inherit" to always follow the playlist default without manual updating.

Background music

Open the Background Music panel in the playlist builder. Pick audio files from your media library to build a track list. Tracks loop in order (or randomly with shuffle enabled).

Set the volume (0–100). Enable Duck on Video to automatically lower the music to 20% when a video item is playing, then restore it when the video ends.

Music plays independently of visual transitions — it never stops or skips when sliding from one item to the next.

📅

Scheduling

Creating a schedule

Go to Schedules and click New Schedule. Select the playlist to play, set a start date/time and optional end date/time, and assign it to one or more screens.

Multiple schedules can be active at the same time — priority determines which one plays. Higher priority numbers win.

Recurrence rules

Enable recurrence and set an RRULE to repeat the schedule. Common patterns: daily (FREQ=DAILY), weekdays only (FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR), every Monday (FREQ=WEEKLY;BYDAY=MO).

Combined with a start/end time window, this creates time-of-day rules — for example, FREQ=DAILY with start 11:00 and end 14:00 creates a lunch schedule that runs Monday through Sunday.

Priority & overrides

When multiple schedules are active for the same screen at the same time, the one with the highest priority number wins. Normal content typically runs at priority 1–5. Emergency alerts at 100.

Use the emergency push button on the Devices page to interrupt all screens immediately with an alert playlist, bypassing the schedule system entirely.

Content approval

If content approval is enabled for your account, schedules must be verified before they go live. Click Publish on the schedule — this sends a 6-digit code to all company admins by email.

An admin enters the code in the Approvals section (or via the email link) to activate the schedule. Until approved, the schedule exists but does not play on any screen.

This workflow is designed for enterprise and franchise environments where a second set of eyes must sign off before content reaches customer-facing displays.

🍽️

Service Menus

Creating a menu

Go to Service Menus and click New Menu. Select the widget type (Fast Food, Restaurant, Salon, Gym, or Retail), the display style, and the currency.

The menu is a reusable data object. Add it to a playlist as a widget item, or embed it as a layer in the Frame Designer. One menu can appear in multiple playlists.

Categories & day-parts

A menu is organised into categories (e.g. Burgers, Sides, Drinks). Add categories from the menu detail page and drag to reorder.

Each category can have an active time window (Active From / Active Until in HH:MM). The TV client filters out categories outside their active window at render time — no server-side job needed. A "Lunch" category set to 11:00–14:00 disappears automatically outside those hours.

Menu items

Each item has: name (required), description, price, image, availability toggle, featured flag, calorie count, and custom tags.

Mark an item unavailable with the sold-out toggle — it disappears from the screen within the 30-second heartbeat cycle. No design work, no republishing.

Mark an item as Featured to give it visual prominence in the featured and grid layout styles.

Display styles

Grid — image cards in columns. Classic fast food / QSR style (McDonald's, Wendy's).

List — horizontal rows with price right-aligned. Overhead board style (KFC).

Price Board — dark background, large text. Traditional signage look.

Featured — one hero item large + supporting items below.

Category Scroll — automatically rotates through each category on a configurable timer.

🏛️

Condo Board

Setting up a building

Go to Condo Buildings and click New Building. Enter the building name and optional address. Each building is an independent announcement board.

Once created, the building can be linked to a frame widget (add a Condo Board widget in the Frame Designer and select the building UUID) or used as a full-screen playlist item.

Posting announcements

Open the building detail page and click Add Announcement. Fill in the title (required), optional body text, urgency level, optional image from the media library, and an optional expiry date.

Announcements cycle on screen with a configurable timer (default 8 seconds each). Drag to reorder them in the dashboard list.

Expired announcements (past their expires_at date) stop appearing on screens automatically — no manual removal needed.

Urgency levels

Info (blue) — general notices. Routine updates, community news, amenity reminders.

Warning (amber) — situations that need attention. Maintenance, temporary service disruptions.

Urgent (red) — time-sensitive or safety-related. Water shutoffs, fire safety notices, emergency evacuations.

The urgency level applies a color badge on screen — residents read the severity at a glance without reading the body text.

💱

Forex Rates

Overview

The Forex widget displays live foreign exchange rates on any screen. Rates are sourced from the European Central Bank via Frankfurter.app — a free, public API that requires no key, no registration, and no billing.

Rates are cached for 15 minutes server-side (Redis with file fallback) and injected into the playlist payload automatically. The TV client also refreshes rates directly every 15 minutes.

Each rate includes a trend arrow (▲/▼) comparing the current rate against the previous cached value, giving viewers immediate directional context.

Adding to a frame

In the Frame Designer, click the $ (Forex) button in the widget toolbar. A forex widget is placed on the canvas at default position (bottom strip, full width, 80px tall).

Drag and resize it freely — it can be a slim 80px ticker, a 400px rate board column, or a full 1920×1080 display. There are no fixed size requirements.

The widget is a frame-level overlay, not a standalone playlist item. It lives inside a frame and renders on top of whatever content zone or background is behind it.

Settings & display styles

Base Currency — the currency all rates are quoted against (e.g. USD means all rates are USD/XXX). Default: USD.

Target Currencies — comma-separated list of currency codes to display (e.g. EUR,GBP,CAD,JPY,CHF). Leave empty to show all 28 supported currencies.

Display Style — Ticker scrolls pairs horizontally (best for narrow strips). Board stacks pairs vertically in rows (best for wider/taller widgets).

Show Flags — toggle country flag emojis next to each currency code.

Speed — scroll speed in pixels/second (ticker mode only).

Colors — background, text, up color (default green), down color (default red).

Supported currencies: USD, EUR, GBP, CAD, JPY, CHF, AUD, NZD, CNY, HKD, SGD, KRW, INR, MXN, BRL, SEK, NOK, DKK, TRY, ZAR, SAR, AED, THB, PLN, CZK, HUF, ILS, MYR.

📺

Device Management

Registering a device

Open the TV client on the target device. It will show a 6-character pairing code on screen. In your dashboard, go to Devices → Claim Device, enter the code, and assign a name.

The device receives a 64-character token which it stores locally. All future communication uses this token — no username or password is stored on the screen.

Monitoring status

The Devices page shows every registered screen with its current status (online/offline), last heartbeat time, and whether it has acknowledged the latest content push.

Screens send a heartbeat every 30 seconds. A screen is considered offline if no heartbeat is received within 90 seconds.

The "needs refresh" flag is set whenever new content is pushed. It clears automatically once the screen acknowledges receipt.

Emergency push

Click Push to All on the Devices page to immediately flag every online screen for a content refresh. Screens receive the signal via SSE and reload their playlist within seconds.

For a targeted emergency alert, create a high-priority schedule (priority 100) with an alert playlist and activate it immediately — it overrides whatever is currently playing on the assigned screens.

Live Content

Clock widget

Add a Clock widget from the Frame Designer toolbar. Choose 12h or 24h format, toggle seconds, and optionally show the date below the time.

Select the timezone — defaults to the browser timezone when the frame is designed but can be set to any IANA timezone (e.g. America/Edmonton, Europe/London). This ensures the clock shows the correct local time on the screen regardless of where the server runs.

Fully styleable: font family, font size, color, text alignment, and background color.

News ticker

Add a Ticker widget and set the source to Custom (static text) or News (live RSS/Atom feed). In News mode, select a category — the ticker pulls the latest headlines and refreshes every 5 minutes automatically.

Set scroll speed (px/s), font size, text color, and background color. The ticker is a free-position layer — pin it to the bottom of the canvas for a classic breaking-news look, or anywhere else.

Stock prices

Add a Stock widget from the toolbar. Set the number of symbols to display (1–17 from a curated list of major equities and ETFs). Requires a Finnhub API key set in your server environment (FINNHUB_API_KEY).

Two display styles: Ticker (horizontal scrolling, best as a bottom bar) and Board (vertical rows, best as a side panel).

Quotes are cached for 60 seconds and injected into the playlist payload — the TV client does not make direct API calls for stock data.

Something missing or unclear?

Contact support →