Redesigning Meet while people are still in calls
we thought it was a theme pass. it became ripping out years of code, loaders, and infrastructure, mid-traffic.
We redesigned Huddle Meet while it was already carrying real traffic. People were mid-call on the old chrome while we shipped the new one.
We started wrong in our heads
The kickoff story was color and theming. New look, fresher UI, maybe a tighter control bar.
That is not what consumed the calendar.
Once we opened the old shell, years of code was in the way. We pulled a lot of it out. New loaders. Better infrastructure around how the app booted and fetched. Performance work. Systematic layout and state changes that were not “pick a palette.”
Theming was the visible tip. Architecture and cleanup were the bulk of the time, and they took longer than anyone had budgeted when we still thought this was a skin.
Why touch it at all
The app worked. It also felt stacked: inconsistent controls, weaker mobile, more hackathon survivor than work tool.
So the real goal became: faster loads, clearer controls, layout that did not fight the video, and a codebase we could keep changing without fear.
What “redesign” actually meant
- Remove or replace old paths written years earlier
- Loaders and boot sequence that did not stall first media
- Infrastructure / data-fetch changes under the UI
- Control chrome you could find under stress
- Only then the visual system everyone noticed in screenshots
I started by deleting annoying parts, then rebuilt slow bits. Unglamorous. Necessary.
Shipping without a clean cutover
Flag the shell when you can. Watch join success and control usage. Do not force everyone to relearn leave overnight.
Half-migrated settings are where bugs breed. Finish one surface (lobby vs in-call vs settings) before opening three.
What surprised me
Not only WebRTC. Browser media permissions and device lists burned time.
Also the estimate miss: “theme refresh” turned into systems work. That gap is the part I would write on the kickoff doc next time.
People only notice meeting UX when it is slow or mute takes two clicks. Silence is success.
What I would insist on next time
Call the project what it is (rebuild under a live product) so scope matches reality. Wire analytics before polish. Ship mobile chrome earlier. Leave a cleaner media state machine than nested hooks if you get one honest rewrite.