Treevah: Cloud file navigation shaped by testing, and the design operation that carried it to release.

ThemeDesignOps
PlatformWeb
RoleProduct Designer — Design System Lead, Interaction Design, DesignOps, User Testing
Year2025
CollaboratorsBryan Mulcrone (CEO / PM), Kelson Liu (Design System), Rudra Barad (Design System)

Core navigation + design system. Alpha shipped Apr 2025.

Treevah wanted the power of filters with the familiarity of folders. I worked through that tension in its cloud file manager, from a carousel that proved hard to learn to the tabbed navigation that shipped. I also led the design-system team and established the handoff that carried those decisions into engineering.

Overview

I connected the navigation decisions to the screens engineering built.

Treevah's cloud file manager lets people compare files across a hierarchy without opening one folder at a time. That flexibility made ordinary actions harder to define: which level am I looking at, what does this selection include, and what disappears when the window gets smaller?

I joined as a Product Designer and worked through those questions with product and engineering, from the layout I inherited to the tabbed navigation the alpha shipped with. I went on to lead the four-person Design System Team within a design org of about ten, establishing how approved flows became the high-fidelity screens engineers built. The Cloud Alpha shipped in April 2025.

Impact
The shipped Cloud Alpha: folders, subfolders and files held open at once, the side-by-side comparison the product is built around.
The shipped Treevah Cloud interface: a side nav, a Folder pane, a SubFolders pane, and a Files pane held open side by side.
Six layouts, from the design I inherited to the tabbed three-pane frozen for the alpha on March 6. Each is shown at full size in the sections below; the two February frames carry measurements from my width comparison.
Image detail
Drag or scroll to explore. Use the arrow keys when the image is focused.

Context

Comparing folders side by side made familiar actions less predictable.

In Treevah, several folder levels stay open in parallel panes. Power users can compare their contents without retracing a path through the hierarchy. For people arriving from Google Drive and Windows, however, the interface still has to make sense as a file manager. A faster route is little help if users cannot tell what they have selected.

The team had a parallel coordination problem. Five or six product designers owned research and early design, handing engineering flows at whatever fidelity they had reached. The four-person UI team maintained components but sat outside that handoff. Bryan Mulcrone, the CEO, coordinated product management across design and software.

The org I joined. The UI and design-system group sits outside the handoff path, which is what the operating model later changed.
Diagram of the org before the operating model. A band across the top reads 'Product management, Bryan Mulcrone, CEO, master PM across design and software'. Below it a Design org card holds two groups: UX / Product Design, doing research, early design and user testing and delivering whatever fidelity they can reach; and UI / Design System, owning components and the visual system and marked 'Not in the handoff path', with one pip labelled 'me'. A dashed line marked Handoff separates the design org from an Engineering card that builds what arrives, annotated 'Fidelity varies by designer'.

Layout

Three panes already existed. I gave them a clearer visual hierarchy.

I didn't introduce the three-pane layout. The design from before I joined had Folders beside Files; engineering's January 2 build already added Subfolders between them. Its indented tree still ran out of room a few levels down, ending in an ellipsis.

What I inherited: two panes in the earlier design, three in engineering's build.

Left: The earlier two-pane design, from before I joined: Folders and Files, with no subfolder layer.

Right: Engineering's build on January 2, 2025: Folders, Sub Folders and Files, with the subfolder tree trailing off at depth.

The two-pane starting state: a Folders list beside a Files table, with no subfolder pane.
Engineering's Treevah build in a browser on January 2, 2025: a Folders column, a Sub Folders column whose indented tree ends in a folder labelled with an ellipsis, and a Files pane stacking one card per selected folder, each with its own horizontal scrollbar.

I compared hierarchy patterns in Finder, Dropbox and Google Drive, then brought Microsoft Teams into a February review. Its sectioned window offered a clearer frame for Treevah than the card-heavy, dual-sidebar direction we were considering.

Sections could hold changing content without making every pane compete as a separate card. They also relied less on subtle color and elevation differences, an implementation risk I had found in the card approach. I argued for that structure, then led the visual design and validation of its UI spec.

