BILL

End-to-End Platform Modernization

BILL's highest-priority initiative in FY26. initiative to modernize an 18-year-old product ecosystem across legacy architecture, fragmented UX, and slow delivery systems, while improving trust, performance, and workflow speed without stopping the business.

My Role

Design Lead

BILL platform homepage

Overview

Modernization = restoring user trust.

BILL's product ecosystem had been built and extended across nearly two decades. What customers experienced as inconsistency was actually the visible surface of a deeper systems problem: two frameworks, nine isolated repos, six design systems (or non-systems), and years of local decisions that never had to reconcile into one platform story. We were shipping our org and the customer could feel it.

By FY26, the costs were impossible to ignore. Rollouts were slow and fragile. Page performance lagged. Core workflows were visually dated and structurally inconsistent. Teams were shipping into different shells, with different patterns, through different technical pathways. The company was not ready for a full rebuild, but with competitors scaling faster on newer platforms it could no longer afford to coast.

The result was Modernization as a program. A multi-layered initiative that spanned backend consolidation, frontend unification, an org-wide migration directive, and new standards for the way we work as a culture. As design lead of a cross functional A-team, I was responsible for standardizing system UX frameworks, design system adoption, workflow redesign, and a scalable QA process to build quality control into the culture. into one coordinated program. The job was not just to polish isolated surfaces. It was to help the organization move an entire platform toward a more coherent future without breaking the present.

The problem

Deeply fragmented UX, legacy architecture, slow delivery, poor performance, and eroding customer trust.

My role

Design Lead

The mod squad

3 Directors, 3 Leads, 2 Data Scientists, 1 Project Manager

Outcomes

87% platform adoption YTD, 35% faster eng cycle time, 44% faster LCP, 90% increase in customer satisfaction scores.

“I feel like I have to apologize for BILL… It looks very sort of WEB 1.0, enterprise-y. It doesn't look like modern software.”

-Top AC console user

Constraints

Changing the tires without pulling over.

Constraint 01

No Rebuild

The company was still not open to a frontend rebuild. Modernization had to happen incrementally.

Constraint 02

Leverage the existing design system

We had to use and maintain the current design system platform.

Constraint 03

Polyglot Reality

The product architecture still had to support two frameworks throughout the platform evolution.

Constraint 04

No Product Slowdown

Even though it was the company's top priority, modernization could not negatively impact quarterly revenue goals.

Modernization Strategy

Identifying three coordinated workstreams to turn a vague mandate into an actionable program.

The initiative only worked because modernization was framed as experience, system, and platform consolidation happening in parallel, rather than as isolated fixes.

Workstream 01

Experience Unification

Ratification of core IA experiences was critical to establish the standard to evolve to. The Trinity Template Library was leveraged as the sublevel workstream to accomplish this.

  • Unified UI shell
  • Global page headers
  • Drawers, Panels, Dialogs, Takeovers
  • Datagrids
  • UX paradigms
Workstream 02

System Adoption

Used modernization as the leadership-backed forcing function to migrate 63 squads on to a single system and deprecate independent libraries that were fragmenting the experience for our end users.

5→1

Design system migration

Workstream 03

Tech Consolidation

The web platform team used Modernization as the opportunity to consolidate the 7 NG repos that were shipping the BILL experience into a single mono repo architecture for more robust rollouts, improve performance, and enforce org-level QA processes.

7→1

Repos consolidated

Workstream 01

Establishing the modern standard.

In order to migrate the entire product to a unified experience, we first needed to identify what that north star vision of that experience was. The work to do so involved months of deep org-wide collaboration and research that you can learn more about in detail in the Trinity Template Library case study.


By defining the core UX architecture and establishing that through pattern level components, we were laying the groundwork for a consistent and predictable experience that could be propagated at scale throughout the product by way of incremental adoption.

Page Template
Data Grid Template
Takeover Template
Drawer / Panel Template
Dialog Template

Page Template

The foundational layout for all primary product views. Defines the relationship between the UI shell, page header, and canvas content area.

  • Top nav + left sidebar shell structure
  • Breadcrumb hierarchy and page titling
  • Banner and tab group slots
  • Action button placement patterns

Data Grid

Data grid is the cornerstone of the BILL product experience. Structures dense tabular data with inline actions, sorting, filtering, and pagination.

  • Sortable column headers with type indicators
  • Row-level actions and batch operations
  • Filter bar with saved view support
  • Pagination and density controls

Takeover

A popover container to serve single or multistep workflows that guide users through tasks like creating payments, onboarding, or completing approvals.

  • Step indicator with completion states
  • Progressive disclosure of form sections
  • Save and exit at any point
  • Review and confirm pattern

Drawer / Panel

