<?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>Forem: Kishor Ramani</title>
    <description>The latest articles on Forem by Kishor Ramani (@kishorramani).</description>
    <link>https://forem.com/kishorramani</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%2F3550508%2Fc7bcd810-1abc-431e-ae72-9fe037429301.jpg</url>
      <title>Forem: Kishor Ramani</title>
      <link>https://forem.com/kishorramani</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kishorramani"/>
    <language>en</language>
    <item>
      <title>Building a Horror Meditation App in 4 Hours with Kiro: A Frankenstein Story</title>
      <dc:creator>Kishor Ramani</dc:creator>
      <pubDate>Fri, 28 Nov 2025 23:43:41 +0000</pubDate>
      <link>https://forem.com/kishorramani/building-a-horror-meditation-app-in-4-hours-with-kiro-a-frankenstein-story-3p7k</link>
      <guid>https://forem.com/kishorramani/building-a-horror-meditation-app-in-4-hours-with-kiro-a-frankenstein-story-3p7k</guid>
      <description>&lt;p&gt;&lt;em&gt;How I stitched together wellness and horror into one app using AI-assisted development&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge
&lt;/h2&gt;

&lt;p&gt;When I saw the Kiroween hackathon's &lt;strong&gt;Frankenstein category&lt;/strong&gt; - "Stitch together seemingly incompatible elements into something unexpectedly powerful" - one question immediately came to mind:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What if meditation... but make it scary?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Meditation apps are all about peace, calm, and serenity. Horror is about fear, tension, and chaos. They're complete opposites. Perfect for a Frankenstein chimera.&lt;/p&gt;

&lt;p&gt;Thus, &lt;strong&gt;Meditate the Fear&lt;/strong&gt; was born: a meditation app that starts peaceful but transforms into a horror challenge. Can you maintain mindfulness while being terrorized? Let's find out.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Kiro Difference
&lt;/h2&gt;

&lt;p&gt;I've used ChatGPT, Claude, and Copilot before. But &lt;strong&gt;Kiro&lt;/strong&gt; is different. Here's why this project worked:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Steering Documents Changed Everything
&lt;/h3&gt;

&lt;p&gt;In the first 5 minutes, I created three simple markdown files in &lt;code&gt;.kiro/steering/&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;product.md:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;A mobile-first meditation app with a horror subversion twist. 
Starts peaceful, transforms into horror after 10 seconds.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;tech.md:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;-&lt;/span&gt; React 18+ with hooks
&lt;span class="p"&gt;-&lt;/span&gt; Tailwind CSS
&lt;span class="p"&gt;-&lt;/span&gt; Vite
&lt;span class="p"&gt;-&lt;/span&gt; Mobile-first
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;structure.md:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;/src/App.jsx - Main component
/public/sounds/ - Audio files
/public/images/ - Horror images
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;The magic?&lt;/strong&gt; Kiro referenced these docs in &lt;strong&gt;every single response&lt;/strong&gt; across 130+ messages. It never forgot:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;We were building a horror meditation app&lt;/li&gt;
&lt;li&gt;We were targeting Kiroween&lt;/li&gt;
&lt;li&gt;We were using React + Tailwind&lt;/li&gt;
&lt;li&gt;We were mobile-first&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No other AI tool maintains context like this. With ChatGPT, I'd be re-explaining the concept every 10 messages.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Vibe Coding is Faster Than You Think
&lt;/h3&gt;

&lt;p&gt;I didn't write a single line of code. Everything was conversational:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; "Add difficulty levels"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro:&lt;/strong&gt; &lt;em&gt;Generates 4 difficulty modes (Peaceful, Normal, Nightmare, Hell Mode) with different horror timing intervals, updates UI with emoji icons, adds selection screen&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; "Make it more Halloween themed"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro:&lt;/strong&gt; &lt;em&gt;Redesigns entire UI with orange/purple/black colors, adds glowing effects, pumpkin emojis, backdrop blur&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Me:&lt;/strong&gt; "The horror sound is only 2 seconds but screen shows for 5 seconds"&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Kiro:&lt;/strong&gt; &lt;em&gt;Adds audio looping during horror events, implements smooth fade-out when returning to calm&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Each feature took 2-5 minutes. No debugging. No Stack Overflow. Just conversation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Build Process
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Hour 1: Foundation
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Basic meditation timer&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Me: Build a mobile-first meditation app with React, Tailwind, 
    and a timer countdown.

