<?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: Yash oberio</title>
    <description>The latest articles on DEV Community by Yash oberio (@yash_oberio_dd70b64b7f609).</description>
    <link>https://dev.to/yash_oberio_dd70b64b7f609</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%2F4068666%2F622e094c-a4a0-466d-aca4-7aba4d0fd04c.jpg</url>
      <title>DEV Community: Yash oberio</title>
      <link>https://dev.to/yash_oberio_dd70b64b7f609</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yash_oberio_dd70b64b7f609"/>
    <language>en</language>
    <item>
      <title>I Built a Haunted Spirit Board That Talks Back (Hacktoberfest Week 4)</title>
      <dc:creator>Yash oberio</dc:creator>
      <pubDate>Tue, 27 Oct 2026 13:20:15 +0000</pubDate>
      <link>https://dev.to/yash_oberio_dd70b64b7f609/i-built-a-haunted-spirit-board-that-talks-back-hacktoberfest-week-4-ied</link>
      <guid>https://dev.to/yash_oberio_dd70b64b7f609/i-built-a-haunted-spirit-board-that-talks-back-hacktoberfest-week-4-ied</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week4-2026-10-26"&gt;Hacktoberfest Open-Source AI Challenge Week 4: Ghost in the Machine&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built Spooky Spirit Board — a browser-based AI horror experience that lets users summon a virtual ghost and ask it questions.&lt;/p&gt;

&lt;p&gt;The idea was to bring the classic spirit-board experience into the browser using AI, eerie background sounds, and creepy voice effects.&lt;/p&gt;

&lt;p&gt;Press Summon, ask a question, and see what the spirit has to say. 👀&lt;/p&gt;

&lt;p&gt;The goal was to create something more atmospheric than a regular chatbot — a small AI experiment that feels like a supernatural encounter.&lt;/p&gt;

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

&lt;p&gt;🌐 Live Demo: &lt;a href="https://www.machinehaunted.tech/" rel="noopener noreferrer"&gt;https://www.machinehaunted.tech/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;🎥 YouTube Walkthrough: &lt;a href="https://youtu.be/4dIK9k4LRrc" rel="noopener noreferrer"&gt;https://youtu.be/4dIK9k4LRrc&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/yashexc2002" rel="noopener noreferrer"&gt;
        yashexc2002
      &lt;/a&gt; / &lt;a href="https://github.com/yashexc2002/spooky-spirit-board" rel="noopener noreferrer"&gt;
        spooky-spirit-board
      &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;p&gt;This is a &lt;a href="https://nextjs.org" rel="nofollow noopener noreferrer"&gt;Next.js&lt;/a&gt; project bootstrapped with &lt;a href="https://nextjs.org/docs/app/api-reference/cli/create-next-app" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;create-next-app&lt;/code&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;First, run the development server:&lt;/p&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;npm run dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
yarn dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
pnpm dev
&lt;span class="pl-c"&gt;&lt;span class="pl-c"&gt;#&lt;/span&gt; or&lt;/span&gt;
bun dev&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Open &lt;a href="http://localhost:3000" rel="nofollow noopener noreferrer"&gt;http://localhost:3000&lt;/a&gt; with your browser to see the result.&lt;/p&gt;
&lt;p&gt;You can start editing the page by modifying &lt;code&gt;app/page.tsx&lt;/code&gt;. The page auto-updates as you edit the file.&lt;/p&gt;
&lt;p&gt;This project uses &lt;a href="https://nextjs.org/docs/app/building-your-application/optimizing/fonts" rel="nofollow noopener noreferrer"&gt;&lt;code&gt;next/font&lt;/code&gt;&lt;/a&gt; to automatically optimize and load &lt;a href="https://vercel.com/font" rel="nofollow noopener noreferrer"&gt;Geist&lt;/a&gt;, a new font family for Vercel.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Learn More&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;To learn more about Next.js, take a look at the following resources:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/docs" rel="nofollow noopener noreferrer"&gt;Next.js Documentation&lt;/a&gt; - learn about Next.js features and API.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://nextjs.org/learn" rel="nofollow noopener noreferrer"&gt;Learn Next.js&lt;/a&gt; - an interactive Next.js tutorial.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You can check out &lt;a href="https://github.com/vercel/next.js" rel="noopener noreferrer"&gt;the Next.js GitHub repository&lt;/a&gt; - your feedback and contributions are welcome!&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Deploy on Vercel&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;The easiest way to deploy your Next.js app is to use the &lt;a href="https://vercel.com/new?utm_medium=default-template&amp;amp;filter=next.js&amp;amp;utm_source=create-next-app&amp;amp;utm_campaign=create-next-app-readme" rel="nofollow noopener noreferrer"&gt;Vercel Platform&lt;/a&gt; from the creators of Next.js.&lt;/p&gt;
&lt;p&gt;Check out our &lt;a href="https://nextjs.org/docs/app/building-your-application/deploying" rel="nofollow noopener noreferrer"&gt;Next.js deployment documentation&lt;/a&gt; for more…&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/yashexc2002/spooky-spirit-board" 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;I built this project using a lightweight, browser-based AI approach:&lt;/p&gt;

