{{ define "main" }}

Free digital signage for everyone.

Turn a Raspberry Pi or any PC into a digital sign. Schedule images, videos, and web pages from a web interface. No subscriptions, no cloud lock-in.

Formerly Screenly OSE — same project, renamed in 2022.

{{- /* Same stable cache key as baseof.html so the resize pipeline runs once per build and the preload + slider see the identical resource references. */ -}} {{- $slides := partialCached "screenshots.html" . "screenshots-singleton" -}} {{- if $slides -}} {{- /* Browser-chrome framed scroll-snap slider. Each carries an explicit aspect-ratio matched to the 1400×900 capture viewport from tests/conftest.py so the box is reserved before WebP decode (CLS = 0). The track is the scroll container; the surrounding chrome, indicator pills, and prev/next controls are wired up by slider.ts via data-screenshot-* hooks. */ -}}
{{- /* Top chrome — traffic-light dots + URL pill. Reads as a real browser frame so the dashboard captures inside feel like the live product, not a flat PR render. The URL value flips per-slide via data-screenshot-url; slider.ts updates it on slide change so the chrome stays in character. */ -}}
{{- range $i, $slide := $slides }}
{{ $slide.alt }} {{- with $slide.caption }}
{{ printf "%02d" (add $i 1) }} {{ . }}
{{- end }}
{{- end }}
{{- if gt (len $slides) 1 }} {{- end }}
{{- if gt (len $slides) 1 }} {{- /* Plain buttons with aria-current — not role="tab" inside role="tablist". The full ARIA Tabs pattern (roving tabindex, aria-controls/tabpanel) doesn't fit a horizontal-scroll carousel where every slide stays in the DOM, so the simpler current-state semantics are more honest for assistive tech. */ -}}
{{- range $i, $slide := $slides }} {{- end }}
{{- end }}
{{- end }}

3,500+

GitHub stars

Since 2012

Active development

6 boards

Pi 2 through Pi 5 + x86

100% free

Open source, forever

What Anthias does

A complete digital signage platform that runs on hardware you already own.

Multiple content types

Display images, videos, and web pages. Upload files or point to any URL.

Content scheduling

Set start and end dates for each asset. Control duration and playlist order.

REST API

Automate content updates and manage devices programmatically.

Get running in minutes

The recommended way is to flash an SD card with Raspberry Pi Imager — no command line needed. Advanced users can install over an existing Raspberry Pi OS / Debian system.

Raspberry Pi Imager

Recommended

Open Raspberry Pi Imager, pick Other specific-purpose OS → Digital signage and kiosks → Anthias, choose your Pi model, and flash. The SD card boots straight into Anthias — no SSH, no installer prompts.

Raspberry Pi 2 through Pi 5.

One-line install (advanced)

On a running Raspberry Pi OS Lite or Debian system, run:

bash <(curl -sL https://install-anthias.srly.io)

Raspberry Pi, x86, and 64-bit ARM SBCs.

Prefer fleet-managed, OTA-updated images? See balenaHub Fleets for Good.

Ready to set up your digital sign?

Anthias is free and open source. Get started in minutes on any Raspberry Pi or x86 PC.

{{ end }}