An Online Lecture Platform Actually Designed for Online Lectures

Or: Why and How I Built My Own Online Lecture System

Current options for large scale online lectures are not designed for lectures.

Zoom, Teams, and similar platforms are enterprise software. They’re built for business meetings. Lectures are not business meetings. Especially when they are for large groups, they involve a very different, and very particular relationship between ‘presenter’ and ‘attendees’.

Livestreaming via YouTube (or Twitch) is actually kind of nice. It can be very engaging. But it places the lecture in a commercial context and surrounds it with distractions.

A big advantage of streaming, however, is the control you have over what is in the video, switching between fullscreen webcam image, an overhead camera, fullscreen slides and/or other visual aids, and picture-in-picture views. (Although this can be replicated in any web conference system using a virtual webcam.)

BigBlueButton is an appealing alternative in many cases. It’s built specifically for teaching. And a number of features are very nice:

  • There is no software to install, it works via the browser.
  • It is not necessary to register an account.
  • You can start a poll at any time, no preparation or set-up necessary (both multiple choice and open questions are possible).
  • No ads, no surveillance. BigBlueButton is a public resource. It’s safe, free, and open source. It can be hosted internally by any institution.

However, despite being developed specifically as a tool for teachers, the basic architecture of BigBlueButton is still similar to Zoom and Teams: there are webcam windows, a presentation area (screen share), options for things like ‘raise your hand’, and a chat. BigBlueButton also explicitly tries to be ‘a virtual classroom’, not ‘an online lecture hall’. It isn’t built for large scale lectures, with one teacher and hundreds of students.

Chat is evil

All the existing platforms have one big problem in common. They all include a major source of divided attention: the chat. This can be disabled or set up so that students can only message the teacher directly (privately), but that is not common practice. And in any case, the chat keeps takes up screen real estate. Often, even if the chat is hidden, the systems keeps on displaying alerts when new messages arive, distracting students.

And for a teacher giving a lecture to hundreds of students, monitoring a lively chatbox with active and engaged students responding to each other’s ideas and questions is, to put it mildly, challenging.

I built my own online lecture platform!

I hacked together an attempt at something better using an embedded Twitch stream and some very rudimentary code. It’s a simple html/css/js webpage and some basic php/mysql on the server side. That’s what I know, so that’s what I used. Why Twitch? Because that was the easiest streaming service to embed.

It’s a rough prototype. But it’s wonderful.

Some screenshots:

Me in my study welcoming students to a lecture on my self-built prototype. Below the stream are buttons for answering multiple choice questions and polls and a textbox to send one-way chat messages.
Because I stream my lectures using OBS Studio, I can switch between a number of scenes, including a full-screen overhead view of my sketchpad. (This is a good idea.)
I can show live poll results by pulling a little dashboard web-page into the stream/video.
My chat dashboard looks just like a regular chat window. The difference is that I am the only one who sees everything. Students don’t see each other’s messages. If I want to make the chat public, I can include this window (or an anonymous version without names) in the stream/video.

What do I like about my prototype?

There is no unnecessary visual clutter on my students’ screens, making it easier to stay focused.

Students don’t have to install any software and they don’t need an account. They are asked for their name, but they can also participate anonymously.

I have full control over what appears in the video feed via my streaming software (OBS). I can switch between different ‘scenes’, including an overhead camera and a full-screen view of my slides or screen so that I can effectively direct students’ attention to the material I want them to consider.

My face does not need to be on-screen in a little box the whole time. (Being visible at all times is not necessary and it can be unnessarily distracting.) But I can also, when I want, switch to showing just my webcam video and talk straight into the camera to engage students, to make it easier for them to keep paying attention, and to foster a sense of connection.

Students are able to type messages to me like in a regular chatbox, and I have a chatbox where I receive all those messages that looks just like in a regular chatbox. But those messages are one-way. Students do not see – and so they are not distracted by – each other’s chat messages.

Students can answer questions and polls right there in the same screen as where they are watching the lecture. Because I don’t need to use a seperate polling app, I don’t have to send them a link, and they don’t have to switch between devices or browser tabs. Answering a poll is literally a one-click affair. When I want to ask a question, I just do it, and point downwards to aks them to type an answer.

The delay on the embedded Twitch stream is negligable (below 5 seconds) so we can really have smooth real-time interaction with minimal friction.

It’s wonderful.

Student reactions

I tried this out in a second year BSc course with 90 students in april/may 2021. After the first of three lectures in that course, as part of my closing ‘miniquiz & feedback’ form, I asked them what they thought.

Some quotes (translated from Dutch):

Really very nice. Especially the anonymous chat and the level of professionalism. Really fun to watch and easy to participate. Perhaps the best online lecture ever!

Truly a mega chill platform, it was very nice to follow a lecture this way, few distractions so it was easy to keep paying attention.

One student was a bit confused. They probably joined late and missed my introduction/explanation of the system:

I couldn’t see the chat myself but I don’t know whether that was a problem on my side or whether this was the case for everyone.

There were also one or two remarks from students who missed seeing their peers’ answers or being able to ask questions via audio.

Out of 45 responses, 39 rated it 5/5, and 6 gave it a 4/5.

I’m gonna say that’s a positive response.

Ideas for further development

I am not a web developer and I don’t think I will be able to build this out into something I’d feel comfortable for other people to use. Let alone develop it into a robust, public platform.

A number of basic functionalities are missing, like students being able to put in their name after dismissing the initial prompt, the possibility to set up ‘rooms’ for different lecturers than myself, automatically deleting messages and other user data, etcetera.

I want to add a fullscreen option. Not to make the video itself fullscreen, but for the ‘app’ as a whole, so that there really is nothing else on screen than the lecture, the buttons for answering polls and the chatbox.

I’m not completely happy with the layout either. Especially on small but wide screens, the video is too small and the buttons take up too much space. I like having the buttons in a fixed place relative to the video, however, so that I can point down when I want students to comment in the same way that people on YouTube do when they ask people to comment (‘down there!’).

In a proper product, perhaps I’d want to have answer options pop up when I ask a question instead of always being on the students’ screen. Polls and questions could work like they do in BigBlueButton. But this requires a two-way connection with the server (a websocket or something). And the current prototype is basically just an interface to send simple text messages to a server with user-initiated AJAX requests. So stuff like this would require a rebuild (and for me to learn some new things).

Perhaps it would even be good to include a traditional chat like the one on a YouTube livestream or in a Zoom meeting, but to give the teacher a button to toggle the public chat on and off, to switch between many-to-many and many-to-one chat. Sometimes it would also be nice to be able to write back to a student (privately, 1-to-1) so that you don’t have to say ‘I saw your question, Miryam, I’ll come back to it in a few minutes.’ in the livestream.

Finally, a big disadvantage of the current prototype compared with BigBlueButton, Zoom, Teams, or anything with a public chatbox and/or list of participants is that students cannot see each other at all. This is only possible now by putting my window with students’ chat messages into the livestream. I have an anonymous version of my dashboard page without students’ names, specifically for this purpose. But it’s not ideal. It introduces the 4-5 second delay of the stream of course, plus it means one more window to alt-tab through in my already extensive list of open windows during lectures and presentations.


I really think I’m onto something here.

My prototype makes it much easier for me to give engaging online lectures than using any of the existing options, none of which were designed specifically for this purpose.

The combination of doing everything within the frame of a streaming video, near-real-time interaction, and not needing to send students elsewhere for polls or exercises, allows me to effectively direct students’ attention.

The lack of on-screen distractions makes it much easier for students to stay focussed and it makes it impossible for them to disrupt each other’s focus.