# KoiStream

A livestream platform that kept my high school’s community meetings going through COVID. Each weekly broadcast reached 300 to 500 viewers, essentially the whole school.

- Role: Director & Full-Stack Developer
- Dates: March 2020 – June 2021
- Status: Archived
- Stack: FFmpeg, AWS MediaLive, Amazon CloudFront
- Page: https://jlawrence.io/projects/koistream

## Highlights

- Built a live streaming platform with viewing, chatting and moderation
- Delivered HD video through FFmpeg, AWS MediaLive and Amazon CloudFront
- Built a full broadcasting studio on campus with high-grade production equipment

## Why we built it

COVID hit in March of my junior year at Design Tech High School, and my whole senior year was online. The school's community meetings couldn't happen in person any more. A good friend and I decided to build our own livestream platform so the whole school could keep meeting. We called it KoiStream because koi are a big thing at d.tech. They grow to the size of their pond.

## What I built

I wrote the website. You signed in with Google and landed on the watch page, with the player on one side and the chat on the other. Chat messages were capped at 100 characters, with a five-second wait between them and a filter for bad words.

![The watch page with its chat, from the January 2021 code running locally with sample data.](https://jlawrence.io/stories/koistream/watch.webp)

Moderators watched on the same page with extra buttons on every message, so they could delete it or mute the person who sent it. From a separate dashboard the crew set the episode's title and could turn the stream, the chat or slow mode on and off for everyone at once. Later in the fall I added polls that popped up for every viewer.

![Stream Controls, where the crew set the title and switched the stream, chat and slow mode on and off (sample data).](https://jlawrence.io/stories/koistream/admin-stream.webp)

In August 2020 I moved the video onto AWS MediaLive and Amazon CloudFront. Together with FFmpeg, that's what delivered the stream in HD.

## How it went

Once KoiStream was running, over the summer we pitched the school on a real broadcasting studio, with cameras, audio and video switching. The school approved it and paid for it. I was cutting a hole in the wall when the principal walked by and asked, "Do you know what you're doing?" I said, "Yeah, I've got this."

We formed a team of ten students and ran live broadcasts every week through senior year, including an awards show for the whole school at the end of 2020. Each stream reached 300 to 500 viewers, which was essentially the entire high school. The studio is still there for students to use.

## What I took from it

No other school would have let a student do something that hands-on, fishing cables through walls and building a server rack. I'd been hesitant to pitch my own ideas when I got to d.tech. By senior year I was pitching and leading large projects like this one.
