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:
- Custom voice for TTS8
- Plugin system for JavaScript
- Export as PWA
- Auto-layout and basic animations
- Video-like interface
- Interactive visuals9
- Stream-based playback
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.
- It's a great gift, and I really enjoyed all the different topics I've been able to explore. ↩
- Occasionally, there might be a cut to the speaker, but I found this to be unnecessary filler. Also, some were narrated by TTS! ↩
- Motion graphics helped the visual, and occasionally the visual was the information itself (e.g. a photo, a diagram). ↩
- 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. ↩
- 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. ↩
- I had created a variety of languages and parsers during a period where I was interested in hypertext and the markup that produces it. ↩
- And... the rest of the project as well. ↩
- I leveraged another project I created to serve as the TTS system. ↩
- 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. ↩