&lt;p&gt;Framework: Next.js, React, TypeScript, and Tailwind CSS.&lt;/p&gt;

&lt;p&gt;AI Framework: Transformers.js.&lt;/p&gt;

&lt;p&gt;AI Model: Xenova/LaMini-Neo-125M.&lt;/p&gt;

&lt;p&gt;Inference: Web Workers keep model processing separate from the main UI thread.&lt;/p&gt;

&lt;p&gt;Audio: Web Audio API for the creepy atmosphere and sound effects.&lt;/p&gt;

&lt;p&gt;Deployment: Vercel with a custom .tech domain.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open-source AI gave me the freedom to experiment with models and customize how the ghost behaves without depending on a hosted, closed-model chat API for every response.&lt;/p&gt;

&lt;p&gt;Running inference in the browser also made this project a fun experiment in client-side AI.&lt;/p&gt;

&lt;p&gt;I could change the model, tune the generation settings, and build my own response-handling logic. The trade-off was clear: smaller models are faster for this experiment, but they don't always generate reliable answers.&lt;/p&gt;

&lt;p&gt;Open innovation gave me the flexibility to experiment, learn from failures, and build something creative with the tools available.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Spirit of It
&lt;/h2&gt;

&lt;p&gt;A normal chatbot answers questions. I wanted this one to make you hesitate before asking the next question.&lt;/p&gt;

&lt;p&gt;Combining AI, sound effects, and a dark atmosphere turned a small web development experiment into something much more fun to build.&lt;/p&gt;

&lt;p&gt;The machine isn't haunted. At least, that's what I keep telling myself.&lt;/p&gt;

&lt;p&gt;Give it a try — if you dare!&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I'm entering the Best Use of a .tech Domain category, provided my domain meets the challenge's eligibility requirements.&lt;/p&gt;

&lt;p&gt;🌐 &lt;a href="https://www.machinehaunted.tech/" rel="noopener noreferrer"&gt;https://www.machinehaunted.tech/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>hf26challenge</category>
    </item>
    <item>
      <title>🦥 I Built "Bed-Rot Coder" to Write Code Without Leaving My Bed (Hacktoberfest)</title>
      <dc:creator>Yash oberio</dc:creator>
      <pubDate>Fri, 23 Oct 2026 21:24:55 +0000</pubDate>
      <link>https://dev.to/yash_oberio_dd70b64b7f609/i-built-bed-rot-coder-to-write-code-without-leaving-my-bed-hacktoberfest-5el1</link>
      <guid>https://dev.to/yash_oberio_dd70b64b7f609/i-built-bed-rot-coder-to-write-code-without-leaving-my-bed-hacktoberfest-5el1</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-week3-2026-10-19"&gt;Hacktoberfest Open-Source AI Challenge Week 3: Slow and Steady&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I built the &lt;strong&gt;Bed-Rot Coder&lt;/strong&gt;—a voice-first, local AI coding agent designed for the ultimate lazy weekend. Why sit at a desk when you can code from your bed? &lt;/p&gt;

&lt;p&gt;Bed-Rot Coder allows developers to embrace "bed-rotting" without sacrificing their side-hustles. You simply press a button on your phone or laptop, speak your logic (e.g., &lt;em&gt;"Create a Python script to check if a number is even or odd"&lt;/em&gt;), and the AI transcribes your voice, processes the prompt, and streams the generated code directly to a sleek, dark-mode web console. No typing, no IDE setup, just pure, lazy productivity.&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/5LPhHe2oO6o" width="710" height="399"&gt;
  &lt;/iframe&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/yashexc2002" rel="noopener noreferrer"&gt;
        yashexc2002
      &lt;/a&gt; / &lt;a href="https://github.com/yashexc2002/bed-rot-coder" rel="noopener noreferrer"&gt;
        bed-rot-coder
      &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;p&gt;Markdown&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;🦥 Bed-Rot Coder&lt;/h1&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Speak your code. Stay in bed.&lt;/strong&gt;&lt;br&gt;