Kiro: *scaffolds complete project*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; Working meditation timer with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 18 + Vite + Tailwind&lt;/li&gt;
&lt;li&gt;Countdown timer&lt;/li&gt;
&lt;li&gt;Start/pause buttons&lt;/li&gt;
&lt;li&gt;Responsive mobile design&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 2: The Horror Twist
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Add the Frankenstein element&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Me: After 10 seconds, show scary images, play horror sounds, 
    and display threatening messages at random intervals.

Kiro: *implements dual audio system, horror events, image overlays*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;6 meditation sounds (rain, birds, bells)&lt;/li&gt;
&lt;li&gt;33 horror sounds (screams, whispers, static)&lt;/li&gt;
&lt;li&gt;18 horror images&lt;/li&gt;
&lt;li&gt;Random horror events every 5-15 seconds&lt;/li&gt;
&lt;li&gt;Dual audio system (calm + horror)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The impressive part?&lt;/strong&gt; Kiro generated a sophisticated audio management system:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Meditation sound loops continuously&lt;/span&gt;
&lt;span class="nx"&gt;calmAudioRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="c1"&gt;// Horror sound loops during event, fades out after&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;triggerHorrorEvent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;setHorrorMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="nf"&gt;playHorrorSound&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// loops&lt;/span&gt;

  &lt;span class="nf"&gt;setTimeout&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;setHorrorMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="nf"&gt;fadeOutHorrorSound&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="c1"&gt;// smooth transition&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="nx"&gt;randomDelay&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This handles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Two independent audio streams&lt;/li&gt;
&lt;li&gt;Looping and volume control&lt;/li&gt;
&lt;li&gt;Smooth transitions&lt;/li&gt;
&lt;li&gt;Memory leak prevention&lt;/li&gt;
&lt;li&gt;Pause/resume for both streams&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All from natural conversation. No audio engineering degree required.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hour 3: Gamification
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Make it replayable&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Me: Add difficulty levels, session stats, achievements, 
    and social sharing.

Kiro: *implements complete gamification system*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;4 Difficulty Levels:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;😌 Peaceful: Horror after 30s, every 15-30s&lt;/li&gt;
&lt;li&gt;😰 Normal: Horror after 10s, every 5-15s&lt;/li&gt;
&lt;li&gt;😱 Nightmare: Horror after 5s, every 3-8s&lt;/li&gt;
&lt;li&gt;💀 Hell Mode: Horror after 3s, every 1-3s&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Session Stats:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Scares survived&lt;/li&gt;
&lt;li&gt;Fear score (0-10)&lt;/li&gt;
&lt;li&gt;Longest calm streak&lt;/li&gt;
&lt;li&gt;Pause count&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Achievements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🧘 Zen Master (no pauses)&lt;/li&gt;
&lt;li&gt;👻 Fearless (15 min session)&lt;/li&gt;
&lt;li&gt;💀 Hell Survivor (Hell Mode)&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Share Feature:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"I survived 5 minutes of horror meditation! 🎃"&lt;/li&gt;
&lt;li&gt;Native share API on mobile&lt;/li&gt;
&lt;li&gt;Clipboard fallback on desktop&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Hour 4: Mobile + Polish
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Goal:&lt;/strong&gt; Native Android app&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conversation:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Me: Make this work on Android phones.

