🌟 Inspiration: I started using Bolt.new in December 2024 and quickly enjoyed how intuitive and fast the building process felt. Although early projects didn’t always match my original ideas, I was consistently satisfied with the process and results.

When the hackathon was announced, I planned to submit a project called The Dream — a symbolic game about human–AI collaboration. But when I tried to rebuild it in Bolt.new, I realized I lacked the full prompt history, which made reconstruction difficult. That’s when I started thinking: What if we could build apps without depending entirely on prompts?

This led me to design Requirements-as-Code (RaC) — a structured way to define logic declaratively so the AI could generate apps more predictably and reliably.

🎧 What it does: Motion Music Player is a minimalist app that only plays music when you move. If you walk, jump, or shake your phone, the music plays — stop moving and it pauses. It’s a fun way to motivate yourself to move a little more, turning motion into a reward.

🛠️ How we built it: The app is built using Bolt.new with logic structured through RaC — a tech-agnostic system of modular YAML files (state/, events/, logic/, etc.). RaC defines each interaction clearly and allows the LLM to “cook” the app by assembling the logic into working code, guided by structure rather than freeform prompts. I have used:

state/ #to define variables like isPlaying and motionEnabled
events/ #to capture user actions like motionDetected
logic/ #to declare conditions like “if motion is detected and motion play is on, start music”
tests/ #to simulate flows before generating code

This structure made the build fast, traceable, and easier to adjust as the idea evolved.

There are three songs used in Motion Music Player. All songs were generated via my Mureka account, and I own full usage rights under their pro plan.

🧗 Challenges we ran into: Lost prompt history from an earlier project highlighted the fragility of prompt-only workflows. Switching from unstructured prompts to RaC required a mindset shift — but it enabled more predictable development. Balancing the modular RaC logic with interactive UI behavior inside Bolt.new was a unique challenge.

🏆 Accomplishments that we're proud of: Designing a simple but fun app that encourages physical movement. Inventing and applying the Requirements-as-Code method to real-world development. Building a Bolt.new app from scratch with clear, structured logic and reusable components.

📚 What we learned: LLMs work better when guided by structure — not just creativity. Declarative requirements improve clarity, traceability, and collaboration. Tools like RaC and Bolt.new can empower developers to build smarter, more maintainable AI-native apps.

🚀 What's next:

  • For Motion Music Player: Add a backend to support real-time group sessions — where music plays only when a group of people moves together. Explore social features, shared playlists, or competitive step challenges.
  • For Requirements-as-Code (RaC): Evolve RaC into a structured layer for Bolt.new, Cursor (these two were tested) or any other AI IDE. Use RaC to structure enterprise workflows, roles, and policies in a machine-readable way. Build RaC-as-a-Service — enabling hosted simulation, validation, and deployment of logic-driven systems. Position RaC as a bridge between human intent and executable AI-native systems — making development more repeatable, transparent, and collaborative.

Built With

  • bolt.new
  • react
  • requirements-as-code
  • tailwindcss
Share this project:

Updates