Inspiration
Vibe Coding - the latest fad that's gripping today's fast-paced, ever-changing CS world. Vibe coding is the process by which developers create full stack applications by letting AI do most of the heavy lifting. This has shifted the role of programmers from manually coding to guiding, testing and refining the code generated by AI.
While not without its skeptics, vibe coding has significantly lowered the barriers to programming by empowering novices with the tools to build fully functioning apps without needing to learn how to code. We are extremely excited by this and aim to further improve this process by allowing users to vibe code through natural language conversations with our model, eliminating the need to even touch a keyboard.
By further reducing the barriers to programming, we hope that it encourages people to get creative and work on projects that they might not have been able to without the required technical expertise.
What it does
Maya is an AI Agent that allows users to build full stack applications simply by speaking about it. By combining large language models, smart prompting, and a streamlined dev environment, Maya makes app development feel more like having a conversation than writing code. It's designed for beginners who want to build without the steep learning curve, and for developers who want to prototype fast and hands-free.
How we built it
Maya is built with Next.js 15.2.4 and React 19, using the App Router architecture. The frontend is styled with Tailwind CSS and incorporates Radix UI for accessible, responsive components. For AI integration, we use Anthropic’s Claude 3.5 Sonnet and Google’s Gemini 2.0-flash via their SDKs. Users interact with Maya through a custom chat interface, where the special "maya build" command converts natural language into structured prompts. These are sent to the AI, which returns a complete codebase - including file structure, code content, and dependencies. We parse these responses into a navigable file system, then generate live development environments in temporary directories to render real-time previews of the applications created, allowing users to test and refine the app before deploying it.
Challenges we ran into
One of the biggest challenges was rendering live previews of the generated applications. Because Maya generates real, runnable code, we had to find a way to dynamically spin up temporary environments and serve the app.
Another major hurdle was integrating voice input. We started with Sesame’s voice model, and later transitioned to ElevenLabs, but both posed challenges. Most notably, the models often misclassified the speaker, breaking the build feature's logic, as the system would ignore the "Maya build" command thinking it had issued it, rather than the user.
Accomplishments that we're proud of
We successfully built a system where users can describe full stack applications using only their voice - and see a complete, functional codebase generated and previewed live. Turning natural language into fully functioning apps without even touching a keyboard was a huge milestone for us.
We are also proud of the backend system that dynamically spins up a real time, interactive preview for every generated project, allowing users to test and refine the app before deployment.
What we learned
Building with voice as the primary input taught us how nuanced speech processing can be. While conversational interfaces can enhance user experience, they also come with unique challenges such as speaker misidentification, command ambiguity, and noise handling. Designing around these edge cases was challenging and a useful lesson for potential future endeavors.
What's next for Maya
We want to improve Maya’s voice recognition to make commands more accurate and responsive. We plan to support more complex app types and offer real-time customization through follow-up voice prompts. Our goal is to make building software feel as easy as having a conversation.
Built With
- claude
- gemini
- next.js
- python
- radix
- tailwind
- typescript
Log in or sign up for Devpost to join the conversation.