* chore(import): remove the OptiSigns provider OptiSigns' GraphQL gateway does not expose a downloadable file URL for uploaded assets (only a CDN-relative thumbnail key with no public base), and its web assets are internal *.optisigns.com apps, so an import returned nothing. Rather than ship a provider that imports nothing, remove it: provider module, registry entry, tests, and the website/wizard copy. The other providers (Yodeck, ScreenCloud, piSignage, Xibo) are unaffected. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> * chore(import): keep provider-list comments generic Address Copilot: don't hard-code the provider list in the settings template, the import view docstring, or the package docstring, so the comments don't drift as providers change. Also fix an awkward line wrap. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Anthias Website
This is the source code for anthias.screenly.io, built with Hugo and Tailwind CSS v4.
Local Development
The site needs the Tailwind output and self-hosted fonts to be generated before Hugo serves anything. Run the bun pipeline once, then start Hugo (or use bun run dev to do both with watchers):
cd website
bun install
bun run css:build # generates assets/styles/style.css and static/fonts/
hugo server
Or, with hot reload on CSS + templates:
cd website
bun run dev # bun css:watch + hugo server in parallel
The site will be available at http://localhost:1313.
Skipping the bun step will load the page with broken styling and 404s for
/fonts/...woff2— the font files come from the npm package@fontsource/plus-jakarta-sansand are materialized at build time, not committed. Icons are handled the same way:bun run icons:installcopies a curated subset of Font Awesome SVGs from@fortawesome/fontawesome-freeintoassets/images/icons/(gitignored). Both run automatically as part ofcss:build/css:watch.
Home-page screenshot slider
The hero on / is a slider fed by PNGs in assets/images/screenshots/. The directory is gitignored — captures are produced by the marketing-screenshots.yaml workflow and pulled into the build at deploy time. To preview the real slider locally:
bun run screenshots:fetch # latest successful master run
bun run dev
The fetch script needs the gh CLI authenticated; it targets Screenly/Anthias by default so the upstream artifact is reachable even from a fork clone. Pass --ref <branch> to pull from a different branch's most recent run, or --repo <owner>/<repo> to point at a different repo. Without screenshots, Hugo still builds — the slider section simply omits.
Build
cd website
bun run build # bun css:build && hugo
Output goes to website/public/.
Project Structure
website/
├── assets/ # Hugo Pipes inputs
│ ├── docs/ # Doc images / d2 diagram
│ ├── fonts/ # Generated by bun fonts:install (gitignored)
│ ├── images/ # Site images, logos, hero
│ └── styles/ # Built Tailwind + chroma stylesheets
├── content/
│ ├── _index.md
│ ├── api.md # /api/ — OpenAPI rendered server-side
│ ├── docs/ # /docs/* (rendered via layouts/docs/)
│ ├── faq.md # /faq/ — driven by data/faq.yaml
│ ├── features.md
│ └── get-started.md
├── data/
│ ├── faq.yaml # FAQ entries grouped by section
│ └── openapi.yaml # drf-spectacular dump for the /api/ page
├── layouts/
│ ├── _default/
│ │ ├── _markup/ # Goldmark render hooks (image, blockquote)
│ │ ├── api.html # /api/ template
│ │ ├── baseof.html # Base HTML
│ │ ├── faq.html # /faq/ template
│ │ └── ...
│ ├── docs/ # /docs/ list and single layouts
│ ├── index.html # Home page
│ └── partials/ # navbar, footer
├── scripts/
│ └── install-fonts.ts # Materializes Plus Jakarta Sans from npm
├── src/
│ └── main.css # Tailwind entrypoint
├── static/
│ ├── fonts/ # Generated by bun fonts:install (gitignored)
│ └── robots.txt
├── hugo.toml # Hugo configuration
├── package.json # Bun scripts: dev / css:build / fonts:install
└── public/ # Build output (gitignored)