Kiro: *sets up Capacitor, configures network, builds APK*
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Capacitor Android wrapper&lt;/li&gt;
&lt;li&gt;Native APK build&lt;/li&gt;
&lt;li&gt;Vite network configuration&lt;/li&gt;
&lt;li&gt;Touch-optimized UI&lt;/li&gt;
&lt;li&gt;Vibration on horror events&lt;/li&gt;
&lt;li&gt;PWA capabilities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Then polish:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fixed message text wrapping&lt;/li&gt;
&lt;li&gt;Improved pause/resume behavior&lt;/li&gt;
&lt;li&gt;Optimized audio synchronization&lt;/li&gt;
&lt;li&gt;Added breathing guide&lt;/li&gt;
&lt;li&gt;Halloween theme refinement&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Technical Challenges
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Challenge 1: Audio Synchronization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Horror sounds were 1-2 seconds, but horror screen lasted 3-6 seconds. Result: silent horror screen.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// Make horror sounds loop during event&lt;/span&gt;
&lt;span class="nx"&gt;currentHorrorAudioRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;loop&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;

&lt;span class="c1"&gt;// Fade out when returning to calm&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fadeOutHorrorSound&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fadeSteps&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;fadeInterval&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;50&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;volumeStep&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;currentVolume&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nx"&gt;fadeSteps&lt;/span&gt;

  &lt;span class="nf"&gt;setInterval&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;volume&lt;/span&gt; &lt;span class="o"&gt;-=&lt;/span&gt; &lt;span class="nx"&gt;volumeStep&lt;/span&gt;
    &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;volume&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;stop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="nx"&gt;fadeInterval&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kiro generated this after I said: "The horror sound ends too early."&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 2: Pause Behavior
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Pausing during horror returned to calm screen, losing the scary moment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;toggleTimer&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isActive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;playRandomCalmSound&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Stop audio but keep visual state frozen&lt;/span&gt;
    &lt;span class="nx"&gt;calmAudioRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pause&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="nx"&gt;currentHorrorAudioRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;pause&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

    &lt;span class="c1"&gt;// Clear timeouts to freeze screen&lt;/span&gt;
    &lt;span class="nf"&gt;clearTimeout&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;horrorTimeoutRef&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

    &lt;span class="c1"&gt;// Keep horrorMode and horrorImage unchanged&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="nf"&gt;setIsActive&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nx"&gt;isActive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The screen now freezes exactly as it is when paused. Perfect.&lt;/p&gt;

&lt;h3&gt;
  
  
  Challenge 3: Mobile Network Access
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Problem:&lt;/strong&gt; Vite dev server only accessible on localhost, not from phone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// vite.config.js&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nf"&gt;defineConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;server&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;host&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;0.0.0.0&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="c1"&gt;// Listen on all interfaces&lt;/span&gt;
    &lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;5173&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now accessible at &lt;code&gt;http://192.168.1.100:5173&lt;/code&gt; from any device on the network.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Results
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;After 4 hours:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Fully functional app&lt;/li&gt;
&lt;li&gt;✅ 20+ features&lt;/li&gt;
&lt;li&gt;✅ Native Android APK&lt;/li&gt;
&lt;li&gt;✅ PWA-ready&lt;/li&gt;
&lt;li&gt;✅ Professional Halloween UI&lt;/li&gt;
&lt;li&gt;✅ Zero bugs&lt;/li&gt;
&lt;li&gt;✅ Production-ready&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Stats:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;1,200+ lines of code (App.jsx)&lt;/li&gt;
&lt;li&gt;15+ files created&lt;/li&gt;
&lt;li&gt;130+ messages with Kiro&lt;/li&gt;
&lt;li&gt;6 meditation sounds&lt;/li&gt;
&lt;li&gt;33 horror sounds&lt;/li&gt;
&lt;li&gt;18 horror images&lt;/li&gt;
&lt;li&gt;4 difficulty levels&lt;/li&gt;
&lt;li&gt;3 achievements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Time saved:&lt;/strong&gt; 80-85% compared to manual coding&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes Kiro Special
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Context Retention
&lt;/h3&gt;

