Skip to main content
Version: 10.0 (latest)

Building on FiestaBoard

FiestaBoard turns live data into pages and shows them on real-world displays. You can build on it at either end: put FiestaBoard on a new display, or feed it, read it and drive it from your own code. This page lists every way in and points to the guide for each.

Which One Do You Need?​

You want toUseGuide
Show FiestaBoard on a device that FiestaBoard sends frames to: an LED matrix, a signPush: an output pluginWriting an Output Plugin
Show a board on a screen you control, in any language, with no installPull: the frame endpointsSubscribing to Board Frames
Put new data on boards: a service, a sensor, a feedProvide data: a data pluginPlugin Development Guide
Read what boards show, send messages, manage pages and schedules from a scriptRead and drive: the v1 APIAPI Endpoints
Let an AI assistant read and drive FiestaBoardRead and drive: the MCP serverMCP clients

Push: Write an Output Plugin​

An output plugin is a Python package that drives one kind of device. FiestaBoard renders each page, decides when to send it, and hands your plugin a frame; your plugin sends it to the device. Core enforces the device's write rate, cancels stale writes, dedupes, and honors pausing and silence schedules, so the plugin only moves frames.

Choose push when the device has an API that FiestaBoard can reach, and you want it to behave like any other board: added in Displays, set up from its own settings screen, scheduled, previewed and transitioned.

Writing an Output Plugin covers the manifest, the plugin class, LED rendering, testing and publishing.

Beta contract

Output plugins arrive with FiestaBoard 10.0.0, and the contract (output_api 1) is a beta: it may still change before it is declared stable. Every installed output plugin can drive a board, with nothing for the user to turn on, and the Displays → Marketplace tab lists them all.

Pull: Subscribe to Frames​

Every board keeps the last frame it showed. Two public, read-only endpoints serve it through a panel: the panel's config and size, and the current frame as character codes, as text, and as rich cells with colors and icons when the board has them. Poll the frame every couple of seconds and draw it.

Choose pull when you control the display's software: a TV or kiosk browser, an ESP32 with a screen, a terminal dashboard. Nothing is installed in FiestaBoard, and the device needs nothing but HTTP. FiestaBoard's own TV viewer, FiestaPanel, works this way.

Subscribing to Board Frames has the endpoints, the response fields, polling advice and a minimal viewer.

Provide Data: Write a Data Plugin​

A data plugin fetches data and exposes it as template variables, such as {{weather.temperature}}, that anyone can place on a page. It is the most common kind of plugin: weather, transit, stocks, calendars and home automation are all data plugins.

Plugin Development Guide walks through one from idea to merged pull request. A plugin that reads a user's account on another service signs in through the platform: see Signing In with OAuth.

Read and Drive: The v1 API​

The v1 REST API is the stable API for scripts and other software. Four nouns cover it: boards, pages, schedules and plugins. With it you can:

  • send a one-off message to a board, and hand the board back to its schedule
  • read what a board shows and why
  • create, render and schedule pages
  • read any plugin's current data

Every write reports what actually happened: whether the board changed, and if not, why. Start with API Endpoints.

Read and Drive: The MCP Server​

FiestaBoard runs a Model Context Protocol server at /api/mcp, so an AI assistant such as Claude Desktop or Claude Code can look at boards, write pages and change schedules on your behalf. FiestaBot, the assistant built into the page editor, uses the same tools.

Connect a client with a bearer token: see MCP clients and the bearer token.

Home Automation​

If you run Home Assistant, FiestaBoard can appear as a device over MQTT, with no code: Home Assistant Control.

Next Steps​