Story 1 Wolters Kluwer

CCH iFirm by
Wolters Kluwer

Designing continuity across a fragmented SaaS ecosystem

6Products unified
5Markets
1Shared design system
L → SDevelopment effort
Systems thinking Product design Design system Customer validation Stakeholder alignment
Several years of work across accounting, tax and practice management products, while a fragmented portfolio was moving towards a more connected cloud environment. Some of this work cannot be shown as it was built. The interfaces here are redrawn and the data is altered; the decisions, constraints and outcomes are not.
01
The context

From on-premise to cloud

Global iFirm was evolving from a collection of products into a more connected cloud experience.

The on-premise product: a Windows desktop application with a document list, ribbon toolbar and a tax return open in a preview pane.
On-premise
The cloud product: a single CCH iFirm dashboard gathering last returns, resource allocation, work in progress, documents and annual revenue.
One environment
Design challenge

How might we help users move between products without losing context?

02
The research insight

Users don't think in products or clients. They think in the work they need to do.

The research insight

There is a mismatch between the user's mental model and the product model.

The key user mental model was

“I'm working on a tax return.”

The existing system, however, was built around a different mental model

“I'm working on a client.”  “I'm working on a product.”

A design opportunity might be

Shift the experience from client-based navigation towards workflow continuity.

Research method
  • 5Foundational research sessions with existing customers
  • 2Meetings with subject matter experts
03
The core problem

Unifying the Wolters Kluwer product ecosystem exposed a fundamental information architecture problem.

The core problem

Model

Step 1

Step 2

Step 3

Risk

Client-context products

Select a client

Select a product

Work

Systems only work with a client selected

Firm-context products

Select a product

Select a client

Work

Breaks workflow continuity

The risk of client-context

The on-premise client list: a long alphabetical roster of every client in the firm, opened in full whenever the user needs to switch.
CCH iFirm · the client switcher opens the full list
  • 01On-premise and CCH iFirm compliance apps are client centric
  • 02Some applications only work with client context
  • 03The current client switcher opens the full list of clients
  • 04The component is inefficient: slow and not smart

The risk of firm-context

The returns list in firm context: corporate returns for the whole firm, none of them started, with no client selected to work within.
CCH iFirm · the product opens at firm level
  • 01Doesn't support a continuous workflow
  • 02Users have to go back and forward to select another client
  • 03Open the selected client documentation or data
  • 04Move to the next job

The product makes users navigate between contexts instead of helping them progress through their work.

Design question

How can we make client context persistent across the experience without adding another layer of navigation or creating unnecessary development complexity?

04
My role

From problem definition to implementation

01 Frame the problem

Users were working across multiple products, but the experience didn't preserve their client context.

02 Understand the user

Conducted foundational research and interviews with SMEs to understand the jobs to be done, user goals and motivations.

03 Explore solutions

Explored multiple solutions for preserving client context across products while enhancing the user workflow.

04 Validate

Built a coded prototype of the proposed interaction.

05 Align and ship

Presented the findings and the different solution options to stakeholders.

06 Design handoff

Applied the existing design system to the new experience, ensuring the solution was consistent with the broader cloud product ecosystem.

05
Expected outcome

Ensure the post-migration experience preserves a strong, persistent client context that aligns with UK user workflows, while fitting coherently within Global iFirm's existing firm-level architecture.

06
The options

Three ways to solve the problem

01 Context preservation

Deep linking with client context.

  • +Lowest effort
  • +Solves the core problem
02 Context management

Deep linking and an in-app client switcher.

  • +More flexibility
  • −More interaction complexity
03 Context assistance

Deep linking, switcher and AI.

  • +Highest potential
  • −Highest complexity
The exploration board: each of the three proposals written out with its concept, how it works, positive impact, limitations, who it is best for, and what it leaves missing.
Solution exploration · the three proposals compared
The matrix

Which solution gives the right value for the effort?

Value against effort: the three proposals plotted, with Proposal 1 marked as the one chosen.
User and product value against implementation effort
07
The strategic decision

Proposal 1

Solve the core problem now. Keep the bigger opportunity open.

User valuePreserves client context
Product fitWorks with the existing experience
DeliveryLower implementation complexity
FutureKeeps the path open for richer contextual experiences
The strategic decision

From an empty state

CCH iFirm Personal Tax opening with no client selected: the workspace is greyed out behind a panel that says no client selected, and a contact list waiting to be searched.
CCH iFirm Personal Tax · no client context

To a more connected experience

The same product with the work already in front of the user: the returns list populated, each row carrying its status, its filing state and when it was last touched.
CCH iFirm · the client context carried across
08
The outcome

A simpler solution that worked for users, product and delivery

User

Client context is preserved

Users move between products without repeatedly re-establishing their context.

Product

A more connected experience

The solution fits the existing product model and design system.

Business and delivery

From an L to an S

The two richer proposals were L-sized builds. Testing the direction with customers before committing is what let us ship an S instead: the evidence supported the simplest of the three, so the team never spent the months the others would have cost, and the core problem was still solved.

