DynamicBoard
A free to use vestaboard server for your local network.
Install / Use
/learn @mockcomic/DynamicBoardREADME
Dynamicboard
Dynamicboard is a lightweight web app that lets you compose messages for a Vestaboard and send them on a timer or on demand. It supports both free‑text messages and a 22×6 grid editor, plus scheduled “event” messages that only display during a date range.
Features
- 22×6 grid editor with quick navigation
- Auto‑format text submissions
- Scheduled messages with date ranges and yearly repeats
- Timer‑based rotation of saved messages
- One‑click “Send to Board” for any saved message
Quick Start
- Install dependencies:
npm install
- Start the server:
npm run dev(auto‑reload) ornpm start
- Open the UI:
http://localhost:4000
On first run, a config.json file is created in the project root.
Configuration (config.json)
Add your Vestaboard Read/Write API key to apiWriteKey.
You can find it in the Vestaboard app under Settings → Advanced Settings → Read/Write API.
Key fields:
apiWriteKey: Vestaboard read/write key (required)isEnabled: Enable/disable the send looptimer: Interval in milliseconds between sends (UI is in minutes)messages: Saved messages and event data
Message Functions
Functions must be wrapped with {}. Example:
Christmas is in {tillDate(12,25,2025)} days!
Available:
tillDate(mm,dd,yyyy)
Returns the number of days until (or since) the date.todayDate()
Returns today’s date inmm,dd,yyyyformat.
How Scheduling Works
- Every
timerinterval, the app sends the next message inmessages. - If a message is marked as an event, it only sends when the current time is within its date range.
- Non‑recurring events are removed after their end date passes.
Docker
Build and run:
docker build -t dynamicboard .docker run -p 4000:4000 dynamicboard
Build a Standalone Binary (optional)
This uses pkg to generate platform builds:
npm run build:pkg
Outputs go to release/.
Notes
- Keep your
config.jsonsecret; it contains your API key. - The UI shows a warning banner if the key is missing or invalid.
