The gist: build an app that allows users to upload videos that others can watch on the web.

Essentially a YouTube clone! Videos can be challenging because of their large file size and various file type support needs across browsers and operating systems. Also, hosting them can be expensive. So it's totally okay to just store the uploaded files locally on your computer for this learning project.


  • Sign up for an account
  • Upload videos with a title, file, and description
  • Use ffmpeg or something similar to convert any given video file into a consistently supported one like mp4
  • Render web pages for people to watch videos


  • Processing large files, specifically videos
  • Hosting files, then rendering them
  • GUI for playing the media in the browser
  • Authentication


  • YouTube
  • TikTok

Extra Credit

  • Explore and experiment with different approaches to streaming the data (I don't know too much about this but would like to learn!)
  • Limit videos to a specific size or length
  • Encode videos into multiple resolutions

See Also