In closing

My contribution was not just designing the interaction. I helped the team identify the right problem, explore the solution space, validate the direction with customers and converge on a solution that was both useful and feasible to build.

09
The system

The solution had to feel like part of the product

The experience needed to work within the existing Global iFirm ecosystem, navigation model and design system.

Navigation

Preserve context across product transitions.

Information architecture

Keep the experience clear within the existing structure.

Design system

Use established components, patterns and behaviours.

Consistency

Make the experience feel native to the receiving product.

Accessibility and design system adoption

Auditing the old product was how we argued for the new one

Alongside the interaction work I ran accessibility audits of the legacy software. The findings were not filed as a compliance report. They were the argument: most of what the audits surfaced was something the design system had already solved, so the audits stopped being a separate backlog competing for the same engineering time and became the case for adopting the system faster.

Before AI I ran them by hand, screen by screen. Since, I run them with tools like Figma Make and GitHub Copilot. That changed the pace, not the judgement. The tools surface candidates; deciding which are real barriers, which are noise, and which are worth the team's next sprint is still the design decision.

Improve the journey without creating a new interaction model.

The experience

Context follows the user

The returns list inside CCH iFirm with the firm and the active client carried in the header, and every return listed with its status.
Final proposal · less repetition, more continuity
01 Select a client

The client becomes the active context.

02 Start an action

The user navigates to another product.

03 Context is preserved

The destination opens within the same client context.

10
The validation

From static screens to a working experience

I translated the proposed experience into a functional coded prototype to test the interaction, behaviour and feasibility of the solution beyond static designs.

  1. Design
  2. Coded prototype
  3. Customer testing
  4. Evidence
  5. Confidence to proceed
Why code
  • 01Test the real interaction. Identify potential issues before development and refine the solution with a more realistic representation of the product.
  • 02Explore behaviour. Validate navigation, context and component behaviour across the experience.
  • 03Reduce implementation uncertainty. Move beyond static screens and test the flow as users would actually experience it.
Built with
  • HTML
  • CSS
  • JavaScript
  • TypeScript
  • GitHub Copilot
  • Vibe coding

I built it by vibe coding with GitHub Copilot: describing the behaviour I wanted in plain language and steering the result, rather than writing every line myself. The judgement stayed mine. Which interaction to test, what the design system allowed, where the edge cases were, and when the prototype was faithful enough to put in front of a customer.

The coded prototype · HTML, CSS, JavaScript and TypeScript
Validation

Testing the new experience with customers

We tested the experience with 5 customers who were transitioning from the on-premise product.

The task

Open the return for client Acme and check a piece of information in the client record.

What we observed
4 / 5Completed the task
1 / 5Needed assistance
~10 secTo reach the requested information
Avoided unnecessary implementation complexity
Validation
Customer

“It makes sense.”

Customer

“It's a question of getting used to it.”

Validation

The takeaway

The test indicated that customers transitioning from the on-premise experience could successfully understand and navigate the new structure, with most participants completing the task independently.

The remaining friction was primarily related to familiarity with the new experience rather than the underlying information architecture.

11
Implementation and handoff

From design system to implementation-ready product

01

Design system

Components and variants. Reusable components.

02

Interaction and behaviour

States, interactions and edge cases.

03

Implementation specs

Layout and spacing, visual properties, responsive behaviour.

04

Developer handoff

Ready for development. Design to development.

A detail of the handoff workflow: an assistant panel open over the returns list proposing changes to the screen, beside the inspector showing width, alignment and padding.
Handoff review · an assistant reading the screen alongside the inspector
Implementation and handoff

From design to implementation

The handoff board for the select-a-return flow, marked ready for dev: every screen of the journey laid out in sequence, each state annotated and linked to the step before it.
Design handoff · the select-a-return flow, ready for dev
13
How I would measure it

Is the context actually travelling?

No product analytics were available to me on this work, so this is the plan rather than the result. Written as it would go to the team.

Target behaviourArriving in a second product with the client already loaded, instead of selecting it again
Event to instrumentDestination product opened from a client context, against opened cold
The questionDoes the share of context-carried entries grow release over release?
At thirty daysIf it does not move, the deep link is not discoverable. That is a placement problem, not a model problem
12
Future direction

From preserving context to understanding context

An AI-powered contextual sidebar. The future opportunity was to make client context dynamic and helpful, rather than something the user has to manually maintain.

Workflow patterns

How the user typically works across products and tasks.

Assigned jobs

What work is currently assigned to them and which clients or jobs require attention.

Result

The product understands what the user is working on and helps them stay within that context.

The contextual assistant open beside the returns list: asked which returns need attention first, it answers that eighteen of the hundred and forty two open across the firm need attention today, breaks that into deadline risk, rejected filings and waiting on client, and names the source it read.
iFirm AI · contextual assistant, marked future concept
Concept · an AI-powered contextual sidebar
End to end

I stayed involved beyond the final screens, connecting design decisions to a working prototype, validating the experience with customers and translating the final solution into implementation-ready specifications.