More on Navigating DepthSee the January 30 exploration and thread3 images
The mapping exploration as a Figma frame: one combined sidebar tree, overflowing at depth and repeating entries in the pinned section. The page is still titled “[plan forfeited].”
The forfeited combined-sidebar attempt: one deep tree in a single sidebar, with Career Services and its children repeated in the pinned section below.
January 30: the exploration I posted, and the CEO's response.

Top: 10:17 PM. Bryan pulls my Loom into the team channel: “do you want to explain what you did in Google Drive (called mapping)- its super super interesting!”

Bottom: 10:50 PM, after further iterations: “this is defintely growing on me as a final interface,” with a note to drop the accordion from the navigation pane.

A Teams thread. Bryan Mulcrone, 1/30 10:17 PM, quoting a Loom link Chevis Zhou posted at 10:00 PM, writes: 'Chevis Zhou do you want to explain what you did in Google Drive (called mapping)- its super super interesting!' A reply below reads '^^^^Super interesting- AUTOMATIC Mapping of a hierchail navigation on left hand side.'
A Teams thread. Bryan Mulcrone, 1/30 10:50 PM, quoting Chevis Zhou's 10:04 PM message offering the latest version for comment, replies: 'this is defintely growing on me as a final interface- I love the file Pane and the navigation pane having the folders- i would say- i would get rid of the ACCORDIAN on the navigation pane, and just make that the folder filters on the side navigation bar. But I really like what I am seeing!'

The next approach borrowed free horizontal scrolling from macOS column view. In Finder, columns can use the whole window; inside Treevah's narrow Subfolders pane, they competed for a fraction of it. Names truncated, collapsing a panel moved the focal point, and the scroll could stop halfway through a column. Pinning also fought the reset behavior.

I proposed a carousel: three levels per page, a pager for moving deeper, and subfolders expanding vertically. It snapped to whole levels, giving the pane a stable frame.

Free horizontal scrolling: panes multiply rightward, names truncate, and the focal point moves every time a panel collapses.
Horizontal scrolling: subfolder panes multiplying rightward past the edge of the viewport, with truncated folder names.

Bryan questioned what the carousel would cost. Treevah sold side-by-side comparison, yet paging separated levels. It also introduced an unfamiliar interaction for users arriving from Google Drive and Windows, about seventy percent by his estimate.

I added breadcrumbs, pinnable panels and a level slider. Kelson Liu pointed out the remaining seam: the third and fourth levels could land on different pages. Pinning let users compare across that seam, but added another behavior to learn.

The carousel: one paged panel, three levels at a time, same-level folders expanding vertically instead of pushing the layout sideways.
The carousel: a Folders panel paged 3 of 6, showing Folder, Subfolder 1 and Subfolder 2 columns with same-level folders expanding vertically.
The carousel prototype tested in round α1.15, paging through levels without shifting the layout.

The carousel's strongest advantage was room for file names. In the same 1405px frame, it left the Files pane 1062px wide against horizontal scrolling's 800px. The file-name column grew from 349px to 551px. It bought that room by narrowing the folder pane, where navigation could still work with less width.

More on Navigating DepthSee how the width was measured1 image
The same 1405px frame, both ways. The carousel gives the file panel 1062px against horizontal scrolling's 800px, and takes the space from the folder pane.
A two-part measurement study headed 'Analyze critical UI stats when focusing on file panel, Carousel vs Horizontal Scrolling: folder name length, file name length, file panel width'. Above, the carousel layout in a 1405px frame with the file panel measured at 1062.2px, the file-name column at 551px and the folder name at 246px. Below, the horizontal-scrolling layout in the same 1405px frame with the file panel measured at 800px, the file-name column at 349px and the subfolder name at 188px.
Testimonial

“This actually makes a lot of sense — it eliminates the nested problem… It's like Mac in a way, but it's not: we're able to do multi-select, which makes it more manageable. Super interesting concept.”

Bryan MulcroneFounder & CEO, Treevah — reviewing the carousel proposal

The tabbed three-pane

Testing exposed the cost of that extra control: many participants struggled to understand the carousel. Its width advantage was real, but insufficient.

