GIGIlistening…

Build Journal

Events Scanner Enhancements & Spatial AI Fixes — May 3, 2026

I enhanced the events scanner and addressed spatial AI issues, improving user experience and fixing bugs in my solo project. Learn about the challenges faced.

34 changes4 min readby Rob

What shipped

  • Enhanced Events ScannerImproved filtering and display of live events.
  • Spatial AI FixesResolved critical issues affecting event visibility.
  • Luma IntegrationAdded support for Luma categories in the events scanner.
  • Dynamic Event UpdatesImplemented a cron scraper for Web3/blockchain events.
  • User Feedback ImplementedChanged live event dot color to green based on user input.

Today, my main focus was improving the events scanner while solving some critical issues with spatial AI that were causing disruptions. After a long day of 13 hours, I made the effort to ship 34 commits consisting of 24 improvements (features) and 10 issues (problems), improving the platform’s user experience significantly. The main priority was improving the events scanner to ensure that it did not drop any genuine live events due to the aggressive filtering of data (i.e. event data, live data) I have also worked on improving the components of spatial AI regarding how the map displays events and how Luma integrates with the map.

One of the issues that I encountered was about the scanner-leak filter, which incorrectly removed crypto events from our Events bucket. I was able to modify the filter so that it only kept IDs from the spatial server, meaning I was able to prevent real cross-section matches from being discarded. This improvement saved me hours of troubleshooting and testing because I initially implemented a more complicated solution for this same issue. I realized that there is a value of simplicity in problem solving and that sometimes the best solution is the simplest one.

Beyond fixing the scanner, I made several updates to the overall events experience. Feedback from users prompted me to change the live events scanner red pulsing dot to a green one. The events scanner now matches Luma's eight categories, which improves event organization and filtering. I also created a client-side topic classification that fills in existing rows based on web scraped data, which was a time-consuming detailed task.

I also increased the nearby limit ceiling to 2000 when working on the spatial aspects. This change provided a wider global fetch for the Events scanner and fixed the annoying 422 error that was clearing our marker layer. To improve the overall user experience I spent a lot of time making sure the events scanner only displayed the correct data. I also added a filter to the events scanner to ensure that non-event portals did not slip into the scanner. All of these changes have improved the ease of use for the overall experience.

A more advanced feature I completed today was the addition of a cron scraper, which will now integrate Web3 and blockchain events from the curated Luma calendars every three hours. This task was complicated with Mapbox geocoding, but adds a lot of value to our current events database, and will ultimately provide relevant and timely data moving forward. I also adjusted the event portals to be 3D on the map before events begin, and to hide them after events end, which enhances user experience by adding a more dynamic touch.

It is true that there were positive outcomes of the day, but there were also challenges that had to be dealt with. One of the issues that I faced was bugs relating to the Luma scraper that needed me to do a complete rewrite of the code in order to get it to fetch the data successfully. An ASCII User-Agent issue caused the first implementation to crash which was very annoying especially since there were workarounds. Fortunately, this was resolved with a URL rebranding, as well as an implementation of a Google Geocoding fallback. This reinforced how important testing extensively is, and how unpredictable it can be when dealing with outside APIs.

Since I am building the project completely by myself, using Claude Code in VS Code has been revolutionary in terms of how I can break this down. I have been able to work in a loop without the need for other people to work with me on this, and that is massively important for me to keep the speed high on the journey to create a one person company with a valuation of 1 billion dollars. Every single thing I deployed today gets me closer to building that and while there are many things left to do, I am very happy of everything achieved.

With everything I said in mind, today was the perfect combination of obstacles and successes. Building the events scanner and spatial AI components represents even more of the progress that has to be built into the foundations of this platform. I cannot wait to face more challenges tomorrow and I cannot wait to keep improving the agentic web experience for our users.

← Back to the full build journal