Live Streaming Platform
A live streaming platform built with Laravel for Inclusive Digital and used by several of their clients: scheduled broadcasts, live chat, subscriptions and payments.
Contract work for Inclusive Digital, built with Laravel in 2018. A platform for running live broadcasts end to end, from scheduling them to charging for them, and not for one broadcaster: several of their clients ran their own programme and their own audience on it. Among them the Further Education Trust for Leadership, the British charity and independent think tank on leadership in further education, which used it for its webinars.
A live broadcast is not a video
An uploaded video is patient. It sits there, it is the same for everyone, and if something is wrong you fix it and upload it again. A live broadcast is the opposite: it happens at an hour, the whole audience arrives at once, and there is no second take.
That changes what the application has to be sure of, and when. The access check cannot be a slow lookup done once a day, because it runs for everybody in the same minute. The page a viewer lands on has to mean something before the broadcast exists, while it is running and after it has finished, and those are three different pages behind one address.
Several clients on one platform
The platform was not built around a single programme. Each client had their own broadcasts, their own audience and their own subscribers, all on the same installation.
That is the decision that shapes everything else. Every question stops being "can this viewer watch" and becomes "can this viewer watch this client's broadcast", and it has to hold for the schedule, for the archive, for the chat and for the money. A single place where the owner is not carried through is not a cosmetic bug: it is one client's subscriber getting into another client's room.
Paid access
Viewers subscribed and paid from the platform itself, so the application owned the plans, the payments and the entitlement they produce.
The interesting part is that entitlement is a live answer, not a stored flag. Someone can subscribe while the broadcast is already on air and has to get in from the next click, and someone whose payment has lapsed has to stop getting in, without the two of them being handled by different code.
The chat
The audience commented in real time while they watched, which makes the chat part of the broadcast and not a comment section under it. It only means anything if it stays in step with what is happening on screen, and it inherits every rule above: who is allowed to write, in whose room, and for how long that stays true.
Years later I built another streaming platform, this time for an equestrian broadcaster: H&C Streaming Portal, with its panel as the other half.