The Teams reference offered a way forward. In my markup, I moved its tab row from the content area into the Subfolders pane. Numbered pages became named tabs, so users could reach a level directly while keeping the Files pane wide. Jamelia, a product designer on the team, had proposed subfolder tabs in January; the Teams frame gave that idea a place to live.

My markup of Teams: the same three panes we needed for folders, subfolders and files. The one change was moving the tab row from the content pane into the subfolder pane.
A Microsoft Teams window marked up by hand. The left icon rail is labelled F, the chat list column is boxed and labelled SF, and the message pane on the right is labelled File. A second box around the Chat / Shared / Recap / Speaker Coach / Q&A / Meeting Whiteboard tab row has an arrow drawn from it back to the SF column.

On March 6, Bryan pinned the alpha freeze. Shae Brunson proposed holding the one- and two-panel systems and moving ahead with three panels. Seven minutes later, I posted the master layout with the question "3 panel?" That tabbed layout became the alpha.

Thursday, March 6: Shae's proposal to hold the one- and two-panel systems, then the master layout I posted in answer.
A Teams thread in the Advanced Cloud Design channel, with Bryan Mulcrone's alpha-freeze message pinned above it. Thursday 1:44 PM, a teammate asks what the team thinks of the panels in the 2- and 3-panel systems turning into stacks when the screen shrinks. Shae Brunson replies: 'think we should do another round of designs?' and '1 panel and 2 panel on hold and make 3 panel is good for alpha? so we can keep discussing 1 and 2 panel'. Thursday 1:51 PM, Chevis Zhou posts a screenshot of the three-pane master layout captioned '3 panel?', with two thumbs-up and two hearts.

Selection Semantics

Folders behave like containers; subfolders behave like filters.

A folder-shaped interface creates an expectation: selecting a parent selects everything beneath it. Applied at every level in Treevah, that rule produced slow cascades into content users couldn't see and ambiguous partially selected states.

We kept recursive selection where it helped with bulk work, and changed it where users needed to refine:

  • Folders are containers. Selecting one includes everything beneath it, as in a traditional file manager.
  • Subfolders are filters. Selection includes immediate contents without cascading deeper. The right-click menu offers the recursive action when needed.
  • Files are granular. Selection touches the individual file, with Select All updating around it.
One interaction model, three cascade rules. The Subfolder pane breaks tradition on purpose.
Three cards, Folder pane / Container, Subfolder pane / Filter and File pane / Granular, each showing how far a selection reaches down an indented list.

This gave each pane a predictable scope and binary selection feedback. A power user could reach into one subfolder without selecting its siblings or descendants; bulk actions still worked from the Folders pane. The three rules became the implementation spec.

The model argued in the team thread, including a teammate's objection that non-cascading subfolders contradicted an earlier informal study. The three-tier split came out of that discussion.
A team discussion thread arguing the three-tier selection model, including a teammate pushing back that non-cascading subfolder selection contradicted an earlier casual study.

Responsiveness

Narrower windows hide panes without changing the user's chosen file view.

An early responsive proposal replaced column view with list view when the Files pane became narrow. I flagged a trap: after the automatic switch, the user couldn't choose column view again until the window grew. The layout would silently overrule their view control.

I proposed keeping the views intact and hiding panels behind a toggle, drawing on Teams and Notion. Kelson built the responsive prototype. We chose click-to-reveal over hover so a passing cursor would not open a panel.

The one- and two-panel layouts returned as narrower states of the three-pane design. Each fold absorbed a pane into a tab row: three panels, then two, then one, with overflow below the minimum width. The file view stayed under the user's control.

The fold: three panels, then two, then one. Each step moves a pane into a tab row; the column view itself is never swapped.
Three base layouts side by side: a 3-panel layout with Folders, Subfolders and Files; a 2-panel layout where the subfolder levels sit as tabs in the Folders pane; and a 1-panel layout with Folder, Subfolder and Files as tabs.
The hiding pattern specified at 920px and 480px: the hierarchy panes close behind a menu and open over the files on demand.
Responsiveness specs at the 920px and 480px breakpoints, showing panes collapsing behind a toggle rather than the file view switching to a list.

