BILL

End-to-End Platform Modernization

BILL's top FY26 priority is modernizing an 18-year-old product ecosystem held back by legacy tech, fragmented UX, and slow delivery.

BILL platform homepage

Overview

Modernization was really a trust problem.

BILL’s product had been built over nearly two decades, and it showed. What looked like inconsistency on the surface was really a deeper systems problem underneath: multiple frameworks, isolated repos, competing component libraries, and years of local decisions that never added up to one coherent product experience.

By FY26, the cost of that fragmentation was obvious. The product felt dated. Rollouts were slow and fragile. Page performance lagged. Teams were solving similar problems in completely different ways, and customers could feel the seams.

Modernization became the company’s attempt to fix that without doing a full rebuild. As design lead, my job was to help define the modern standard, drive adoption of the platform, and build the process and quality bar needed to scale that change across the product.

The problem(s)

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

“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.

No full rebuild.

BILL leadership was not open to invest in a 0-1 redesign of the product using ai-native workflows.

Leverage existing design system.

BILL's internal Trinity Design system had to be used as the proprietary platform driving modernization.

Maintain a polyglot framework.

The company is not willing to commit to a single engineering framework.

Uphold quarterly revenue targets.

Resourcing, staffing, and roadmap planning had to be extremely calculated.

Design spec was not a dependency.

Leadership dictated that engineering orgs were greenlit to migrate without design references.

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 is the enterprise-wide migration to the platform design system — deprecating four legacy component libraries and unifying thousands of component tags under a single, governed architecture. This is an ongoing effort targeting 100% adoption by end of FY26, with the core repo already showing significant traction as shown in the adoption curve. Massive shoutout to staff lead engineer Daniel Tupa and design systems architect David Cai for building the component migration pipeline with Copilot and scaling it across 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 political opportunities that Modernization presented was escalating the consolidation BILL's isolated Angular repositories into a single monorepo as a dependency for Modernization as a program. Each repo carried its own build process, library versions, test suites, and deployment pipelines — creating significant bottlenecks in development velocity, deployment stability, and page performance. Repo migration has had exponential impact on performance and deployment.

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.

93%

Adoption up from 12%

On to the unified platform design system

50%

Faster Delivery

Reduction in average development cycle times ranged from 30%-50% for adopting teams of new platform infrastructure.

44%

Faster LCP

Average improvement across top 10 traffic pages

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.