Inspiration
The inspiration came from the Frankenstein category challenge: "Stitch together seemingly incompatible elements." What could be more incompatible than meditation (peace, calm, wellness) and horror (fear, terror, chaos)?
I wanted to create something that would make people question: "Can you maintain mindfulness while being scared?" This psychological twist on wellness apps felt perfect for Halloween and the Kiroween hackathon theme.
The idea: Start with a beautiful, calming meditation app that users trust, then subvert their expectations by transforming it into a horror experience. It's meditation as a challenge - can you stay zen while facing your fears?
What it does
Meditate the Fear is a mobile-first meditation app that starts peaceful but becomes a horror challenge:
The Journey:
- Choose Duration - Select 1-15 minutes of meditation
- Select Difficulty - Pick from Peaceful, Normal, Nightmare, or Hell Mode
- Choose Sound - Select from 6 calming meditation sounds (rain, birds, bells, etc.)
- Begin Meditation - Start with peaceful breathing guide and calm music
- Face Your Fears - After 10 seconds, random horror events trigger:
- Scary images appear full-screen
- Disturbing sounds play
- Threatening messages flash
- Phone vibrates
- Complete Session - View detailed stats, fear score, and achievements
- Share Results - Post your survival story to social media
The Twist: Users must maintain their meditation practice while the app randomly terrorizes them. It's a test of mindfulness under pressure - true meditation mastery.
Key Features:
- 4 difficulty levels with different horror frequencies
- 6 meditation sounds + 33 horror sounds
- 18 horror images that appear randomly
- Real-time breathing guide during calm moments
- Session stats: scares survived, fear score (0-10), longest calm streak
- Achievements: Zen Master, Fearless, Hell Survivor
- Social sharing with custom messages
- Native Android app + PWA
- Phone vibration on horror events
How we built it
Built entirely with Kiro AI through conversational development over 130+ messages.
Tech Stack:
- Frontend: React 18, Vite, Tailwind CSS
- Mobile: Capacitor for native Android
- Audio: Web Audio API for dual sound system
- Deployment: Vercel (web), APK (Android)
Development Process:
- Initial Setup (30 min) - Kiro scaffolded React + Vite + Tailwind with basic timer
- Horror Subversion (1 hour) - Added dual audio system, horror events, image overlays
- Feature Expansion (1.5 hours) - Implemented difficulty levels, stats tracking, achievements, breathing guide
- Mobile Optimization (45 min) - Capacitor setup, Android build, responsive design
- Halloween Theme (30 min) - Orange/purple/black color scheme, glowing effects, pumpkin emojis
- Polish & Bug Fixes (45 min) - Fixed audio looping, pause behavior, message wrapping
Kiro Features Used:
- Vibe Coding - Natural conversation to build features
- Steering Documents - 3 docs (product.md, tech.md, structure.md) maintained context
- Iterative Development - Rapid feature addition and refinement
Most Complex Code Generated: The dual audio system that manages:
- Continuous looping meditation sounds
- Random horror sounds that loop during events
- Smooth volume transitions and fade-outs
- Proper cleanup to prevent memory leaks
- Pause/resume handling for both audio streams
All generated through conversation with Kiro!
Challenges we ran into
Audio Synchronization
- Problem: Horror sounds (1-2 sec) ended before horror screen (3-6 sec), creating silent moments
- Solution: Made horror sounds loop during events, fade out when returning to calm
Pause/Resume Behavior
- Problem: Pausing during horror would return to calm screen, losing the scary moment
- Solution: Implemented timeout tracking to freeze screen state when paused
Message Text Wrapping
- Problem: Long messages wrapped to multiple lines, changing card height
- Solution: Fixed height container + shortened messages + line-clamp CSS
Mobile Network Access
- Problem: Vite dev server not accessible from Android phone
- Solution: Configured Vite to listen on 0.0.0.0 instead of localhost
Horror Message Timing
- Problem: Calm messages sometimes showed during horror screen
- Solution: Set horror message immediately when event triggers, clear timeouts properly
Image Loading on Mobile
- Problem: Horror images used absolute paths, failed on mobile network
- Solution: Changed to relative paths (./images/) that work on any device
Accomplishments that we're proud of
Perfect Frankenstein Chimera - Successfully stitched together two completely opposite experiences (wellness + horror) into something unexpectedly powerful
Production-Ready in 4 Hours - Built a fully functional, bug-free app with 20+ features using Kiro
Native Android App - Not just a web app - real APK that installs on phones
Sophisticated Audio System - Dual audio streams with looping, fading, and volume control
Professional UI/UX - Halloween-themed design with glowing effects, smooth animations, responsive layout
Complete Gamification - Stats tracking, fear score calculation, achievements, social sharing
Mobile-First Design - Works perfectly on all Android screen sizes with touch optimization
Zero Bugs in Final Version - Thoroughly tested and polished
Comprehensive Documentation - README, Kiro usage guide, submission checklist
Psychological Innovation - Created a unique "meditation under pressure" experience that's genuinely challenging
What we learned
About Kiro:
- Steering documents are game-changers - Set them up early and Kiro maintains perfect context across 100+ messages
- Vibe coding enables rapid iteration - Natural conversation is faster than writing specs
- Trust Kiro's suggestions - Often proposes better solutions than initially planned
- Context retention is incredible - Never forgot we were building for Kiroween or the Frankenstein category
About Development:
- Mobile-first from day one - Testing on actual devices early prevents late surprises
- Audio is complex - Managing multiple audio streams requires careful ref management
- User experience matters - Small details like message wrapping and pause behavior make huge difference
- Halloween theme works - Orange/purple/black with glowing effects creates professional look
About Horror Design:
- Subversion is powerful - Starting peaceful makes the horror more impactful
- Random timing is key - Unpredictability creates genuine tension
- Short horror bursts work - 3-6 seconds is perfect - long enough to scare, short enough to maintain meditation
- Multiple senses matter - Visual + audio + haptic creates immersive experience
What's next for Meditate the Fear
Short-term (Post-Hackathon):
- Deploy to Google Play Store
- Add more meditation sounds (ocean, fire, wind)
- Expand horror image library (50+ images)
- Add custom timer durations
- Implement dark/light mode toggle
Medium-term:
- Multiplayer Mode - Meditate with friends, see who survives longest
- Custom Horror Uploads - Let users add their own scary images
- Biometric Feedback - Track heart rate during horror events
- Daily Challenges - New difficulty combinations each day
- Leaderboards - Global rankings by fear score
Long-term:
- XR Support - Immersive 360Β° horror meditation
- AI-Generated Horror - Dynamic scary content based on user fears
- Therapy Integration - Work with psychologists for exposure therapy
- More Languages - Expand to international markets
- Smart Watch Support - Vibration and heart rate on wearables
Monetization:
- Free tier: 1-5 minute sessions
- Premium: Unlimited time, exclusive sounds, custom horror
- One-time purchase: $4.99 (no subscriptions)
Built With
- android
- capacitor
- javascript
- kiro-ai
- pwa
- react
- tailwind-css
- vite
- web-audio-api
Log in or sign up for Devpost to join the conversation.