Validation

Weekly testing changed the navigation before the alpha shipped.

I co-led the Cloud Alpha testing pipeline with Rudra Barad and Bryan, setting feature order, prototype ownership and a rolling weekly cycle. Across more than fifteen rounds, we compared page-list accordions and tabs, search patterns, the subfolder manage bar and competing download flows. Each round had a stamp-voted analysis board in Figma.

One round, three ways: download flows tested against each other.
Download flow option one: sidebar multi-select with a hierarchy preview of what the selection will pull down.
Download flow option two: an explicit Download button with a narrower preview panel.
Download flow option three: inline selected-state rows, with the selection marked in the file list itself.

The findings changed my designs. The carousel gave way to tabs, and my stronger early color treatments consistently lost to muted options. Together, those results favored an interface that made fewer demands on people learning a new file model.

The testing file, page by page. Every round got its own page, participants and analysis board.

Top: α1.1 through α1.15 down the left rail: light themes, address bar, file bucket, multi-select, search and sort, manage bar, selection, responsiveness, colour and navigation.

Bottom: Inside round α1.15: its numbered flows, one per step of the path participants walked. The path is traced step by step below.

The Cloud Alpha user-testing Figma file, showing pages α1.1 to α1.15 and a canvas of prototype flows assigned to named participants.
The α1.15 colour and navigation round: prototype flows for colour A/B/C and six carousel interaction paths.
More on ValidationWalk one test round as a user flow2 images · 1 min read

Round α1.15 put the carousel in front of participants as one continuous path through a deep hierarchy, built as seven numbered prototype flows. It opened on familiar ground: an illustration of a Mac-like folder panel, then drilling down by clicking folders, the habit everyone brings from Finder and Google Drive.

Steps two and three were the real test. Typing a number to focus a level and paging between levels with arrows have no equivalent in a folder tree, so those tasks exposed where participants had to learn a new interaction. Steps four and five tested collapse: which control closes a level, and whether one panel can close while the others stay open. The round ended on an open question, so participants described the model in their own words before anyone explained it to them.

The path every α1.15 participant walked. The two highlighted steps have no equivalent in a folder tree, which is where the carousel's learning cost would show.
A flow diagram of test round α1.15 in seven numbered steps: 00 Mac-like folder panel illustration, 01 go deeper by clicking on folders, 02 type in a number to focus a level, 03 use left and right arrows to go up and down, 04 collapse versus open action, 05 individual folder panel collapse, 06 question. Steps 02 and 03 are highlighted under the label 'No folder-world equivalent'.
The interaction spec behind the round. It lists three ways to reach a level; two of them, typing its number and the arrows, became steps 02 and 03 of the test.
The annotated carousel interaction spec: a Finder header with a level pager reading 3 of 6, three folder panels labelled 1st, 2nd and 3rd panel, and a Files pane. Callouts explain the pager, the collapse button that closes every panel past the highlighted one, the focused-file indicator, and a note listing three ways to reach and fix a folder level: type in its number, scroll horizontally to it, or slide to it with the left and right arrows.

The selection flow, as a set of forks

Selection needed a different kind of flow: not one path but a set of decision points, each with more than one defensible answer. The late-January test script was written as those forks, and participants chose between the branches:

  • Selecting a parent folder. Lock everything beneath it as one selection, or leave the children selectable so users can refine?
  • Selecting beneath a path that's already selected. Reset the selection automatically, or make the user click off first?
  • Selecting every level-two folder under one parent. Should the files come with them? The question was what users expected, not what the data model preferred.
  • Moving a file card. Should the hierarchy travel with it, should the card snap back while only its files move, or should moving be limited to files?

The three-tier model in Selection Semantics is what those branches resolved into: containers where users expected the whole hierarchy to move, filters where they wanted to refine, and exact selection at the file.

Two research streams I didn't run also informed the design. Mounica Vijayender's Product Tour survey of forty participants showed how users wanted to be introduced to the product, which I used when designing for learnability. The AI team's thirty-response survey found users preferring rule-based automation over autonomous AI, with concerns about privacy and undo, which supported keeping the file manager's core behavior deterministic.