Contextual overlays that slide in from the right to show detail views, edit forms, or secondary workflows without losing page context.

  • Right-anchored slide-in animation
  • Scrim overlay with click-to-dismiss
  • Scrollable body with sticky header/footer
  • Nested drawer support

Dialog

Focused interruption for confirmations, destructive actions, or compact task completion that demands user attention.

  • Centered dialog with scrim backdrop
  • Confirmation and destructive variants
  • Keyboard-accessible dismiss (Esc)
  • Responsive scaling at small viewports

Workstream 02

Design system adoption at scale.

A cornerstone of the modernization initiative was the adoption of the platform design system which boils down to an enterprise level migration.

This is an ongoing effort to hit 100% adoption by the end of FY26. Massive shoutout to staff lead engineer Daniel Tupa and design systems architect David Cai for establishing the component migration process with copilot and scaling it out to all squads.

Deprecating 4 libraries

BDC

Legacy BILL component library

3,254 tags

Web Components

Framework-agnostic custom elements

1,574 tags

Angular Material

Third-party component library

2,462 tags

Hardcoded Custom

One-off inline implementations

scattered

Trinity Angular

Unified design system — single source of truth

Adoption over time — Core repo

Core Repo Component Adoption
HTML tag count by library · May 2025 – Mar 2026
15k 10k 5k 0 May 2025 Jul 2025 Sep 2025 Nov 2025 Jan 2026 Mar 2026
63%
tri-ng 12,345 tags
17%
bdc 3,254 tags
13%
mat 2,462 tags
8%
tri-wc 1,574 tags

Workstream 03

Repo Consolidation.

One of the biggest opportunities that modernization presented was the consolidation of the angular repositories into a single monorepo. BILL had been built over 7 isolated angular repositories over 20 years, each with its own build process, versions, test suites, and deployment pipelines. This fragmentation was a major bottleneck in the development process, a huge factor in the deployment fragility, and a major hit to page perfomrance when the homepage was sliced together with 7 MFEs.

This repo migration, dubbed the Angular Homecoming, is/was the largest factor in improving individual page performance across the product. Big kudos to the web platform team at BILL for driving this and making it happen.

Angular Repo Consolidation
6 fragmented repositories migrated into a unified monorepo on Angular 21
Silo'd Product Repos
Accounts Receivablelegacy
International Onboardinglegacy
Virtual Card Settingslegacy
Vendor Managementlegacy
International Payables Setuplegacy
Spend & Expenselegacy
Unified Monorepo Angular 21
Accounts Receivable
v21
International Onboarding
v21
Virtual Card Settings
v21
Vendor Management
v21
International Payables Setup
v21
Spend & Expense
Q3
Completed in:
Q2
Q3

Outcomes

Huge wins from the back, to the front (ends).

Modernization created measurable progress across system adoption, delivery speed, page performance, and cross-product UX quality, all while de-risking how the company ships change.

63%

Adoption up from 12%

On to the unified platform design system

3

Libraries Deprecated

Leadership directive to sunset 3 legacy libraries and hardcoded implementations

35%

Faster Delivery

Reduction in average development cycle times

44%

Faster LCP

Average improvement across top 10 traffic pages

1

Consistent Shell

Unified UX and UI shell across the product

Why these metrics mattered

The most important outcome was not any one percentage point. It was that the product began to behave more like a coordinated platform and less like a portfolio of isolated histories. That showed up in how teams shipped, how pages loaded, and how customers perceived overall quality.

The adoption curve also mattered strategically. Moving from roughly 12% to 63% meant the company finally had enough shared infrastructure to make consistency and speed feel compounding rather than aspirational.

Operational effect

We were not just delivering a visual refresh. We were changing the cost structure of product development: fewer duplicate systems to maintain, fewer bespoke decisions to make, and a stronger shared bar for quality before release.

That is what made the initiative feel like modernization instead of migration. The product got better for customers, and the organization got better at making the product.

Reflections

What this taught me about modernization at scale.

What worked

The strongest choice we made was framing modernization as one strategic program instead of splitting UX, system adoption, performance, and engineering quality into separate initiatives. That alignment gave the work leverage.

Once customers, PMs, designers, and engineers could all see their problem in the same modernization story, prioritization became much easier.

What stayed hard

Incremental modernization is inherently less elegant than a rebuild. Legacy realities, framework divergence, and active roadmap pressure constantly push against ideal architectural choices.

A large part of the work was managing those compromises without letting the initiative collapse back into local optimization.

What I'll carry forward

The deepest lesson was that modernization succeeds when customer trust, system adoption, visual refresh, and engineering velocity are treated as one problem. Separating them may simplify org charts, but it weakens outcomes.

The design lead role in a program like this is not just craft stewardship. It is strategic integration: keeping the whole platform pointed at a more coherent future.