r/technicalwriting • u/deegit_00 • 3d ago
RESOURCE Open source tool to keep video tutorials in your docs up to date
Screenshots go out of date, but video tutorials are worse. One UI change and the whole video is wrong, and re-recording with a voiceover takes hours.
DemoForge generates the video from a script. The clicks and narration live in a file, so after a UI change you run it again and get a fresh video with the same zooms and voiceover.
Free and open source (MIT): https://github.com/DixitRam/Demo-Forge
Would love to hear if this fits how docs teams work.
1
u/WriteOnceCutTwice 3d ago
I feel the pain that you’re trying to reduce here. One question: I haven’t tried exactly this scenario in existing tools (eg Claude Design). How is your tool better than others? I quickly looked at the repo and you’re using Claude. I’m just curious which parts I wouldn’t get without your tool. Thx
3
u/deegit_00 3d ago
Thanks! Claude isn't required, it's just an optional helper that can write the script for you. The parts you wouldn't get from Claude alone are the recording and the video.
Claude can write the steps, but DemoForge actually runs them on your real app, records sharp video, zooms in on every click using the real click positions, draws the cursor, plays the voiceover in sync with each step, and gives you an MP4. There's also an editor to fine-tune zooms and cuts. And when the UI changes, you just run the same script again.
1
u/Consistent-Branch-55 software 3d ago edited 3d ago
So it's just a wrapper around playwright, ffmpg, and text to speech APIs to explain a dashboard, because uh, it needed a video explanation?
(Edit: Oh I see there's an editor too, still feeling kind of cynical about people packaging playwright as their solution.)
1
u/Consistent-Branch-55 software 3d ago
Also, I'm just feeling cynical. Doesn't this just shift the work to maintaining your playwright selectors?
2
u/Desperate_Dot9434 3d ago
Curious how DemoForge handles branching flows, like when the same feature has a slightly different UI path depending on user role or plan tier. Is that something the script format can express, or does it need a separate script per variant?
1
u/Money-Remove-4604 3d ago
this is actually brilliant, the whole reshooting thing has been the exact reason my team avoids video tutorials like the plague
have you tried running it against something with rapid UI churn like a saas dashboard that changes every sprint? curious how the script handles elements that shift position or get renamed