Build Journal
Fixing SSR Cookie Issues & Daily-JS Portal Calls — September 2, 2026
I resolved SSR cookie issues and improved daily-js portal calls in my solo project. The fixes enhance the agentic web experience significantly.
What shipped
- SSR Cookie Fix — Resolved issues with gp_theme cookie for anonymous requests.
- Daily-JS Call Improvement — Updated daily-js portal calls to avoid eval() for enhanced security.
Today, I tackled some critical issues in my agentic web project that had been causing headaches for both me and my users. In about an hour of focused work, I shipped two important fixes: one related to the SSR cookie handling and another involving the daily-js portal calls. These fixes were necessary to ensure a smooth user experience on the platform, and they reflect my commitment to building a robust, scalable solution that can handle various demands as I continue to grow my one-man-show company toward a billion-dollar valuation.
The first fix addressed a significant problem with the gp_theme cookie for anonymous requests. I discovered that the shared nginx page caches were not varying based on this cookie, which meant that an anonymous visitor could end up with a dark-themed page served to everyone else. This cache-poisoning vulnerability was a risk I couldn’t ignore. By ensuring that the gp_theme cookie isn’t SSR’d for anonymous requests, I took a crucial step toward safeguarding the user experience. I spent a good chunk of my time diagnosing this issue, and I learned that even small configurations could lead to substantial user experience problems. The fix required a few tweaks in the theme handling logic and a careful review of how the caching was set up, but it was well worth it.
The second fix revolved around the daily-js portal calls. In my efforts to enforce a strict Content Security Policy (CSP), I had inadvertently blocked the default loading mechanism for the daily-js call machine, which used eval() to execute the fetched bundle. This meant that every Tavus portal call was failing at the join stage, effectively breaking a critical part of the user experience. After identifying the issue, I implemented a solution that avoided the use of eval() altogether by leveraging the dailyConfig.avoidEval option. This change not only resolved the immediate issue but also enhanced the overall security of the application by adhering more closely to best practices around CSP.
While these fixes may seem minor in isolation, they represent my ongoing commitment to quality as I build this platform almost entirely solo, with AI as my team. Each bug I encounter teaches me something valuable about the architecture and design decisions I’ve made. It’s a continuous learning process that requires me to stay vigilant and adaptable. I often find myself reflecting on how much time these fixes consume, but I also recognize that resolving these issues now saves me countless hours down the line. I’m building this for the long haul, and each fix is a brick in the foundation of a billion-dollar valuation.
Working with Claude Code in VS Code, I’ve been able to manage the complexity of these issues without the expense of additional tools or platforms. This solo approach allows me to stay agile, making quick decisions and changes as needed. I’ve learned to rely on my instincts and the capabilities of AI to help me navigate through difficult problems. Today’s work is a reminder that even the smallest fixes can have a significant impact on the overall user experience, and that’s vital as I aim to build something truly exceptional.
In conclusion, the fixes I shipped today were essential not only for immediate functionality but also for ensuring a secure and user-friendly platform. I’m proud of the progress I’ve made, and I’m excited about the road ahead. Each day presents new challenges, but I’m committed to overcoming them as I continue to build out the agentic web and the unique features of my platform. I’ll keep pushing forward, one fix at a time, working toward the ultimate goal of creating a one-man-show company that stands out in the crowded landscape of tech solutions.