Open-source production toolkit for broadcast workflows
Build reliable, deterministic systems for live television and media production.
- Normalised Data Architecture — Single source of truth with dynamic views
- Real-time Sync — Bi-directional synchronisation between Google Sheets and Supabase
- Edge-First — Cloudflare Workers for low-latency validation and conflict handling
- Touch-Optimised Studio View — React PWA designed for iPad use in production environments
- API-Ready — REST endpoints for Companion, HyperDeck, vMix, and custom integrations
- Broadcast-Grade Reliability — Built with deterministic behaviour and clear failure modes
┌─────────────────────┐ ┌─────────────────────┐
│ Google Sheets │ │ Studio PWA │
│ (Familiar UI) │ │ (Touch Control) │
└─────────┬───────────┘ └─────────┬───────────┘
│ │
▼ ▼
┌─────────────────────────────────────────────────┐
│ Cloudflare Worker │
│ (Validation · Conflict Handling) │
└─────────────────────┬───────────────────────────┘
│
▼
┌─────────────────────────────────────────────────┐
│ Supabase │
│ (PostgreSQL · Realtime · Audit Trail) │
└─────────────────────────────────────────────────┘
- Create a new Google Sheet at sheets.google.com
- Open Extensions > Apps Script
- Copy the
.gsfiles from this repository - Run System > Bootstrap Database from the custom menu
See QUICKSTART.txt for detailed instructions.
git clone https://github.com/FiLORUX/the-public-service.git
cd the-public-service
# Deploy the sync worker
cd worker
npm install
npx wrangler deploy
# Run the studio app locally
cd ../studio-app
npm install
npm run devSee DEPLOYMENT.md for production deployment.
| Document | Description |
|---|---|
| QUICKSTART.txt | Get up and running in minutes |
| ARCHITECTURE-2026.md | System design and data flow |
| API.md | REST endpoint reference |
| DEPLOYMENT.md | Production deployment guide |
| FAQ.md | Common questions and troubleshooting |
| Component | Technology |
|---|---|
| Data Layer | Google Apps Script, Supabase (PostgreSQL) |
| Edge API | Cloudflare Workers, TypeScript |
| Studio App | React 18, Vite, PWA |
| Integrations | Bitfocus Companion, BMD HyperDeck, vMix |
Contributions are welcome. Please read the existing code to understand the conventions, then submit a pull request.
# Clone and set up
git clone https://github.com/FiLORUX/the-public-service.git
cd the-public-service
# For Apps Script development
npm install -g @google/clasp
clasp push
# For Worker development
cd worker && npm run dev
# For Studio App development
cd studio-app && npm run devMIT — use freely, modify freely, contribute back if you can.
- The broadcast engineering community for decades of battle-tested patterns
- EBU Technical for standards that make reliable systems possible
- Everyone who believes publicly funded work should remain publicly accessible
Built for broadcast professionals