&lt;p&gt;Other AI tools forget context after 10-20 messages. Kiro's steering documents maintain context across 100+ messages.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Example:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Message 5: "This is a horror meditation app"&lt;/li&gt;
&lt;li&gt;Message 95: "Add a feature"&lt;/li&gt;
&lt;li&gt;Kiro: &lt;em&gt;Adds feature with horror theme, Halloween colors, mobile optimization&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No reminder needed. It just knows.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Multi-File Coordination
&lt;/h3&gt;

&lt;p&gt;When I said "Change the app name to Meditate the Fear," Kiro updated:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;package.json&lt;/li&gt;
&lt;li&gt;capacitor.config.json&lt;/li&gt;
&lt;li&gt;index.html&lt;/li&gt;
&lt;li&gt;App.jsx (multiple locations)&lt;/li&gt;
&lt;li&gt;Built and synced to Android&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All in one response. No manual file hunting.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Build System Management
&lt;/h3&gt;

&lt;p&gt;Kiro automatically:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Ran &lt;code&gt;npm run build&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Synced with Capacitor&lt;/li&gt;
&lt;li&gt;Configured Android&lt;/li&gt;
&lt;li&gt;Fixed build errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I never touched the terminal manually.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Design Sense
&lt;/h3&gt;

&lt;p&gt;I said "Make it Halloween themed." Kiro:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Changed to orange/purple/black palette&lt;/li&gt;
&lt;li&gt;Added glowing shadows&lt;/li&gt;
&lt;li&gt;Implemented backdrop blur&lt;/li&gt;
&lt;li&gt;Added pumpkin emojis&lt;/li&gt;
&lt;li&gt;Created gradient backgrounds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It has aesthetic judgment, not just code generation.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Frankenstein Success
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Why this is a perfect Frankenstein chimera:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Incompatible Elements:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meditation: Peace, calm, wellness&lt;/li&gt;
&lt;li&gt;Horror: Fear, terror, chaos&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Stitched Together:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Same app, same session&lt;/li&gt;
&lt;li&gt;Seamless transitions&lt;/li&gt;
&lt;li&gt;Dual audio system&lt;/li&gt;
&lt;li&gt;Unified UI that transforms&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unexpectedly Powerful:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Creates psychological challenge&lt;/li&gt;
&lt;li&gt;Tests mindfulness under pressure&lt;/li&gt;
&lt;li&gt;Gamifies meditation&lt;/li&gt;
&lt;li&gt;Makes wellness engaging&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;It's not just a meditation app with horror. It's not just a horror game with meditation. It's a true chimera - something new that couldn't exist without both parts.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned
&lt;/h2&gt;

&lt;h3&gt;
  
  
  About Kiro
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Set up steering docs early&lt;/strong&gt; - First 5 messages, save 40% time later&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust Kiro's suggestions&lt;/strong&gt; - Often better than your initial idea&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speak naturally&lt;/strong&gt; - No need for formal specs or technical jargon&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Iterate quickly&lt;/strong&gt; - Each feature takes minutes, not hours&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  About Development
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Mobile-first from day one&lt;/strong&gt; - Test on real devices early&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audio is complex&lt;/strong&gt; - Proper ref management prevents memory leaks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;User experience matters&lt;/strong&gt; - Small details make huge difference&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Halloween theme works&lt;/strong&gt; - Orange/purple/black is professional&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  About Horror Design
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Subversion is powerful&lt;/strong&gt; - Starting peaceful makes horror impactful&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Random timing is key&lt;/strong&gt; - Unpredictability creates tension&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Short bursts work&lt;/strong&gt; - 3-6 seconds is perfect&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multiple senses matter&lt;/strong&gt; - Visual + audio + haptic = immersive&lt;/li&gt;
&lt;/ol&gt;

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

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="//github.com/kishorramani/meditate-the-fear"&gt;github.com/kishorramani/meditate-the-fear&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try it:&lt;/strong&gt; &lt;a href="https://meditate-the-fear.vercel.app/" rel="noopener noreferrer"&gt;meditate-the-fear.vercel.app&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tech Stack:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;React 18&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Tailwind CSS&lt;/li&gt;
&lt;li&gt;Capacitor&lt;/li&gt;
&lt;li&gt;Web Audio API&lt;/li&gt;
&lt;li&gt;Kiro AI&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What's Next
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Short-term:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Google Play Store release&lt;/li&gt;
&lt;li&gt;More meditation sounds&lt;/li&gt;
&lt;li&gt;Expanded horror library&lt;/li&gt;
&lt;li&gt;Custom timer durations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Medium-term:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Multiplayer mode&lt;/li&gt;
&lt;li&gt;Custom horror uploads&lt;/li&gt;
&lt;li&gt;Biometric feedback&lt;/li&gt;
&lt;li&gt;Daily challenges&lt;/li&gt;
&lt;li&gt;Leaderboards&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Long-term:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;VR support&lt;/li&gt;
&lt;li&gt;AI-generated horror&lt;/li&gt;
&lt;li&gt;Therapy integration&lt;/li&gt;
&lt;li&gt;International languages&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It Yourself
&lt;/h2&gt;

