Build Journal
GIGI Voice Launcher Enhancements & Upload Protection — April 19, 2026
I improved the GIGI voice launcher and secured uploads against errors. Learn about the features shipped and the challenges faced in building my agentic web platform.
What shipped
- GIGI Voice Launcher Enhanced — Centered under the #SPACE logo for better visibility.
- Upload Protection Implemented — Secured upload directories to prevent accidental data loss.
- Voice Override Fixes — Improved reliability of voice settings with runtime overrides.
- WebSocket Connection Simplified — Reverted to a simpler method for improved reliability.
- UI/UX Design Tweaks — Buttons now match the overall theme for a cohesive experience.
Today was a race against the clock as I worked a long 17-hour shift to make improvements to the GIGI voice launcher and complete the upload functionality for my platform. I shipped 32 commits with 25 features and improvements as well as 7 important fixes. The refinement of the user experience was the overall goal along with resolving some persistent issues that had sustained frustration.
A more intuitive GIGI voice launcher is one of the new features that I am proudest of implementing. I made a number of changes to the launcher such as centering it under the #SPACE logo and ensuring that it is properly aligned on all screen sizes. Previously, the launcher was positioned in a way that was visually cluttered and confusing as it overlapped with the other elements. I believe that the redesign and improved accessibility will significantly enhance the user experience with GIGI.
I also addressed some of the backend issues related to ElevenLabs integration. One of the significant bugs that I faced was voice overrides. Unallowlisted agents had their voice settings dropped without their knowledge and made it appear as though the session was working when it wasn't. I was able to improve the reliability of the user experience after a thorough dive into the logs and implementing a runtime voice override. I had to ensure that the fallback mechanisms were robust to support all possible scenarios which is why this fix took so long.
To improve the functionality of the portal, I also concentrated on enhancements for the uploads. I had noted previously that the rsync delete command was a little too aggressive as it could delete files that were still needed. To combat that, I have made some changes to the deploy script to protect some of the upload folders. This change should address the issue of losing call-card images and library assets to deletion during a deployment.
I made more consiscent design adjustments throughout the day. I also changed the buttons in the GIGI interface to match the theme rather than use Tailwind's default settings. I know it is a billion dollar goal, but attention to detail gives a unified experience other companies lack and is important as I build a one-man-show company.
Development comes with its own difficulties and today was no exception. I also spent a lot of time resolving issues with the WebSocket connections, which were crucial for seamless integration of the GIGI voice launcher with the ElevenLabs API. I had to simplify my previous connection approach as it was more reliable and faster. It’s a lesson that sometimes, going back to the fundamentals is more beneficial than trying to be sophisticated.
Every day comes to an end. As it closes, I take time to examine the hard work I have put in. I take pride in all the tasks I have accomplished. Every feature I deployed brings me closer to making my vision of the agentic web and my AI website builder a reality. While I build this platform completely on my own, I will continue to take advantage of AI tools such as Claude Code in VS Code. It saves me money, and it increases the speed of my development process. I have found that AI tools let me manage the workflow of the coding in a much more technical manner, and I can focus on implementing the creative and enjoyable aspects of the project.
The road ahead of me still is long. It still consists of a limitless sea of features to implement and bugs to correct. I have to remind myself that the journey is as enjoyable as the destination I have to keep my eyes on the tools I have to build great things in order to change the world. I know the path ahead is going to teach me skills I have not yet mastered to give me the means to walk the path to my destination.