Build Journal

Fixing SSR Cache Poisoning & Daily-js Loading Issues — September 2, 2026

I fixed SSR cache poisoning for the gp_theme cookie and resolved daily-js loading issues without eval. Here's how I tackled these challenges.

2 changes3 min readby Rob

What shipped

  • SSR Cache Poisoning FixPrevented gp_theme cookie from SSR for anonymous requests.
  • Daily-js Loading Issue ResolvedLoaded daily-js call machine without eval for better security.

Today, I set out to tackle two persistent issues in my agentic web platform—one related to SSR cache poisoning with the gp_theme cookie and another concerning the daily-js loading mechanism. Both of these problems had been causing headaches, but after a focused hour of work, I was able to ship fixes that should enhance the overall performance and security of the platform.

The first issue I addressed was the SSR cache poisoning caused by the gp_theme cookie in anonymous requests. Essentially, the shared nginx page caches were not varying based on the gp_theme, which meant that if an anonymous visitor with a dark theme accessed the site, they could end up serving a dark-themed page to every subsequent visitor. This could lead to a confusing user experience and undermine the integrity of the site. To counter this, I implemented a fix that prevents the gp_theme cookie from being SSR'd for anonymous requests. This ensures that the cache remains clean and that users are served the appropriate theme based on their settings rather than a potentially poisoned cache. It was a straightforward fix, but it took some time to fully understand the caching mechanism and how the cookie was being handled.

The second fix was related to the daily-js loading mechanism, which is critical for the Tavus portal calls. The enforced Content Security Policy (CSP) allowed for wasm-unsafe-eval but not unsafe-eval, which caused all daily-js calls to break when trying to join. The default loader for daily-js was using eval() to fetch the call-machine bundle, leading to blocked URIs and failed executions. I spent a good chunk of time diagnosing this issue and found that I could resolve it by loading the daily-js call machine without eval. By adjusting the configuration to avoid eval, the calls are now executed properly. This change not only resolves the immediate problem but also enhances security by adhering to the CSP guidelines.

Working through these issues reinforced the importance of diligent coding practices and understanding the underlying architecture of the platform. Each fix, while seemingly small, contributes to the larger goal of building a robust and scalable agentic web platform. I often find myself reflecting on the balance between fixing bugs and pushing new features. In a solo development environment, every hour counts, and it’s crucial to ensure that the foundations are solid before layering on new capabilities. Today’s fixes were a good reminder that sometimes, focusing on stability can yield just as much value as adding new features.

As I continue to build this platform toward a billion-dollar valuation, I’m constantly reminded that the journey is not just about the destination but also about the lessons learned along the way. Each problem solved adds to my toolkit as a solo builder, and the insights gained today are invaluable. The experience of diagnosing these issues and implementing fixes is something that I can carry forward as I tackle more complex challenges in the future.

I’m also grateful for the ability to leverage AI assistance, which has been invaluable in speeding up my development process. By using tools like Claude Code in VS Code, I can focus on the coding rather than getting bogged down in repetitive tasks. This allows me to maintain the pace needed to make meaningful progress on the platform while still keeping the quality high. As I think about the future and the potential for this platform, it’s clear that efficiency and quality will be key drivers in achieving my ambitious goals.

Overall, today was a productive day, and I’m looking forward to tackling more challenges tomorrow. With each bug fixed and each issue resolved, I feel a step closer to realizing the vision of this one-man-show company. The road ahead is long and filled with obstacles, but I’m confident that with each day of focused work, I’m building something truly valuable.

Terms in this entryGEO PortalTool / Tool call

← Back to the full build journal