Expert marketplace with virtual classrooms for sharing knowledge
A marketplace of experts who share what they know in virtual classrooms: the expert publishes a page, an audience gathers around it, and the class runs in a room where video, files, notes and links sit side by side — with group video, chat, and the host deciding who speaks.
The challenge
Blacc Spot Media was building Wabi, a place where people who know something can teach it live. An expert publishes a page, an audience gathers around it, and the teaching happens in a room in the browser. The hard part was that room. In 2017 group video in the browser was still a fight, and a workshop is not a talking head: the host and everyone attending had to be in one room together, with material on the wall, files arriving, chat running, and someone deciding who speaks. Nothing could require an install, and the whole thing had to feel like one product rather than a directory with a video call bolted on.
Our approach
We built the room first, and the rest of the product around it. A workshop is a board of tiles — video, audio, images, notes, links — that the host drags into place; the layout is saved, so the next one starts from the last instead of an empty wall. Group voice and video run through a routed media server, so one more person in the room does not cost everyone else bandwidth, and the state of the room lives in the state store of the app itself, so it survives opening a sidebar or moving between tabs. Then the controls a live class needs: who may turn on a camera or microphone, how early people may enter, chat in the same room, files uploading into it with progress. Around the room sit the two builders the expert lives in — one for the page they publish, one for the events they schedule — and a catalogue of pages, categories, search, followers and reviews for the people looking for them. An event can also go out as a broadcast, recorded server-side and watchable on demand. Underneath, one relational model and a REST JSON API where every request is validated and every resource documents itself, deployed continuously to managed cloud instances.
The results
An expert gets a page of their own, an audience that follows it, and a room they actually run: everyone in it on video and audio, material on the wall, chat and files inside the room, and the host deciding who speaks — in the browser, with nothing to install. What they build is saved and reused, an event can go out as a recorded broadcast for anyone who missed it, and the catalogue underneath is searchable and reviewable. The same client brought us back for the telehealth product.
What we did
- Built the catalogue: expert pages, categories, search and recommendations, followers, subscribers and reviews
- Built the live room — a board of tiles for video, audio, images, notes and links that the host arranges, saves and loads again next time
- Built group video in the browser: joining and leaving a room, the attendee list, who is speaking, and the timer
- Gave the host control of the room — who may turn on a camera or microphone, who sees the controls, and how early people may enter
- Built the page and event builders: publishing a page, scheduling an event, setting its visibility and its room permissions
- Added broadcasting to an audience with server-side recording, so an event can be watched on demand afterwards
- Built the REST JSON API — 70+ routes across pages, events, messaging and the live rooms — with validation at the edge and documentation generated from it
- Modelled the relational database underneath: pages, events, subscribers, reviews and messages
- Built in-app mail and live chat, notifications over sockets, and the account email behind sign-up and verification
- Ran it in the cloud: media in object storage, continuous deployment to managed instances