Build Journal
Fixing Navigation, Enhancing GIGI Projects, and Streamlining Stripe — April 23, 2026
I tackled navigation bugs, improved GIGI project flows, and streamlined Stripe integration for #SPACE. Here’s how I built it all solo with AI support.
What shipped
- Navigation Fixes — Resolved stale localhost issues and implemented unconditional redirects.
- GIGI Projects UX — Enhanced project flows with intuitive handoff UI and notifications.
- Stripe Integration Streamlined — Fixed API issues and improved billing notifications for users.
- Project-Attention Badge — Introduced a badge for tracking project statuses in the navbar.
- Google Maps Marker Fix — Addressed flashing markers issue during socket events.
Today was a long grind, clocking in around seven hours, but the progress feels substantial. I set out to address some critical navigation issues, enhance the GIGI project flows, and streamline the Stripe integration process. What shipped? I resolved several navigation bugs, polished the user experience for project management, and fixed issues with the Stripe API that were causing headaches for users.
The day began with tackling navigation bugs that had been nagging me for a while. I fixed absolute URLs that were causing confusion when users accessed the app from a stale localhost environment. The previous implementation allowed users to get stuck on localhost:3001 while trying to access the live app. After a few hours of debugging, I implemented a solution that would unconditionally redirect stale localhost origins to the live app. This was a bit of a challenge since the previous session storage flags were interfering with the redirect logic, but I managed to clean that up effectively.
Next, I dove into the GIGI projects feature. I wanted to enhance the user experience for both project owners and admins. This involved rendering delivered artifacts in a more intuitive way, rather than displaying them as a JSON blob. I created a real handoff UI that included a big 'Open site' button and a notes card with a file list. This change not only improves the visual aspect but also makes it much easier for users to navigate their projects and understand what they need to do next. It’s satisfying to see how small tweaks in UX can lead to a more fluid experience.
One of the more significant features I rolled out today was the project-attention badge. This feature is designed to keep users informed about the status of their projects at a glance. The navbar now polls an API endpoint every 60 seconds to check for projects that are in various states like 'proposal ready' or 'awaiting payment'. The small pulsing dot on the profile icon serves as a gentle reminder to users that there are pending actions they need to take. I believe this will significantly enhance user engagement and ensure that nothing falls through the cracks.
I also spent a considerable amount of time working on the Stripe integration. I had to address issues that arose from the recent changes in Stripe’s API, particularly around subscription creation. The deprecated product_data parameter was causing errors, so I had to refactor the code to align with the new API structure. This took longer than expected, but I’m glad to report that the integration is now more robust and reliable. I also added a flow for handling delinquent billing, providing users with clear notifications when their payments fail.
While working on these features, I ran into my fair share of bugs. For instance, the Google Maps markers were flashing on every socket event due to a cleanup issue in the component lifecycle. I had to dive deep into the useEffect hooks to ensure that the markers maintained their state correctly without unnecessary re-renders. These types of issues often eat up more time than I’d like to admit, but they’re part of the learning curve.
Reflecting on today’s work, I can’t help but feel proud of the progress I’ve made. Building this platform solo with AI as my team has its challenges, but it’s incredibly rewarding to see the pieces come together. Each bug I fix and each feature I roll out brings me one step closer to my vision of a one-man-show company with a billion-dollar valuation. It’s a lofty goal, but every small victory counts.
In summary, today’s efforts not only improved the functionality of the navigation and project management systems but also enhanced the overall user experience. The new features and fixes are all part of building a more resilient platform that can support the growth I envision for hashtag.org and the agentic web. Tomorrow, I’ll continue refining these elements and tackling any new challenges that arise. The journey is long, but I’m committed to seeing it through.