<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: James Kingsley</title>
    <description>The latest articles on DEV Community by James Kingsley (@onenterframe).</description>
    <link>https://dev.to/onenterframe</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1334534%2F4316e3db-c3eb-46c5-8910-6fd8b875ac6a.jpeg</url>
      <title>DEV Community: James Kingsley</title>
      <link>https://dev.to/onenterframe</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/onenterframe"/>
    <language>en</language>
    <item>
      <title>🚀 Turning Videos into Interactive Courses with AI</title>
      <dc:creator>James Kingsley</dc:creator>
      <pubDate>Tue, 06 May 2025 17:06:31 +0000</pubDate>
      <link>https://dev.to/onenterframe/turning-videos-into-interactive-courses-with-ai-nh7</link>
      <guid>https://dev.to/onenterframe/turning-videos-into-interactive-courses-with-ai-nh7</guid>
      <description>&lt;p&gt;&lt;em&gt;How I built VidSabio.com by combining multiple LLMs into a robust processing pipeline&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I recently launched &lt;a href="https://vidsabio.com" rel="noopener noreferrer"&gt;&lt;strong&gt;VidSabio&lt;/strong&gt;&lt;/a&gt;, a platform that transforms ordinary videos into structured, interactive learning experiences — automatically. 🎥➡️📚&lt;/p&gt;

&lt;p&gt;But this didn’t come together overnight.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Trial, Error, and... More Trial
&lt;/h2&gt;

&lt;p&gt;At first, I thought a single LLM could handle everything: analyze the video, transcribe it, generate quizzes, build a course. Easy, right?&lt;/p&gt;

&lt;p&gt;Wrong.&lt;/p&gt;

&lt;p&gt;It turned out the real breakthrough came when I stopped looking for one model to do it all — and instead built a &lt;strong&gt;pipeline of specialized steps&lt;/strong&gt;, each powered by the best tool for that specific task.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧠 The Flow
&lt;/h2&gt;

&lt;p&gt;Here’s the high-level breakdown of how it works:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;User uploads a video&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Video is processed through a multi-step pipeline:&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;ul&gt;
&lt;li&gt;Frame extraction (FFmpeg)&lt;/li&gt;
&lt;li&gt;Audio transcription (Google Speech-to-Text)&lt;/li&gt;
&lt;li&gt;Visual analysis (Gemini / GPT-4 Vision)&lt;/li&gt;
&lt;li&gt;Content summarization + topic generation (Gemini Pro)&lt;/li&gt;
&lt;li&gt;Course structure generation (GPT-4)&lt;/li&gt;
&lt;li&gt;Interactivity injection (quizzes, accordions, etc.)

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Final course can be edited and exported as SCORM or HTML&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is all built using &lt;strong&gt;Vue 3&lt;/strong&gt;, &lt;strong&gt;Firebase&lt;/strong&gt;, and various &lt;strong&gt;LLMs (OpenAI + Gemini)&lt;/strong&gt; stitched together through Cloud Functions.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ The Magic Was in the Combo
&lt;/h2&gt;

&lt;p&gt;By distributing the heavy lifting across multiple LLMs and APIs, I was able to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Improve accuracy&lt;/li&gt;
&lt;li&gt;Scale more efficiently&lt;/li&gt;
&lt;li&gt;Debug and retry isolated steps&lt;/li&gt;
&lt;li&gt;Customize outputs based on step-level feedback&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔧 Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend&lt;/strong&gt;: Vue 3 + Tailwind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend&lt;/strong&gt;: Firebase Functions + Firestore + Storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI&lt;/strong&gt;: GPT-4.1, Gemini Pro, Whisper, Google Speech-to-Text&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analytics&lt;/strong&gt;: PostHog&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Export&lt;/strong&gt;: SCORM, HTML&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🔍 Visual Overview
&lt;/h2&gt;

&lt;p&gt;Here's a stylized diagram of the flow:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Insert your HappyAlien-styled image here)&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  💬 Final Thoughts
&lt;/h2&gt;

&lt;p&gt;This was built with plenty of detours, dead ends, and "aha" moments. If you're building with LLMs, I encourage you to explore &lt;strong&gt;multi-model orchestration&lt;/strong&gt; — it might be the key to your next breakthrough.&lt;/p&gt;

