Inspiration: The Search for a Digital Sanctuary

In a world filled with constant notifications and digital noise, we asked ourselves a simple question: can technology be a source of tranquility instead of stress? Our inspiration for Muhurto came from the desire to create a small, quiet corner on the internet—a digital sanctuary where anyone can find a moment (a "muhurto") to reconnect with their breath.

We didn't want to build just another timer app. We envisioned a gentle guide that listens. An intelligent, empathetic companion that could understand how you're feeling and offer a scientifically-backed breathing exercise to help. This is where the idea of an AI Breathing Coach was born—a tool that uses the power of modern AI not for complexity, but for profound simplicity and peace.

How We Built Muhurto: A Symphony of Human and AI

Embracing the spirit of the CodeSprout Hackathon, we committed to building Muhurto using only vanilla HTML, CSS, and JavaScript. This challenge forced us to focus on the fundamentals and write clean, efficient code.

Our development process was a unique collaboration between human vision and AI execution:

  1. The Human Visionary: The project began with a clear "vibe"—Effortless Tranquility. Every decision was guided by this core feeling.
  2. The AI Muse (VibeWeaver): This vision was translated into detailed, structured prompts, or "incantations," designed for an AI coding agent.
  3. The AI Coder (Jules 2.0): These incantations were then executed by Jules, which wrote, refactored, and implemented the code, feature by feature.

Our Tech Stack:

  • Frontend: A pure, responsive Single Page Application (SPA) built with Vanilla JS, ensuring a fast and seamless user experience.
  • Backend: We used Netlify Functions to create a secure, serverless backend. This acts as a protected bridge to the Google Gemini API, keeping our API key safe.
  • AI Brain: The Google Gemini API (gemini-2.5-flash) powers our AI Guide, providing personalized breathing recommendations based on user input.

What We Learned: The Power of Pure Code and a Clear Vision

This journey was an incredible learning experience.

  • Vanilla JS is Mighty: Stripping away frameworks revealed the raw power and elegance of JavaScript. It taught us the importance of clean architecture, state management, and understanding the DOM on a deeper level.
  • The "Vibe" is a Technical Specification: Our most important lesson was that defining the feeling of the app first made every technical decision clearer. The AGENTS.md file, our "Vibe Bible," became the most crucial document in our repository.
  • AI as a True Partner: We learned that AI coders are not just tools, but collaborators. By providing clear, high-level instructions, we could focus on the creative vision while the AI handled the intricate implementation, turning weeks of work into days.

Challenges We Faced: Weaving the Perfect Vibe

Every creative process has its challenges. Ours were focused on ensuring the experience was flawless:

  1. Ensuring AI Reliability: Initially, the AI's responses were sometimes unpredictable. We solved this by engineering an "unbreakable" system prompt. We commanded the AI to act as a specialized API endpoint that could only respond in a strict JSON format, making its behavior 100% reliable.
  2. The Dynamic Event Listener Bug: The "Apply this rhythm" button, created dynamically by the AI's response, wasn't working. We overcame this by using JavaScript closures to attach the event listener directly to the button element the moment it was created, a clean and robust solution.
  3. The Art of Simplicity: The biggest challenge was not what to add, but what to leave out. We constantly fought against complexity to keep the interface minimal and the experience focused solely on the user and their breath.

Muhurto is our answer to the chaos of the digital world. We hope it brings you a moment of peace.

Built With

  • css
  • github
  • google-gemini-api
  • html
  • netlify
  • netlify-functions
  • vanilla-javascript
  • vibration-api
  • web-speech-api
Share this project:

Updates