Problem
A migration with no other path forward
When Greenlight Guru acquired a company, one customer segment couldn’t migrate off their old product without a working Folders feature — full stop. It wasn’t a nice-to-have. It was the blocker standing between those customers and the product they’d already bought into.
And it wasn’t a simple file-organization feature. It needed a real permissions model behind it — one that could correctly surface inherited versus directly-granted access without ever leaking gated information to someone who shouldn’t see it.
Process
Learning OpenFGA under real pressure
I owned this end to end, design through frontend implementation, integrating with a permissions model (OpenFGA) I hadn’t worked with before. That meant learning how relationship-based permission structures actually connect while under real pressure to get it right — not in a sandbox.
When I hit a wall understanding how the permission graph should resolve visually, I leaned on AI to get unstuck and asked a lot of questions along the way, learning the technology as I went instead of stalling on it.
I took the autonomy to keep going, writing and driving a set of follow-up stories: fixing drag-and-drop flicker through optimistic updates and cache syncing, adding move confirmations, restructuring the folder tree hierarchy, adding breadcrumbs. The difference between “shipped” and “actually good to use” lived in that follow-up work.
Surfacing inherited vs. direct access without ever leaking gated info to a lower-access viewer — that was the whole UX problem.
Technical depth
What the work actually involved
- Integrated with OpenFGA (relationship-based access control) as a frontend consumer, not the backend owner.
- Solved the specific UX problem of surfacing inherited vs. direct permissions without leaking gated info to lower-access viewers.
- Post-launch performance and interaction fixes: optimistic UI updates, cache invalidation, and drag-and-drop reliability.
Outcome
Unblocked a hard customer migration that had no other path forward — and became the reference implementation the team still points to for permission-aware UI patterns.