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.
What shipped
- Owner Controls Fixed — Portal owners can now end meetings for all participants.
- Visitor Access Enabled — Logged-in visitors can join live meetings without owning a portal.
I focused on integrating Jitsi into my site for better user experience for portal owners and visitors. Specifically, I worked on allowing meeting owners to close the session for all participants and letting logged-in visitors join live meetings without being portal owners. After a 6-hour coding session, I added these features and encountered annoying bugs on the way.
The first feature I worked on was allowing logged-in visitors to join live meetings. This was crucial because without this feature the platform would remain closed to a majority of people. Also, it would mean fewer people at the discussions or collaborations who could get involved without being full portal owners. This required changing the authentication logic for the meeting joining process. I spent a lot of time working on the logic in order to make it secure while only allowing logged-in users to access to sessions. After several iterations and tests, I got it working.
However, the biggest problem was the second functionality which was allowing portal owners to end meetings for all participants. I expected this to be easy, but I hit a wall pretty quickly. The 'End meeting for all' button was present, but clicking on it did nothing to close off the call. This was important functionality because it made portal owners feel incapable in meetings they were supposed to be in control of.
Through some exploration, I found out that the root cause was a hard-coded disable in the `jitsiPortalCallLockdownConfig()` function. It was a mistake I did not expect, and it took a while to remember what to do. After finding the problem, I modified the configuration so that the button could be enabled. It finally working after all the times I did it gave me the satisfaction I needed, and made me happy as I committed the fix.
Looking back at the work day, I realize that I need to be even more proactive with my debugging. I learned from this project that just looking at the code isn’t enough, and one must know all the moving pieces. It can be very difficult to work on a project all alone, and working on this one with Claude Code in VS Code felt like I was stuck in a maze. AI as a “coworker” allowed me to identify problems much faster than I could have done by myself.
Though I shipped some features today, I have much more to accomplish. My dream of creating a billion-dollar one-man-show company depends on constantly enhancing the user experience and the usability of the platform. Every incremental improvement brings me closer to that goal, and I made solid headway in accomplishing my goal today.
Before I finish this entry, I will consider what other challenges I may face. I know there are other areas to work on, plus there is still a long way to go in constructing the agentic web. However, with every commit, I feel better prepared to understand more of the intricacies of the project. Tomorrow, I will look more into the improvements for the Jitsi integration as well as other ways to improve the overall performance of the platform. Another day of coding and working on building something great.