&lt;p&gt;Want to build something with Kiro?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;My advice:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Start with steering docs&lt;/strong&gt; - 3 files: product.md, tech.md, structure.md&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Build iteratively&lt;/strong&gt; - Core → features → polish&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Speak naturally&lt;/strong&gt; - Like talking to a developer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trust the process&lt;/strong&gt; - Kiro often surprises you&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;The future of development isn't writing code. It's having conversations about what you want to build.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I built a production-ready app with 20+ features in 4 hours. Not a prototype. Not a demo. A real app that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Installs on Android phones&lt;/li&gt;
&lt;li&gt;Has professional UI/UX&lt;/li&gt;
&lt;li&gt;Tracks stats and achievements&lt;/li&gt;
&lt;li&gt;Shares to social media&lt;/li&gt;
&lt;li&gt;Works offline&lt;/li&gt;
&lt;li&gt;Has zero bugs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;All through conversation with Kiro.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This is the Frankenstein story:&lt;/strong&gt; Stitching together AI and human creativity to build something unexpectedly powerful.&lt;/p&gt;

&lt;p&gt;The question isn't "Can AI replace developers?"&lt;/p&gt;

&lt;p&gt;The question is "What can developers build when AI handles the implementation?"&lt;/p&gt;

&lt;p&gt;The answer: A lot more, a lot faster.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Built for Kiroween 2025&lt;/strong&gt; 🎃&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Category:&lt;/strong&gt; Frankenstein&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Time:&lt;/strong&gt; 4 hours&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lines of Code Written Manually:&lt;/strong&gt; 0&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Lines of Code Generated by Kiro:&lt;/strong&gt; 1,200+&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Result:&lt;/strong&gt; Production-ready horror meditation app&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Want to try Meditate the Fear? Visit &lt;a href="https://meditate-the-fear.vercel.app/" rel="noopener noreferrer"&gt;meditate-the-fear.vercel.app&lt;/a&gt; or download the Android APK from GitHub.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Built with Kiro AI - &lt;a href="https://kiro.dev" rel="noopener noreferrer"&gt;kiro.dev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; #kiro #ai #react #halloween #meditation #horror #frankenstein #kiroween #webdev #mobile #android #tailwindcss #vite&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Discussion Questions:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Have you used AI-assisted development? How does it compare to traditional coding?&lt;/li&gt;
&lt;li&gt;What's the most complex feature you've built with AI help?&lt;/li&gt;
&lt;li&gt;Would you meditate through horror? What's your fear score prediction?&lt;/li&gt;
&lt;li&gt;What other "incompatible elements" could make interesting Frankenstein apps?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Drop your thoughts in the comments! 👇&lt;/p&gt;

</description>
      <category>kiro</category>
      <category>ai</category>
      <category>react</category>
      <category>halloween</category>
    </item>
  </channel>
</rss>
