← Return

Useful

A Gift

During my downtime, awaiting US residency, completing courses had become my morning routine. I had a library of O'Reilly books and video courses gifted to me by the first team I managed.1 The majority of videos, I noticed, were narrated slides, having watched a few full courses on different topics.2 Every slide without an image to be described by the narration just had a transcript of the spoken audio.3

The text in the video was often something I needed to search or copy down, but there were no video notes.4 Hyperlinking from content in my browser required hand typing. I could mimic these videos with a web app, it occurred to me, and with infinite screen scaling, interactivity, and way lower bandwidth.5

A New Language

I had at one time experimented with creating minimal declarative languages, inspired by countless examples of document layout systems.6 I figured I could give this task to an LLM to design and write, as it's not super-easy to devise a tidy language and parser, and there's enough examples for one to have likely trained on the pattern.7

Features

The result was exactly what I had imagined, after iterating the workflow and export system. It includes some really nice features:

I created some pro-Useful propaganda to share on LinkedIn and such. My plan is to flesh out the project, create some more example videos, and use Useful for tutorials in future projects.

  1. It's a great gift, and I really enjoyed all the different topics I've been able to explore. ↩
  2. Occasionally, there might be a cut to the speaker, but I found this to be unnecessary filler. Also, some were narrated by TTS! ↩
  3. Motion graphics helped the visual, and occasionally the visual was the information itself (e.g. a photo, a diagram). ↩
  4. Not to mention streaming often bumps down your resolution if you have a slow connection - basically everything in the video becomes illegible, but video streaming platforms often don't offer an audio-only stream. I noticed this especially because the Internet service was choppy where I was living. ↩
  5. I had been experimenting with TTS and video generation. I'm surprised there's not a standard format for producing content this way. The bandwidth requirements for video are crazy and it's just not a great format for a lot of content. ↩
  6. I had created a variety of languages and parsers during a period where I was interested in hypertext and the markup that produces it. ↩
  7. And... the rest of the project as well. ↩
  8. I leveraged another project I created to serve as the TTS system. ↩
  9. You can copy the text right out of the "video" and fix incorrect content without having to re-cut and re-render anything: search and replace. ↩

That's all • Scroll to the top