signage-content-fallbacks
Ensure digital signage screens always display content by implementing fallback chains for API failures, missing data, and feed outages.
Skill by CambridgeMonorail
Chalk Labs
Need help deploying signage-content-fallbacks?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/cambridgemonorail-signage-content-fallbacks
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: backend, data, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/signage-content-fallbacks
What's inside
- Skill name
signage-content-fallbacks- Description
- Ensure digital signage screens always display content by implementing fallback chains for API failures, missing data, and feed outages. Use when building signage apps that depend on external data sources, and produce fallback patterns that prevent blank or broken screens.
- License
- MIT
- Metadata
- author: CambridgeMonorail · version: 1.0
- Instructions
- 165 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- examples.md · references/
SKILL.md (first lines)
# Signage Content Fallbacks Skill
## Purpose
Use this skill to ensure signage screens always have something to show, even when every external data source fails.
APIs fail. Menu feeds break. Weather services go down. Image CDNs become unreachable. In web development, you show an error page and the user retries. In signage, a broken screen is visible to the public 24/7 with no one to click "retry". This skill encodes the patterns that guarantee content is always present.
## When to Use
Use this skill when you need to:
- design fallback content for a signage screen with external data dependencies
- review whether a signage app handles data source failures gracefully
- implement static fallback content for API-dependent screens
- ensure no zone on a signage screen can ever be blank
- plan the fallback chain from live data to last resort
## Do Not Use When
Do not use this skill when:
- the screen displays only static, bundled content with no external dependencies
- the task is about data refresh timing and polling (use `signage-data-refresh-patterns`)
- the task is about the overall app state machine (use `signage-state-machine`)
## Core Principle
**Content must always exist. A signage screen with a blank zone, a missing image, or an error message is broken, even if the code ran without exceptions.**
## The Fallback Chain
Every piece of dynamic content must have a fallback chain with at least three levels:
```
1. Live data (API, feed, CMS)
↓ (failure)
2. Cached data (last successful fetch, stored locally)
↓ (unavailable or expired)
3. Static fallback (bundled with the app, always available)
↓ (should never reach here, but...)
4. Emergency placeholder (branded "content coming soon" or minimal branded screen)
```
### Fallback Level Definitions
| Level | Source | Freshness | Availability |
| ------------- | ------------------------------------- | -------------------- | ------------------------------- |
| **Live** | API / feed / CMS | Real-time | Depends on network and service |
| **Cached** | localStorage, IndexedDB, or in-memory | Minutes to hours old | Available if previously fetched |
| **Static** | Bundled JSON, images, or markup | Shipped with build | Always available |
| **Emergency** | Hardcoded branded placeholder | N/A | Always available |
## Content-Type Fallback Patterns
### Menu / Product Data
```
Live menu from API
→ Cached menu from last successful fetch
→ Static default menu bundled with app
→ "Menu available shortly" branded card
```
### Images
```
Live image from CDN / API
→ Cached image (if using service worker or local storage)
→ Bundled placeholder image (correct aspect ratio, branded)
→ CSS gradient or solid-colour background
```
### Weather / Transit / Live Feeds
```
Live feed data
→ Cached feed (with visible "Updated X minutes ago" indicator)
→ Generic zone content ("Weather information temporarily unavailable")
→ Hide zone entirely and redistribute space
```
### Promotional Content
```
Scheduled promotion from CMS
→ Default promotion bundled with app
→ Brand message or logo
```
## Implementation Patterns
### Component-Level Fallback
Each content zone should use a typed `ZoneContent<T>` container with `live`, `cached`, and `static` fields. A `resolveContent()` helper picks the first non-null value. See [implementation examples](references/examples.md) for the TypeScript pattern.
### Image Fallback
Wrap images in a component that renders a `fallbackSrc` on load error — never show a broken image icon. See [implementation examples](references/examples.md) for the component signature.
### Zone-Level Visibility
If a zone has no content at any fallback level, hide it and redistribute space rather than showing an empty area. See [implementation examples](references/examples.md) for the pattern.
## Static Fallback Requirements
Every signage app must ship with static fallback content:
| Content Type | Requirement |
| ------------ | ------------------------------------------------------------------- |
| Text content | Default JSON or hardcoded data covering all required fields |
| Images | Placeholder images at correct aspect ratio, bundled in the build |
| Layout | Every zone must have a rendering path that uses only bundled assets |
| Branding | Logo, colours, and brand elements available without network |
### Building Static Fallbacks
- Include a `fallback/` directory in the app with default content.
- Generate static fallback data at build time from a known-good snapshot.From CambridgeMonorail/WallRun, MIT.
More from CambridgeMonorail/WallRun
- 0.454score
brightsign-deploy-local
CambridgeMonorail
Deploy React apps to local BrightSign OS 9.x players via HTTP API for rapid development iteration.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-fleet-deploy
CambridgeMonorail
Build, version, and publish React apps to GitHub Releases for fleet-wide BrightSign player updates.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
shadcnui-component-review
CambridgeMonorail
End-to-end review of shadcn/ui components in a component library.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-package
CambridgeMonorail
Build and package React apps for BrightSign OS 9.x players with autorun.brs bootstrap, IIFE bundles, and optimised Vite configuration.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
signage-data-refresh-patterns
CambridgeMonorail
Generate polling, backoff, and non-blocking data update patterns for digital signage that refreshes content without page reloads or visual disruption.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
instructions-detox
CambridgeMonorail
Audit Copilot instruction files for bloat, overlap, stale rules, and weak applyTo scope.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-signage-build
CambridgeMonorail
Build a BrightSign-targeted digital signage app by combining full-screen layout design, BrightSign runtime constraints, packaging expectations, and…
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
signage-menu-board
CambridgeMonorail
Build food and service menu-board systems for large displays using clear templates, price hierarchy rules, structured inputs, and screen planning.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
chrome-devtools-webapp-debug
CambridgeMonorail
Investigate broken pages, failing user journeys, console errors, network failures, and frontend performance regressions using Chrome DevTools MCP.
SkillDFreshness: D★ 3Claude Code +9 - 0.450score
brightsign-debug
CambridgeMonorail
Diagnose and troubleshoot BrightSign OS 9.x player issues using device info APIs, remote Chrome DevTools inspector, log analysis, and file verification.
SkillDFreshness: D★ 3Claude Code +9 - 0.449score
signage-performance-budget
CambridgeMonorail
Audit and validate bundle size, image weight, font loading, and frame-rate budgets for digital signage running on embedded hardware like BrightSign players.
SkillDFreshness: D★ 3Claude Code +9 - 0.449score
brightsign-runtime
CambridgeMonorail
Explain how to build and adapt web applications that run reliably on BrightSign players.
SkillDFreshness: D★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 19
- Last commit (this folder)
- Mar 15, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- Version
- 1.0
- License
- MIT
- Repository
- github.com/CambridgeMonorail/WallRun
- Website
- wallrun.dev/
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from CambridgeMonorail
- 0.454score
instructions-detox
CambridgeMonorail
Audit Copilot instruction files for bloat, overlap, stale rules, and weak applyTo scope.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-signage-build
CambridgeMonorail
Build a BrightSign-targeted digital signage app by combining full-screen layout design, BrightSign runtime constraints, packaging expectations, and…
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-deploy-local
CambridgeMonorail
Deploy React apps to local BrightSign OS 9.x players via HTTP API for rapid development iteration.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-fleet-deploy
CambridgeMonorail
Build, version, and publish React apps to GitHub Releases for fleet-wide BrightSign player updates.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
brightsign-package
CambridgeMonorail
Build and package React apps for BrightSign OS 9.x players with autorun.brs bootstrap, IIFE bundles, and optimised Vite configuration.
SkillDFreshness: D★ 3Claude Code +9 - 0.454score
chrome-devtools-webapp-debug
CambridgeMonorail
Investigate broken pages, failing user journeys, console errors, network failures, and frontend performance regressions using Chrome DevTools MCP.
SkillDFreshness: D★ 3Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get signage-content-fallbacks running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
signage-content-fallbacks skill. Agent Mart. https://agentmart.dev/skills/cambridgemonorail-signage-content-fallbacks (last updated 2026-10-24)