Think Asciinema, but for full coding sessions with audio, video, and images.
While replaying a session, you can pause at any point, explore the code in your own editor, modify it, and even run it. This makes following tutorials and understanding real codebases much more practical than watching a video.
Local first, and open source.
p.s. I’ve been working on this for a little over two years and would love to hear your thoughts.
EDIT: https://news.ycombinator.com/item?id=28207662
Seems this but with a slightly different spin?
EDIT2: Gave it a go. Works as intended, so good job on that. The video being a video, makes it a bit awkward though - if I stop the recording and edit some part, I'd want to see the changes live, but for that I guess I'd have to start the server myself? And when I hit play, my changes got deleted anyway (?).
As for the usefulness aspect, personally I am not sure that this has a benefit over e.g. watching youtube tutorials/following books. I watched one of the videos and I'd have to concentrate on the video, the text and audio at the same time, and it wouldn't be me typing the code anyway, so I'm not sure how much I'd remember of it. I'd have to stop, open a new project and try to rewrite it myself to memorize the concepts deeper. But that's just my personal take - might be that there's a big userbase for such interactive learning!
I do like YouTube video tutorials, but only as long as they're short. Watching Handmade Hero (by Casey Muratori) for example was a little frustrating: the videos are long, the codebase is large, things are moving fast, and I'd get lost.
I often wished I could pause the video to look up the definition of a function, or get an overview of when each file/line was edited and jump straight to that point.
Books/blogs are ok for explaining large codebases that already exist, but not for following a project as the code constantly changes. The book Crafting Interpreters did a really good job there, but that's really rare and hard to do.
I think CodeMic could be useful for this kind of long-form tutorials.
The difference is that CodeMic records and replays inside your editor, not on the web. Currently, only VSCode is supported, but the output is independent of VSCode, making it easy to bring it to other editors and even the web.
Another difference is that CodeMic is not focused on web development or any particular stack. It's more general.
Something like this might be a good middle ground (can't interrupt with questions, but can still step through changes). That said, I usually write a script and spin up Loom as the 5 minute limit forces me to keep it tight.
You may very well be right about the future. I won't argue. I just love the art of programming :)
https://github.com/computing-den/CodeMic
Wishing you luck for this project!
The best part is the ability to easily edit, delete, and re-order "tour points".
Tours can either be checked into the repo or exported to a "tour file" to allows anyone to replay the same tour (without having to clone any code to do it!)
Big fan of this project for this reason alone. I hope over the next few years we'll see this more and more not just as an implementation detail, but a public branding sentiment that like-minded coders, consumers or even (if we're living in fantasy-land) business clients can rally behind.