Inspiration
After brainstorming with myself a lot, after looking at the categories, I thought, "Let's make this challenging as well as useful to the public". There comes Numa, an AI based quick voice therapist based on CBT. Mind well it is not an AI wrapper as it might appear in a first glance, it was built from scratch using Kiro, all the algorithms, fallbacks, logic were all made from scratch. It shows my effort in trying to make therapy accessible to everyone by making this open source, as a lot of people need help, but due to various causes they cannot get it.
What it does
Numa offers a quick therapy session for its users. Of course it is nowhere near it's full potential, but for now it detects your emotion, understands your problem, offers you a few words of support, and comes up with a goal for you to reach so that you overcome the problem.
How I built it
Building Numa was an iterative process, involving a modern tech stack and a series of key architectural decisions.
The Foundation: I started with a robust, scalable architecture. The frontend was built with React and TypeScript, providing a dynamic and type-safe user interface. The backend was powered by Node.js and Express, creating a lightweight yet powerful API server.
The Brains and Memory: For the database, I chose Supabase, a flexible and powerful backend-as-a-service. I helped structure the database schemas for
users,sessions, andgoals, which formed the core of Numa's ability to remember user history and track progress over time.Giving Numa a Voice: To make the experience immersive, we implemented both Speech-to-Text (STT) and Text-to-Speech (TTS). I began by leveraging the browser's native Web Speech API (
speechSynthesis). Recognizing its limitations and browser inconsistencies, we evolved the architecture to include a backend fallback using Hugging Face's advanced TTS models, ensuring a consistent and high-quality voice experience for all users.The Deployment Gauntlet: Taking Numa from a local machine to the web was a major milestone. We chose Render for the backend and Netlify for the frontend, a common and powerful combination for modern web apps. This phase, however, brought its own set of unique challenges.
However throughout this process was Kiro, right there coding away all the problems I came across, created this from nothing.
Challenges I ran into
Initially I thought code to deployment would be a straight line. But who am I kidding, it never is.
The IDE Problems: Like any other AI IDE, Kiro also has its own fair share of problems. Sometimes deep into debugging or trying a new thing, it used to loop on it's own, fail to see the error, or completely misunderstand my query, or even losing track and forgetting context. Still pulled through, it is not perfect but will get there.
Code Problems: Where do I even start, the mysterious '500 - Internal Server Error' , 'TTS error', 'API error', what not. I have seen every there is trying to make this from scratch. As always it is with problems, it was the simplest explanation possible which solved it.
Accomplishments that I'm proud of
The fact that I could build it single handedly is what I am proud of, and got it to work after so many hurdles and countless hours of work.
What I learned
I learned that however hard it is to build a project with a large codebase with an Agentic AI IDE, it is not impossible. With enough perseverance and the advancement of AI tools, it is getting easier and easier by the day.
What's next for Numa
Of course this is not the end for Numa, currently it lacks personalization, which is the next plan of action. Later on I will make it open for everyone to contribute, so as to make Mental Health accessible for everyone.
Built With
- express.js
- huggingface
- javascript
- netlify
- node.js
- react
- render
- stt
- tts
- typescript
Log in or sign up for Devpost to join the conversation.