Hi FreeCodeCamp team,
I’m building a small “algorithm lecturer” script for personal use that extracts lesson text and reads it aloud (AI voice, subtitles + codeblocks in a separate window). I learn dramatically better with audio support, long text-only lessons are hard for me to process consistently without it (Thank you, Tiktok).
Previously, the video format made FreeCodeCamp my go-to learning platform. With videos gone, I’m trying to recreate a similar learning flow on my own so I can keep studying here instead of bouncing between platforms.
Right now, the only reliable selectors I can use are things like data-playwright-test-label, which I understand are intended for testing and may change or disappear at any time. Rebuilding the script every time the DOM shifts would make this pretty fragile.
Dev request: would it be possible to expose more “stable hooks” for lesson content, such as:
- Semantic classes (e.g.
<article class="lesson-content">) - Stable data attributes (e.g.
data-lesson-id="slug") - Consistent JS IDs (
lessonContent,lessonTitle) - Or, ideally, a lightweight lesson content API
This wouldn’t be used for scraping or redistribution, purely as a personal learning aid to make the platform more accessible to different learning styles.
Why not browser readers?
- Default TTS voices are hard to listen to for long study sessions
- Poor UX around code blocks (they get read code line-by-line, which disrupts learning flow)
- The friction adds up quickly and makes it hard to stay consistent
I really want to keep learning on FreeCodeCamp. The structure you’ve built is still one of the best out there, I’m just trying to adapt to the new format in a way that works for me.
Thanks for all the work you do, and for considering this request.
Best Regards, Futuraura