Creating a Smart TV App
Creating a Smart TV App: The HbbTV Rabbit Hole
This is a relatively short post this week (which I'm sure some of you will be glad to hear!). We’ve been out working on the garden, and due to the massive amount of work it's taking just to get the ground level, I've not had as much time as I usually would to sit down and write.
Years ago, while studying for my degree, I was asked to investigate what it would take to set up a local radio station. The college had just appointed a new principal who was incredibly keen on the idea after having great success with a station at his previous campus. I loved the concept and dived straight into researching equipment, figuring out broadcasting licenses, and mapping out structural workflows. Unfortunately, right when I delivered my initial findings, the project was put on the back burner because the college merged with another education partnership.
Since then, all of that research has been kicking around in my head. Like many of my idle thoughts, it eventually took on a mind of its own. I started wondering: What if it wasn’t just a radio station? What if it was a full-on media publishing business run entirely by the community? Web, print, radio, podcasts, and even both live and prerecorded TV.
The Local Media Vacuum
We have massive commercial giants like Global and Bauer running things at a national level, but community-driven media is sparse. Around here, I only know of one community radio station (Beverley FM), and while independent podcasts are everywhere, local television has vanished.
Ever since Estuary TV closed its doors in Grimsby a few years back, we haven't had a true local station. We have Your TV, but that feels like a national network masquerading as local programming—highly similar to how Bauer and Global buy up heritage local radio stations, rebrand them to national formats like Hits Radio or Capital, and leave only a tiny fraction of the day for actual local content.
Naturally, this got me thinking about how people would actually tune into a modern community network. A centralized website feeding a mobile app and smart speaker skills would easily handle the text and radio elements.
But what about the television side?
Unlocking the TV: Freely vs. HbbTV
I initially had high hopes that Freely (the new internet-based service from Everyone TV, the team behind Freeview and Freesat) would be the answer. I assumed it would leverage an open IPTV protocol standard like DVB-I. I even dug into a few open-source DVB-I deployment projects, but the programming languages used went entirely over my head.
Worse yet, Freely is keeping its ecosystem locked down. Instead of launching standalone apps for accessible streaming boxes like the Apple TV or Google Chromecast, they are partnering exclusively with manufacturers like Vestel and Hisense to embed the software directly onto brand-new television sets. Forced hardware upgrades aren't a great strategy for standard consumers.
That brought me to HbbTV (Hybrid Broadband Broadcast TV)—the open standard running under the hood of most major Smart TV ecosystems.
How HbbTV Works:
[Smart TV Architecture] ──> [HbbTV Wrapper Layer] ──> Reads Standard Web Tech (HTML5 / CSS / JavaScript / PHP)
It turns out HbbTV applications are essentially customized websites optimized for TV viewports and remote control navigation. Testing this on my own Vestel-manufactured TV was surprisingly easy: you just put a basic .txt file containing your target URL onto a USB stick, plug it into the set, and the TV loads up the site as an interactive broadcast application.
The Tooling Trap
To speed things up, I started hunting for an application framework and stumbled on an official HbbTV PDF highlighting an open-source project called MPAT (Multi-Platform Application Toolkit). It was built on top of Bedrock, a highly structured WordPress boilerplate.
It sounded like the perfect framework, but when I tried compiling the stack on my development server, everything broke. After a day and a half of fixing broken dependencies and chasing deprecated library errors, I had to walk away until I could spend some dedicated time digging deeper into its old Compose files.
Because the repo is older, I'm determined to figure out how to containerize it safely. If I can successfully patch the source code to run reliably inside a modern Docker container, I will push the working environment to a public repository so anyone else building for HbbTV can actually use it.
A Live Proof of Concept
In the meantime, I used one of my personal holding domains—jabi.uk—to host a raw, handwritten test application. Right now, it displays a simple holding graphic alongside a live broadcast test card stream provided by the BBC’s R&D department.
- If you have a Vestel TV: You can load up the application right now using the USB method. Step-by-step instructions are published directly on the project landing page.
- If you don't have an HbbTV set: You can still load the URL up in your regular web browser or your television's built-in web browser to see how the basic frame behaves.
I'm going to keep chipping away at this interface. Do you think you could help me get MPAT running smoothly? Would you actually want to get involved in setting up an open community media network?
Drop your thoughts in the comments below, or find me on the socials!
