Inspiration
Learning something new online usually means ten tabs open — a YouTube video that's years old, a blog post missing the one step you actually needed, a doc written for someone who already knows half the material. Even when you find something relevant, it rarely matches where you're actually starting from.
And most tutorials share a deeper problem: they show you a finished result and narrate it after the fact. You watch, you nod, you feel like you understood it — then you try to build it yourself and realize you never actually watched anything get built. You watched someone perform having already built it.
We wanted something different: describe what you want to learn and where you're starting from, and get a real lesson made for exactly that — not the closest thing a search happened to turn up.
What it does
You type in what you want to learn and your skill level. LearnForge AI generates a video: a real explanation, narrated aloud, with the content appearing on screen in sync with that narration, captioned the whole way through.
Every generated video goes into a public library, where anyone can find it, watch it, like it, comment on it, and bookmark it. A lesson made once for one person's request doesn't disappear after they watch it — it's there for the next person who needs the same thing.
How we built it
The frontend runs on Next.js, TypeScript, and Tailwind CSS. Firebase handles authentication, storage, and the library's social features — likes, comments, bookmarks. Google Cloud and the Gemini API power generation: Gemini plans and writes the explanation for a given request, and that's what gets narrated and synced into the final video. Deployed on Vercel.
The real engineering problem wasn't generating an explanation — that part's straightforward. It was getting narration, on-screen content, and captions to actually line up so it feels like one continuous lesson instead of three separate pieces stitched together.
Challenges we ran into
Sync was the hardest part. A model can produce a correct explanation easily. Getting the voice, the visuals, and the captions to feel genuinely aligned — not just technically matched — took real iteration. A video where the narration is even slightly off from what's on screen stops feeling like a lesson and starts feeling like a glitch, and that's the kind of thing that's obvious the second you watch it back.
We also had to make sure generated lessons actually matched the skill level someone specified, instead of defaulting to a one-size-fits-most explanation regardless of what was asked for.
Accomplishments that we're proud of
Type in something you want to learn, and minutes later there's a real narrated video of it — built at your level, captioned, ready to watch — that didn't exist anywhere until you asked for it. Getting that loop to actually work end to end, and feel like a lesson rather than a slideshow with a voiceover, is what we're proudest of.
We're also proud of the library. LearnForge AI isn't something you use once and forget — it's a growing place where lessons stick around and get found by other people who need them.
What we learned
Generating a correct explanation turned out to be the easy part. Making it feel like an actual lesson — paced right, synced right, captioned so it reads naturally — is where almost all the real work lives. We came out of this with a lot more respect for what makes a good teacher good, because we spent most of our time trying to get a model to do a rough version of it.
What's next for creatorFlow
Letting people take a lesson already in the library and regenerate it adapted to their own level, instead of only browsing what's there. A short practice check after each lesson, so watching turns into some form of doing. A record of what someone's already watched, so the library starts to feel like a path instead of a feed. The ability to pause a video mid-lesson and ask a question about what's on screen.
Built With
- ai
- gemini
- neon
- nextjs
- postgrelsql
- prisma
- remotion
- tailwindcss
- typescript
- vercel
- voice
Log in or sign up for Devpost to join the conversation.