Rebuilding Uplimit's event & live-meeting flow to design out a year of recurring bugs
Live Event Setup
Reframed a “patch the UI” mandate into a focused rebuild of Uplimit's event & live-meeting setup — 10 shipped engineering tickets that structurally design out ~50 recurring calendar bugs.
- Role
- Lead Product Designer (sole designer)
- Contribution
- Strategy · Interaction · Visual · Eng collaboration
- Platform
- Enterprise SaaS · Admin tooling
- Year
- 2026
~50
Calendar bugs/yr structurally targeted
10
Eng tickets — all shipped
6+
Enterprise accounts affected
3
Meeting types, one inline flow
“You can get over the hump and ‘get it’ — but jumping in cold is genuinely hard.”
The situation
Uplimit's admin tooling for running cohort programs had grown feature by feature, and the seams showed: 77 calendar/event tickets in a year, 50 of them bugs (about one a week) across six enterprise accounts. Leadership reframed it from a bug backlog into a usability and reliability problem.
The problems, concretely
Four failures recurred: critical settings buried under “advanced settings”; confusion over which meeting link learners actually get; type-switching that left dead URLs behind; and cluttered setup that quietly let empty required fields through.
Decision 1 — Rebuild the flow, don't patch it
The mandate was to patch, not rebuild. Mapping the flow against the failures showed patching would cost about the same while leaving the model just as confusing — so I made the effort-vs-outcome case, got alignment to rebuild, and de-risked it with peer review first.
Before
After
Decision 2 — Meet admins inline, on the calendar
I replaced the disconnected center-screen modal with an inline popover anchored to the day you click — the Google Calendar mental model — with explicit positioning so it opens predictably rather than jumpy.
Before
After
Decision 3 — Progressive disclosure by meeting type
I dropped “advanced settings” for three tabs — Virtual live session, In-person, Reminder — surfacing only the settings each type needs, with sensible defaults and plain-language descriptions.
Decision 4 — Make the link unambiguous
The meeting-type selector (Uplimit Stream / Zoom / External) shows the platform and actual URL upfront, and switching type now clears the old URL — killing the stale-link bug at its source.
Decision 5 — Surface notifications, close the loop
Invitations moved out of hidden settings into a visible control with a template editor and test-send, plus color-coded published states and an invite-status view after creation.
Result & impact
The design decomposed into 10 independently buildable tickets — all shipped with two QA passes and now in controlled rollout, including front-end PRs I shipped myself. It structurally designs out the ~50 prior-year calendar bugs; since it's a controlled rollout, I'm tracking completion rate, inline-flow adoption, and tickets vs. baseline as leading indicators.
What I'd carry forward
Push back on a constraint in service of its intent — “just patch it” existed to protect eng effort, and showing a rebuild cost the same is what bought the better outcome. And much of “good UX” on a fragile system is error-prevention, not visual polish: clearing the URL on type-switch did more for reliability than any layout change.