The Public Service
<div align=“center”>
The Public Service
Open-source production toolkit for broadcast workflows
Build reliable, deterministic systems for live television and media production.
Quick Start · Documentation · Contributing
</div>
Features
- 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
Architecture
┌─────────────────────┐ ┌─────────────────────┐│ Google Sheets │ │ Studio PWA ││ (Familiar UI) │ │ (Touch Control) │└─────────┬───────────┘ └─────────┬───────────┘ │ │ ▼ ▼┌─────────────────────────────────────────────────┐│ Cloudflare Worker ││ (Validation · Conflict Handling) │└─────────────────────┬───────────────────────────┘ │ ▼┌─────────────────────────────────────────────────┐│ Supabase ││ (PostgreSQL · Realtime · Audit Trail) │└─────────────────────────────────────────────────┘Quick Start
Option 1: Google Sheets Only
- 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.
Option 2: Full Stack (Sheets + Supabase + Workers)
git clone https://github.com/FiLORUX/the-public-service.gitcd the-public-service
# Deploy the sync workercd workernpm installnpx wrangler deploy
# Run the studio app locallycd ../studio-appnpm installnpm run devSee DEPLOYMENT.md for production deployment.
Documentation
| 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 |
Built With
| 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 |
Contributing
Contributions are welcome. Please read the existing code to understand the conventions, then submit a pull request.
# Clone and set upgit clone https://github.com/FiLORUX/the-public-service.gitcd the-public-service
# For Apps Script developmentnpm install -g @google/claspclasp push
# For Worker developmentcd worker && npm run dev
# For Studio App developmentcd studio-app && npm run devLicence
MIT — use freely, modify freely, contribute back if you can.
Acknowledgements
- 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
<div align=“center”>
Built for broadcast professionals
</div>