<?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: Kritiraj</title>
    <description>The latest articles on DEV Community by Kritiraj (@wkkny).</description>
    <link>https://dev.to/wkkny</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4154600%2F9bb0b8a5-d620-45cf-b20d-6fb6fbed2a7b.jpg</url>
      <title>DEV Community: Kritiraj</title>
      <link>https://dev.to/wkkny</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wkkny"/>
    <language>en</language>
    <item>
      <title>Hacktoberfest Weekend: Build for a Friend Challenge.</title>
      <dc:creator>Kritiraj</dc:creator>
      <pubDate>Mon, 05 Oct 2026 03:52:50 +0000</pubDate>
      <link>https://dev.to/wkkny/hacktoberfest-weekend-build-for-a-friend-challenge-1jjj</link>
      <guid>https://dev.to/wkkny/hacktoberfest-weekend-build-for-a-friend-challenge-1jjj</guid>
      <description>&lt;h2&gt;
  
  
  OutLoud: learning by talking it through
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-01"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I built
&lt;/h2&gt;

&lt;p&gt;A friend of mine learns by talking ideas through, but doesn’t use AI much. Most AI chats start with typing a prompt, which doesn’t fit how she likes to learn. I built OutLoud so she can explain a topic aloud, review the transcript, and continue the conversation with a local model.&lt;/p&gt;

&lt;p&gt;You can explain a topic out loud, then read and edit the transcript before it goes anywhere. Stopping a recording only creates a draft. You decide when to send it.&lt;/p&gt;

&lt;p&gt;Study mode lets you set up a subject, add a syllabus and reference material, and work through topics. As you explain ideas and answer follow-up questions, OutLoud saves evidence of your understanding and topics to revisit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://drive.google.com/file/d/1JjboyLgrYaJ42dDwwVtQ_AhKP-p9zq3L/view?usp=sharing" rel="noopener noreferrer"&gt;Watch the demo video&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/wkkny" rel="noopener noreferrer"&gt;
        wkkny
      &lt;/a&gt; / &lt;a href="https://github.com/wkkny/OutLoud" rel="noopener noreferrer"&gt;
        OutLoud
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;OutLoud&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;OutLoud is a local, voice-first chat and study app. It has a browser UI and an
Electron development app. A Python backend records audio from the computer's
microphone, transcribes it with Whisper, and saves the transcript into the
selected conversation's editable draft. &lt;strong&gt;A transcript is never sent
automatically:&lt;/strong&gt; review it, then choose Send to get a streamed reply from the
local Gemma model through Ollama.&lt;/p&gt;
&lt;p&gt;The app runs its servers on loopback (&lt;code&gt;127.0.0.1&lt;/code&gt;). It is designed for one
computer, not as a hosted or network-accessible service. The browser and desktop
apps use separate local data stores.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick start&lt;/h2&gt;
&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h3 class="heading-element"&gt;1. Install prerequisites&lt;/h3&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.11&lt;/strong&gt;. The repository pins it in &lt;code&gt;.python-version&lt;/code&gt; and &lt;code&gt;mise.toml&lt;/code&gt;
If you use &lt;a href="https://mise.jdx.dev/" rel="nofollow noopener noreferrer"&gt;mise&lt;/a&gt;, run &lt;code&gt;mise install&lt;/code&gt; from the repo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;uv&lt;/strong&gt; for Python environment and dependency management:
&lt;a href="https://docs.astral.sh/uv/getting-started/installation/" rel="nofollow noopener noreferrer"&gt;install uv&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bun 1.4.2&lt;/strong&gt; for JavaScript dependencies and workspace commands:
&lt;a href="https://bun.sh/docs/installation" rel="nofollow noopener noreferrer"&gt;install Bun&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Node.js 22.12+&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/wkkny/OutLoud" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  How I built it
&lt;/h2&gt;

&lt;p&gt;OutLoud uses Whisper to transcribe speech and Gemma 3 (&lt;code&gt;gemma3:4b&lt;/code&gt;) for chat and study responses. Whisper runs in the Python backend. Gemma runs locally through Ollama.&lt;/p&gt;

&lt;p&gt;The web app is built with React, TypeScript, and Vite. A Python backend handles recording, transcription, and chat. Conversations, drafts, and study progress are saved in a local SQLite database. There’s also an Electron development app that runs the same interface with a managed backend.&lt;/p&gt;

&lt;p&gt;The flow:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Speak → Whisper transcribes → review and edit → send → Gemma responds
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;I wanted a clear pause between speaking and sending. A transcript can have mistakes, and sometimes you want to change what you said before asking a model about it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why open innovation matters
&lt;/h2&gt;

&lt;p&gt;The local models are a good fit for this app. A spoken study session doesn’t need to go to a hosted inference API, and there’s no per-request model API bill. Once the models are installed, transcription and chat run on the user’s computer.&lt;/p&gt;

&lt;p&gt;That does mean setup takes a little work, and the computer needs enough resources to run the models. Local models also make mistakes. I see OutLoud as a study aid, so its feedback should be checked against the course material.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Gemma:&lt;/strong&gt; OutLoud uses Gemma 3 locally through Ollama to respond to reviewed explanations and support study conversations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of GitHub Copilot:&lt;/strong&gt; This category includes project automation with GitHub Actions. OutLoud’s pull-request workflow validates the web app and runs backend and desktop checks across Linux, Windows, and macOS.&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
    </item>
  </channel>
</rss>