The Operating Model

Vertical product teams and a shared design-system team, working through one handoff.

Product reviews could settle a flow without settling the screen engineering would build. I proposed making that translation an explicit responsibility of the Design System Team.

I drew on the vertical/horizontal distinction in a Microsoft operating model I had studied: product teams supported by shared functions. In that benchmark, product teams carried their designs through high fidelity. My adaptation placed that work with Treevah's shared team.

Product designers kept ownership of scoping, research, testing and iteration, delivering approved mid-fidelity flows. My team turned those flows into system-compliant high fidelity and handled developer handoff. Bryan approved the proposal and asked me to lead the four-person team.

The change showed up in cycle time. Before it, a feature took about three weeks to move from ideation and research through mid-fidelity design, user testing and high fidelity to developer handoff. With the Design System Team owning high fidelity and handoff, the same cycle took about two weeks. A small feature with light research and testing could get through in one.

My adaptation of the benchmark. Product teams deliver mid-fidelity flows; the shared Design System Team produces system-compliant high fidelity and owns the developer handoff.
Diagram of the two-tier operating model. Above, the Microsoft benchmark in muted type: a vertical product team owning ideation through high fidelity, handing to engineering, with a horizontal system team supplying the system. Below, the Treevah model: Product Teams own ideation, scoping, research, user testing and iteration and deliver Mid-Fi; a dashed handoff boundary marked Mid-Fi to Hi-Fi; the Design System Team translates every Mid-Fi into system-compliant high fidelity and owns the entire developer handoff.

Making the model work meant getting product designers, the system team and developers to agree on what belonged at each stage. A design's location and readiness needed to mean the same thing to all three groups.

Brand tests had a separate requirement: color and typography alternatives went onto one master mockup before comparison, so differences in layout construction wouldn't bias the choice.

Figma Governance

Separate homes for screens and prototypes made the handoff explicit.

I organized Figma around two paths. Screens moved from Exploration to approved designs in Sandbox, then into the system-compliant Handoff file my team prepared for engineering. Prototypes moved from Exploration into User Testing and analysis, owned by product teams and researchers.

That separation answered two everyday questions: where should I put this work, and is it ready to build? On May 1, 2025, I published "[Shared] Navigating Treevah's Figma DesignOps — A Guide for All Teams," including how to find information across the files.

The two tracks as they exist in the file browser. Both start in the same Exploration file, then separate: screens toward Handoff, prototypes toward testing and analysis. The 1.2 follows the versioning convention: same purpose, fresh file, because 1.1 had filled up.
Two labelled rows of Figma file cards. The top row, UI Screens, runs 1.2 Exploration (annotated 'Pre-meeting designs'), 02 Staging Sandbox ('Post-meeting, Approved designs', with a note reading 'no interactive prototypes here'), and 4 Production Handoff ('Design-system-transformed designs'). The bottom row, Interactive Prototypes, runs the same 1.2 Exploration file into 3.2 User Testing (Prototypes) and 3 User Testing Analysis.
More on Figma GovernanceInspect the file conventions and handoff templates3 images · 1 min read

Versioning followed one convention: "1.1 → 1.2" means the same purpose in a fresh file, usually because the old one had become too heavy. Projects and pages were organized by function rather than by owner, so finding a design never required knowing who made it.

The user-flow template was a COPY ME file with numbered steps and slots for the date a flow was ready for handoff and the date it was built. Handoff specs were annotated down to pane widths and stroke weights.

The Figma organization I governed, with projects and files organized by function rather than by owner.
The Treevah Figma organization: project cards for Assets for Internal Use, Filter Folder Research, Treevah AI, Treevah Cloud, Treevah Figma 101 and Treevah Libraries, each showing its named files including 1.2 Exploration, 3.1 Archived Design, 3.2 Staging Sandbox, User Test Analysis and two Design System files.
The COPY ME user-flow template, with slots for the date a flow is ready for handoff and the date it is built.
The user-flow template file, headed '[Review Me] An illustrative template for user flow designs' and labelled 'TrashTab - Chevis - April 24, 2025', with two filled slots reading 'Date ready for handoff: APR 22, 2025' and 'Date that is deved: APR XXX, 2025' above a checklist of flow decisions.
An annotated master spec from the Handoff file: pane widths of 66, 190, 238 and 741px, down to a 0.8px stroke note.
An annotated master UI spec from the Handoff file, with pane widths called out at 66, 190, 238 and 741 pixels, with a note specifying a 0.8px stroke.

