GIGIlistening…

Build Journal

Jitsi Meeting Enhancements: Owner Controls & Visitor Access — May 25, 2026

I improved Jitsi by enabling owners to end meetings and allowing logged-in visitors to join live sessions. Here’s how I tackled the challenges.

2 changes3 min readby Rob

What shipped

  • Owner Controls FixedPortal owners can now end meetings for all participants.
  • Visitor Access EnabledLogged-in visitors can join live meetings without owning a portal.

Today, I set out to enhance the Jitsi integration within my platform to improve the user experience for both portal owners and visitors. Specifically, I aimed to enable meeting owners to end sessions for all participants and to allow logged-in visitors to join live meetings without needing full portal ownership. After a solid six-hour coding session, I successfully shipped these features, but not without encountering some frustrating bugs along the way.

The first feature I implemented was allowing logged-in visitors to join live meetings. This change was essential because it opens up the platform to a broader audience, allowing more users to participate in discussions or collaborations without needing a full portal account. The implementation involved modifying the authentication checks during the meeting joining process. I spent a good chunk of time refining the logic to ensure that only logged-in users could access the live sessions while keeping the security tight. After a few iterations and some testing, I was able to get it working smoothly.

However, the real challenge came with the second feature: enabling portal owners to end meetings for all participants. Initially, I thought it would be a straightforward task, but I quickly ran into a wall. The 'End meeting for all' button was visible, but clicking it had no effect—the call just kept running. This was a critical functionality that needed to be rectified, as it left portal owners feeling powerless during meetings they were supposed to control.

After some investigation, I discovered that the root cause was a hard-coded disable in the `jitsiPortalCallLockdownConfig()` function. It was an oversight that I hadn't anticipated, and it took me a while to trace it back to its source. Once I identified the issue, I made the necessary adjustments to the configuration, allowing the button to function correctly. It was a relief to finally see it working after several attempts, and I felt a sense of accomplishment as I committed the fix.

Reflecting on the day's work, I realize how essential it is to maintain a proactive approach to debugging. My experience with this project reinforced the importance of thoroughly reviewing the codebase and understanding how different components interact. Working solo with Claude Code in VS Code, I felt like I was navigating through a maze at times, but having AI as my partner helped me pinpoint issues faster than I could have done alone.

While the features I shipped today are a step in the right direction, they are just the beginning. My vision of building a one-man-show company with a billion-dollar valuation relies on continually improving the user experience and ensuring that the platform is both functional and intuitive. Each small enhancement contributes to that larger goal, and I’m proud of the progress I made today.

As I wrap up this entry, I can't help but think about the challenges that lie ahead. There are still many areas to improve, and the journey of building the agentic web is far from over. But with each commit, I feel more equipped to tackle the complexities of this project. Tomorrow, I plan to dive deeper into further enhancements for the Jitsi integration and explore ways to optimize the overall performance of the platform. Here’s to another day of coding and building toward something great.

Terms in this entryGEO PortalReseller

← Back to the full build journal