A retro-style, JSON-driven community bulletin board inspired by classic cable-access TV.
A lightweight, retro-inspired Community Bulletin Board system that recreates the look and feel of classic 1990s cable-access TV displays β blinking text, stacked bands, and scrolling tickers β all editable through a web browser.
Built with plain HTML, CSS, JavaScript, and PHP. No frameworks. No database.
Community Bulletin TV is designed to feel like a classic cable-access bulletin board β bold text, simple layouts, and continuous rotation.



This project displays rotating βscreens,β each made up of horizontal text bands and an optional scrolling ticker. Itβs designed for:
Everything is edited visually via a browser-based editor and saved to a simple JSON file.
community-bulletin/
βββ play.html # Public display page
βββ editor.html # Editor interface
βββ save.php # Saves bulletin data
βββ data/
β βββ bulletin.json # All content & settings
βββ js/
β βββ bulletin.js # Display logic
β βββ editor.js # Editor logic
βββ css/
β βββ bulletin.css # Shared styles
βββ README.md
chown -R www-data:www-data data
chmod 664 data/bulletin.json
/community-bulletin/play.html
/community-bulletin/editor.html
This repository includes a fully-featured example configuration:
The demo file showcases:
{space}, {tab}, {linef})If you want to experiment, start by editing bulletin.json and reload the play page.
π Macros
Macros are placeholders in band or ticker text that update automatically.
Date & Time Macros
Defined in bulletin.json:
"macros": {
"date": "%Y-%m-%d",
"time": "%H:%M:%S",
"datetime": "%Y-%m-%d %H:%M:%S"
}
Usage:
Date: {date} Time: {time}
Macros update live on the display page.
Spacing Macros (Built-In)
These do not need to be configured:
| Macro | Result |
| βββ | ββββ |
| {space} | Single space |
| {tab} | 3 spaces |
| {linef} | Line break |
Example:
Date:{tab}{date}{linef}Time:{tab}{time}
β± Screen Rotation
Screen timing is controlled globally:
"settings": {
"screenDuration": 10
}
Screens rotate automatically on the display page
π Ticker
Ticker settings:
"ticker": {
"speed": 40,
"text": "COMMUNITY EVENTS β’ LOCAL ANNOUNCEMENTS β’ WEATHER ALERTS"
}
Ticker text supports macros
π Editor Notes
π Security Notes
This project assumes a trusted environment.
If exposed publicly:
π§ Design Philosophy
π§ Roadmap Ideas
π License
GPL2 License Free to use, modify, and redistribute.
If you run this on a cable channel in 1996, thatβs on you π