&lt;p&gt;Check it out: &lt;a href="https://vidsabio.com" rel="noopener noreferrer"&gt;&lt;strong&gt;https://vidsabio.com&lt;/strong&gt;&lt;/a&gt;&lt;br&gt;
Feel free to reach out if you’re curious or building something similar!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>🎨 Introducing GitVisualize – Turn Any GitHub README into AI-Generated Art</title>
      <dc:creator>James Kingsley</dc:creator>
      <pubDate>Tue, 06 May 2025 17:03:19 +0000</pubDate>
      <link>https://dev.to/onenterframe/introducing-gitvisualize-turn-any-github-readme-into-ai-generated-art-6fo</link>
      <guid>https://dev.to/onenterframe/introducing-gitvisualize-turn-any-github-readme-into-ai-generated-art-6fo</guid>
      <description>&lt;p&gt;Hey DEV community!&lt;/p&gt;

&lt;p&gt;I just launched a side project I’ve been tinkering with:&lt;br&gt;
👉 &lt;a href="https://gitvisualize-web.onrender.com/" rel="noopener noreferrer"&gt;&lt;strong&gt;GitVisualize&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It lets you paste in any &lt;strong&gt;public GitHub repo URL&lt;/strong&gt;, and it’ll generate a &lt;strong&gt;visual representation&lt;/strong&gt; of that project using OpenAI’s &lt;code&gt;gpt-image-1&lt;/code&gt; model — all based on the repo’s README content.&lt;/p&gt;




&lt;h2&gt;
  
  
  ✨ What it does
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Takes a GitHub repo URL&lt;/li&gt;
&lt;li&gt;Pulls the README&lt;/li&gt;
&lt;li&gt;Feeds it to an AI image model&lt;/li&gt;
&lt;li&gt;Displays the generated image alongside project metadata&lt;/li&gt;
&lt;li&gt;Adds it to a public gallery&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can even choose the &lt;strong&gt;image style&lt;/strong&gt; you want:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conceptual &amp;amp; Techy&lt;/li&gt;
&lt;li&gt;Infographic&lt;/li&gt;
&lt;li&gt;Abstract &amp;amp; Minimalist&lt;/li&gt;
&lt;li&gt;Direct &amp;amp; Clear&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It’s built with &lt;strong&gt;Vue 3 + Tailwind&lt;/strong&gt;, uses &lt;strong&gt;Supabase&lt;/strong&gt; for storage and data, and everything runs through a lightweight backend on Render.&lt;/p&gt;




&lt;h2&gt;
  
  
  🧪 Why I made this
&lt;/h2&gt;

&lt;p&gt;I love browsing GitHub, and I wondered:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What would this project &lt;em&gt;look like&lt;/em&gt; if it were a picture?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So I built GitVisualize as a fun experiment in combining AI, dev culture, and a bit of creativity. Some of the results are surprisingly expressive.&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠 Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Frontend:&lt;/strong&gt; Vue 3 + Tailwind&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backend:&lt;/strong&gt; Node/Express (Render)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;AI:&lt;/strong&gt; OpenAI &lt;code&gt;gpt-image-1&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Storage/DB:&lt;/strong&gt; Supabase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Design direction:&lt;/strong&gt; Lighthearted “Happy Alien” aesthetic 🛸&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  🖼 Try it out
&lt;/h2&gt;

&lt;p&gt;➡️ &lt;a href="https://gitvisualize-web.onrender.com/" rel="noopener noreferrer"&gt;https://gitvisualize-web.onrender.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste a repo, pick a style, and see what AI dreams up!&lt;/p&gt;

&lt;p&gt;I’d love feedback, ideas, or feature suggestions.&lt;br&gt;
And if you try it, drop your favorite generated image in the comments! 👇&lt;/p&gt;




&lt;h2&gt;
  
  
  🙌 Built with curiosity by
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;James Kingsley&lt;/strong&gt; – &lt;a href="https://happyalien.ai" rel="noopener noreferrer"&gt;HappyAlien.ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;#buildinpublic #sideproject #ai #webdev #openai #supabase #vue #showdev&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
