Build Journal
SEO Portals & Map Enhancements for Agentic Web — May 12, 2026
I improved SEO portals and map functionality, addressing bugs and enhancing user experience with new features on the agentic web platform.
What shipped
- SEO Domains Rendering — SEO domains now render PortalDetail panels with key information.
- Map Camera Fix — Resolved issue where map camera did not update on keyword resolution.
- Cyan Map Markers — SEO domains displayed as cyan markers with detailed slide-over.
- SEO Sara API Integration — Live domain syncing via SEO Sara API for enhanced functionality.
- Improved Status Filters — Widened filters to handle mixed-case status from upstream.
Today, I focused on enhancing the SEO portals and map functionalities of the agentic web platform, shipping five new features and fixing four bugs during a long 17-hour day. The improvements were crucial for making the user experience smoother and more intuitive, particularly for users interacting with SEO domains.
One of the standout features I delivered was the ability for SEO domains to render the same PortalDetail panel that traditional portals use. This update means users can now see a favicon portrait, website URL, and a Claim CTA, but with the call, vault, book, and share rows hidden. I also ensured that the cyan marker is preserved for easy identification on the map. This was a significant enhancement because it allows users to quickly discern SEO domains at a glance, streamlining their navigation experience.
However, it wasn’t all smooth sailing. During the implementation, I encountered a bug where the map camera didn’t update correctly when a keyword or hashtag was resolved in the nav-search bar. The slide-over opened, but the map stayed put, leading to a frustrating user experience. After some debugging, I realized that I was only updating the detailMapCenter, which was not sufficient. The fix involved ensuring that the camera would fly to the resolved portal coordinates, which I successfully integrated after a bit of back and forth.
Another major feature I shipped was the rendering of SEO domains as cyan map markers with an accompanying slide-over detail panel. This panel includes a 'Visit website' link, which opens the same panel as when a scanner row is clicked, allowing for an in-app preview before navigating externally. This was a vital addition that enhances user engagement and makes exploring different SEO domains more efficient.
On the technical side, I integrated the SEO Sara API, which syncs live domains into the seo_sara_domains via a durable BackgroundJob. This required setting up a public API endpoint for listing the domains, which is key for the SEO functionality. However, I faced some challenges with the key scope being limited, which meant that location and keywords would remain pending until I could broaden the upstream key. This is an ongoing task, but I’m confident that it will significantly improve the platform's capabilities once resolved.
I also made several critical fixes to improve the robustness of the system. For instance, I had to widen the enrichment status filter in the seo-sync module, as the upstream was returning mixed-case status values like PENDING. This adjustment was necessary to ensure that meaningful work was not disregarded due to soft upstream errors. I also broadened the list-endpoint status filter in the SEO module to exclude only explicit failures, making the system more resilient to inconsistencies.
Throughout the day, I wrote extensive tests to ensure that these enhancements and fixes worked as intended. I added three new pure-function tests, which pin down the embed-origin allowlist, SSRF allowlist, and isAppOriginRequest boundaries, resulting in 65 new test assertions. I also updated the documentation to include step-by-step guides for provisioning Upstash and Sentry DSN for new users. This focus on testing and documentation is crucial as I continue to build this one-man-show into a billion-dollar valuation company.
Overall, today was a productive day filled with challenges and triumphs. It’s moments like these that remind me of the grind involved in building something from the ground up, especially as a solo developer. While AI is a fantastic partner in this journey, it’s my vision and relentless pursuit of quality that drives this project forward. As I look ahead, I’m excited about the potential of these features to enhance user interaction with the agentic web platform, and I’m eager to tackle the next set of challenges that come my way.