The System

A new AI team built on the system without my involvement.

The Handoff screens drew from two libraries. Atomic components covered primitives, empty states and icons. Complex components assembled those parts into sidebars, folder panes and the file panel.

I initiated the tokenization strategy, using semantic styles instead of raw values, and built the library with Kelson and Rudra. Type ran from Display 2xl→xs and Text xl→xs; color names described roles such as File Select, Container and Base. Engineering adopted more than eighty components.

The two libraries and the semantic scale in the file. Color styles are named by role, so a brand change is one edit.
The Handoff Figma file open, showing the page rails on the left: Atomic Component Library with Components, Primitives, Empty States and Icons, and Complex Component Library with Left and top Sidebar, F/SF and File Panel — and the styles panel on the right listing the text scale Display 2xl through xs and Text xl through xs, plus the colour styles File Select, Master Color, Staging, Container and Base.

A new AI team later used the same Figma structure, master components and testing pipeline for work I wasn't involved in. When Rafael and Rudra encountered component-interaction problems, they resolved them within the system. The operating model could support a new workstream without requiring me to direct it.

The atomic library's overview board, one part of a system that grew past eighty components.
An overview board of the atomic component library: a grid of specimen cards for Accordion, Alert Dialog, Aspect Ratio, Avatar, Button, Checkbox, Collapsible, Command, Context Menu, Dialog, Dropdown Menu, Hover Card, Input, Label, Menubar, Navigation Menu, Popover, Progress, Radio Group, Scroll Area, Select, Separator, Slider, Switch, Tabs, Textarea, Tooltip and Alert, each with a description and a live example.

Outcome

The alpha shipped, and the design operation outlasted my direct involvement.

The April 2025 Cloud Alpha shipped with the tabbed three-pane navigation, pane-specific selection rules and responsive behavior, built from the Handoff file and system components. The shared handoff took about a week out of each feature cycle.

The file hierarchy was entering everyday team use before release. By early March, teammates were quoting it to each other when deciding where designs and prototypes belonged.

March 8, 2025: teammates asking where their work belongs and quoting the file hierarchy to each other.
A Teams thread from March 8, 2025. Shae Brunson asks 'where are we putting the prototypes'. EricKhuu replies quoting an earlier message from Chevis Zhou describing the design file hierarchy, 'File 1: Exploration (Clear, broad, and captures the spirit of early-stage design) File 1.1 Archived…' — and asks 'Should we put our designs in File 1.2 or File 2'.

The beta launched after I left in June 2025. Per Treevah's post-launch data, the redesigned experience drove an 8% increase in adoption, a double-digit NPS improvement and 23% less friction in key flows. I did not measure those outcomes; they describe the product this work helped shape.

Closer to the work itself, Kelson once asked how long a batch of screens had taken. About five hours, I told him, because the design system was already there. His reply:

Testimonial

“more like 5 hours of designing, 20 hours of thinking~”

Kelson LiuDesign System Team, Treevah
Testimonial

“He didn't just design screens — he took full responsibility for building a design system from the ground up. He introduced tokenization, cleaned up inconsistencies, and created a scalable foundation that other designers could easily plug into… He improved design processes, created structure where there was none, and made a measurable impact on the team's overall workflow and collaboration.”

Bryan MulcroneFounder & CEO, Treevah

Key Takeaways

The carousel taught me to separate a useful property from the design that first delivered it. More room for file names was worth keeping; the paging model was not. Testing and teammates' objections helped us carry the advantage into tabs.

The operating model followed the same logic. Microsoft's structure gave me a starting distinction, but Treevah needed its shared team to own high fidelity and handoff. The most useful evidence of that choice was other people using the structure on work I didn't lead.

Related Work