Build Journal
Tavus Video Personas & AI Portal Enhancements — May 1, 2026
I enhanced Tavus video personas and AI portal capabilities, fixing issues and improving UX for better performance and user engagement.
What shipped
- Admin Refund UI — Added admin invocation for refunds with automatic handling for failed Tavus training.
- Improved Persona Upload — Enhanced video upload limits and error handling for better user experience.
- AI Mode Toggle — Introduced explicit toggle for AI mode to take over human heartbeat signals.
- User-Friendly UI — Revamped portal editor layout to improve accessibility and usability.
- Teleprompter Overlay — Added a teleprompter overlay to the persona recorder for better user guidance.
Today, I set out to enhance the Tavus video personas and improve the AI portal functionality, aiming to create a smoother user experience while tackling some persistent bugs. After a long 21-hour day, I shipped 19 commits, focusing on enhancing the settings, persona features, and deployment processes. The core updates included an admin invocation for refunds, improved error handling, and a more user-friendly persona video upload experience.
One of the most significant features I added was the admin invocation for refunds, which now includes an endpoint and UI that allows for automatic refunds if Tavus training fails. This was prompted by user feedback on the frustration of failed sessions without clear recourse. I also made it a priority to surface the failure reasons directly on the persona page, ensuring users can understand what went wrong and how to proceed. This required a deep dive into the Tavus API to ensure that users receive accurate and friendly messages when issues arise.
In addition to the refund mechanism, I implemented a toggle that allows the AI mode to take precedence over human heartbeat signals. By giving owners explicit control over this feature, I aimed to make the experience more intuitive. This was particularly important as I opened up AI portal calls to anonymous visitors, removing the sign-in requirement and making the portal more accessible.
The UI improvements didn’t stop there. I revamped the portal editor to display pills in a full-width four-column grid, ensuring that users can easily access all features without clutter. To enhance usability, I compacted the portal editor toggle pills to fit on one row, which required some thoughtful CSS adjustments to prevent clipping on narrow panels. These changes were crucial in making the interface cleaner and more user-friendly, reflecting my commitment to continuous improvement.
A notable challenge I faced was with the persona video upload feature. Initially, production logs indicated that requests were exceeding the 10MB limit, causing failures. To address this, I raised the Next.js middleware body cap to 256MB, allowing for higher-quality uploads while also implementing clearer error handling for users. Now, when a video exceeds the size limit, the system provides a more informative 413 response, guiding users on how to proceed. This part of the day was particularly grueling, as I had to test various configurations and ensure that everything worked seamlessly across different scenarios.
Another significant enhancement was the persona recorder user experience. I introduced a teleprompter overlay that capped the height of the video preview, ensuring that users don’t get distracted by a cluttered interface. The overlay also includes a Tavus consent line, making it clear that verbal consent is required before recording. This was a critical step in ensuring compliance and user comfort, and I’m pleased with how it turned out.
I also tackled some backend improvements, including fixing the Tavus video persona recording format issues. This involved updating the MediaRecorder settings to ensure that video quality remained high while also parsing errors from the Tavus API for better user feedback. It was a complex task that required a lot of troubleshooting, but I’m happy to report that the recording process is now more stable and user-friendly.
Reflecting on the day, I feel a mix of pride and exhaustion. Building this agentic web platform largely solo, with Claude Code in VS Code, has its challenges, but the progress I made today reinforces my belief in this vision. Each feature I implement brings me closer to my goal of creating a one-man-show company with a billion-dollar valuation. The bugs I faced were frustrating, but they also provided valuable learning opportunities that will inform my future work. As I continue to build out the capabilities of hashtag.org, I’m excited about the potential these enhancements have to improve user engagement and satisfaction.