A Next.js full-stack voice-to-code AI agent for &lt;strong&gt;Hacktoberfest&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a href="https://nextjs.org/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/da97ee7ed99d8b973334fe0fe975226d4315a0d4dcd8a1becc828d371047f18c/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4e6578742e6a732d31362e342d626c61636b3f7374796c653d666c6174266c6f676f3d6e6578742e6a73" alt="Next.js"&gt;&lt;/a&gt;
&lt;a href="https://tailwindcss.com/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/7efb08b05d56101c25aefc3c1098c3fc7d746171a8d83d3560d5c514ccbc3d92/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5461696c77696e645f4353532d332e302d3338423241433f7374796c653d666c6174266c6f676f3d7461696c77696e642d637373" alt="Tailwind CSS"&gt;&lt;/a&gt;
&lt;a href="https://mastra.ai/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/4454f97922071711f26e40de3264f60b2462fc3a08f5109dc6111b1c23099b11/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4d61737472612d4167656e745f4672616d65776f726b2d626c75653f7374796c653d666c6174" alt="Mastra"&gt;&lt;/a&gt;
&lt;a href="https://ai.google.dev/" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/352bdd1fc0b9a4734d81e6166546386bc4bcabce2bc0e982ea60535921475ab5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f476f6f676c652d47656d696e695f41492d6f72616e67653f7374796c653d666c6174266c6f676f3d676f6f676c65" alt="Gemini"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🛌 The Concept: "Slow and Steady" Theme&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;Why should you even work on a desk? &lt;strong&gt;Bed-Rot Coder&lt;/strong&gt; was developed for developers that want to enjoy "bed-rotting" while still maintaining productivity. All you have to do is to hit record, speak out your logic (for example, &lt;em&gt;"Write a python script that calculates Fibonacci sequence"&lt;/em&gt;), and an AI will transcribe your voice, process your logic and produce your code within a sleek dark-mode console webpage.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;🎤 Voice-First User Interface:&lt;/strong&gt; No typing needed. Click, speak, and stop.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;⚡ Webpage-First Approach:&lt;/strong&gt; No need to store anything locally. Code is displayed right away on the UI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🧠 Agentic AI Logic Processing:&lt;/strong&gt; The Mastra Agent framework with Google Gemini (Flash) AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;🗣️ Accurate STT Integration:&lt;/strong&gt; Integrates with ElevenLabs &lt;code&gt;scribe_v1&lt;/code&gt; for perfect transcription of speech.&lt;/li&gt;
&lt;li&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/yashexc2002/bed-rot-coder" 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;I built this project using a modern, fast tech stack centered around open-source AI frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agent Framework:&lt;/strong&gt; &lt;strong&gt;Mastra&lt;/strong&gt; (&lt;code&gt;@mastra/core&lt;/code&gt;) orchestrated the entire AI logic.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;LLM Engine:&lt;/strong&gt; Google Gemini (&lt;code&gt;gemini-1.5-flash&lt;/code&gt;) via the Vercel AI SDK.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Transcription:&lt;/strong&gt; &lt;strong&gt;ElevenLabs&lt;/strong&gt; JS SDK (&lt;code&gt;scribe_v1&lt;/code&gt;) for flawless Speech-to-Text.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Frontend/Backend:&lt;/strong&gt; Next.js 16.4.3 (Turbopack), TypeScript, and Tailwind CSS.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Architectural Pivot:&lt;/strong&gt; &lt;br&gt;
Initially, I forced the Mastra agent to use a &lt;code&gt;write_file_tool&lt;/code&gt; to save the generated code locally. However, this caused massive latency (sometimes hanging for 10+ minutes) and unnecessary agent looping. I performed a surgical &lt;strong&gt;"Webpage-First"&lt;/strong&gt; pivot: I removed the disk-writing dependency, set the Mastra agent to &lt;code&gt;maxSteps: 1&lt;/code&gt; to prevent loops, and streamed the output directly to the UI. I also downgraded from &lt;code&gt;gemini-3.8-flash&lt;/code&gt; to &lt;code&gt;gemini-1.5-flash&lt;/code&gt; to gracefully handle Free Tier rate limits (429 errors).&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation was the only reason I could fix my latency issues. Because Mastra is an open-source framework, I wasn't locked into a black-box workflow. When I realized the disk-writing tool was slowing down my agent, I was able to inspect the agent's harness, completely rip out the tool, and re-wire the core loop to a single-step inference (&lt;code&gt;maxSteps: 1&lt;/code&gt;). &lt;/p&gt;

&lt;p&gt;An open-based approach allowed me to swap models instantly when I hit quota limits and completely customize how my agent behaves locally, keeping the processing fast and free.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lazy Payoff
&lt;/h2&gt;

&lt;p&gt;This project took my coding friction from 100% down to 10%. By squashing the initial 15-minute wait-time bug down to a 2-second generation time, I no longer have to get out of bed to test a quick logic idea. I actually used it this week to generate basic Next.js API boilerplates while literally laying down. Just click, speak, copy, and sleep!&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;p&gt;I am submitting this project for the following partner categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of Mastra&lt;/strong&gt; (Used &lt;code&gt;@mastra/core&lt;/code&gt; to orchestrate the AI agent logic and prompt execution)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Best Use of ElevenLabs&lt;/strong&gt; (Used the JS SDK and &lt;code&gt;scribe_v1&lt;/code&gt; to give the agent flawless voice-transcription capabilities)****&lt;/li&gt;
&lt;/ul&gt;

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