HubSync - сlosing the gap
between design and code

HubSync - сlosing the gap
between design and code

HubSync is a leading tax and accounting software company trusted by over 40% of the top 25 accounting firms in the US. I helped bring its enterprise platform to mobile, taking the experience from design through implementation.

HubSync is a leading tax and accounting software company trusted by over 40% of the top 25 accounting firms in the US. I helped bring its enterprise platform to mobile, taking the experience from design through implementation.

✨

Connect to Content

Add layers or components to infinitely loop on your page.

2026

Design Engineer

Product Designer

Project challenge

Project challenge

The client came to us with an existing web platform and a two-month development window for a mobile MVP. The app needed to bring key document management workflows to mobile while staying consistent with the web product. The stakeholder presentation would help determine whether the project received further scope.

I had approximately one month to establish the mobile design foundation, with design and development overlapping to keep delivery moving.

The client came to us with an existing web platform and a two-month development window for a mobile MVP. The app needed to bring key document management workflows to mobile while staying consistent with the web product. The stakeholder presentation would help determine whether the project received further scope.

I had approximately one month to establish the mobile design foundation, with design and development overlapping to keep delivery moving.

Building every component from scratch would have left less time to implement and refine the core workflows. I evaluated UI libraries, selected one that fit our technical stack, and adapted its components to the web product’s visual language and mobile interaction patterns.

This gave development a reusable starting point. But a consistent design in Figma was only part of the challenge: the first working build revealed how much still needed to be resolved in the app.

Building every component from scratch would have left less time to implement and refine the core workflows. I evaluated UI libraries, selected one that fit our technical stack, and adapted its components to the web product’s visual language and mobile interaction patterns.

This gave development a reusable starting point. But a consistent design in Figma was only part of the challenge: the first working build revealed how much still needed to be resolved in the app.

Will we have enought time to polish the product?

Will it be 1 to 1 to what we have in Figma?

Will we have enought time to polish the product?

Will it be 1 to 1 to what we have in Figma?

Will we have enought time to polish the product?

Will it be 1 to 1 to what we have in Figma?

Delivery gap

Delivery gap

When the first working build arrived, the gap between the approved design and the implementation was immediately visible. Components that were consistent in Figma had different sizes, styles, and states in the app, while inputs and native elements behaved unpredictably. The product was functional, but it was not ready to present to stakeholders.

When the first working build arrived, the gap between the approved design and the implementation was immediately visible. Components that were consistent in Figma had different sizes, styles, and states in the app, while inputs and native elements behaved unpredictably. The product was functional, but it was not ready to present to stakeholders.

Instead of creating an endless feedback loop with engineering, I took direct ownership of the front-end quality. I worked closely with the developer, implementing and reviewing interface fixes while they focused on backend logic and integration. This expanded my role beyond design handoff and made me responsible for carrying the intended experience into production.

Instead of creating an endless feedback loop with engineering, I took direct ownership of the front-end quality. I worked closely with the developer, implementing and reviewing interface fixes while they focused on backend logic and integration. This expanded my role beyond design handoff and made me responsible for carrying the intended experience into production.

Notes

The home screen broadly matched the design, but visual inconsistencies and unfinished interactions still needed refinement.

Home

Move File

Native Elements

Invite

Original

First build

Notes

The home screen broadly matched the design, but visual inconsistencies and unfinished interactions still needed refinement.

Home

Move File

Native Elements

Invite

Original

First build

How I took visual QA beyond manual review

How I took visual QA beyond manual review

I began with a manual visual pass through the live app, flagging anything that felt inconsistent. This quickly revealed the limitation of reviewing by eye alone: subtle differences in spacing, sizing, and component states were easy to sense but difficult to verify without a reference.

Instead of logging isolated bugs one by one, I compared entire screens across three sources: the live app, the Figma designs, and the component code. I used Claude to analyze them and produce a structured report showing what matched, what differed, and where each issue originated.

I began with a manual visual pass through the live app, flagging anything that felt inconsistent. This quickly revealed the limitation of reviewing by eye alone: subtle differences in spacing, sizing, and component states were easy to sense but difficult to verify without a reference.

Instead of logging isolated bugs one by one, I compared entire screens across three sources: the live app, the Figma designs, and the component code. I used Claude to analyze them and produce a structured report showing what matched, what differed, and where each issue originated.

To make the process repeatable, I created a custom Visual QA skill that defined the comparison criteria and output format. I refined it until every report was concise and actionable, covering colors, typography, spacing, corner radius, component states, and interaction patterns.

Running an audit became simple: I provided a Figma frame link and, when available, the corresponding path in the codebase. Claude accessed the design through Figma MCP, applied the Visual QA skill, and returned a structured report that I could turn directly into Jira tickets.

To make the process repeatable, I created a custom Visual QA skill that defined the comparison criteria and output format. I refined it until every report was concise and actionable, covering colors, typography, spacing, corner radius, component states, and interaction patterns.

Running an audit became simple: I provided a Figma frame link and, when available, the corresponding path in the codebase. Claude accessed the design through Figma MCP, applied the Visual QA skill, and returned a structured report that I could turn directly into Jira tickets.

Wrong

icon color

Inconsistent

button styles

Invalid

icon size

Finding the Bugs Was Only Half the Job

Finding the Bugs Was Only Half the Job

With the issues documented in Jira, I began fixing them one by one using Claude Code. Each ticket became a focused task: identify the relevant component, explain the mismatch, and bring the implementation back in line with Figma. Claude handled file navigation and code edits, while I defined the expected result.

Before starting, I used CLAUDE.md to give Claude context about the project’s structure, frameworks, and conventions. This provided a shared reference for subsequent tasks instead of relying on instructions scattered across conversations.

With the issues documented in Jira, I began fixing them one by one using Claude Code. Each ticket became a focused task: identify the relevant component, explain the mismatch, and bring the implementation back in line with Figma. Claude handled file navigation and code edits, while I defined the expected result.

Before starting, I used CLAUDE.md to give Claude context about the project’s structure, frameworks, and conventions. This provided a shared reference for subsequent tasks instead of relying on instructions scattered across conversations.

The codebase relied on three sources of color tokens:

  • Gluestack (components and tokens)

  • Tailwind UI (tokens)

  • Custom tokens (Figma design system)

Simply asking Claude to replace individual tokens would leave the underlying inconsistency unresolved. I instead aligned the existing tokens with the Figma variables and migrated components to a single source of truth. Once the migration was complete, unused tokens could be marked as deprecated.

The codebase relied on three sources of color tokens:

  • Gluestack (components and tokens)

  • Tailwind UI (tokens)

  • Custom tokens (Figma design system)

Simply asking Claude to replace individual tokens would leave the underlying inconsistency unresolved. I instead aligned the existing tokens with the Figma variables and migrated components to a single source of truth. Once the migration was complete, unused tokens could be marked as deprecated.

It started in Figma. It ended with a commit.

It started in Figma. It ended with a commit.

In two weeks, I brought the mobile interface close to pixel-perfect alignment with Figma and consolidated three color-token systems into one shared source. What began as a design assignment became hands-on responsibility for the implemented experience, working alongside the developer to close the gap between the designs and the app.

In two weeks, I brought the mobile interface close to pixel-perfect alignment with Figma and consolidated three color-token systems into one shared source. What began as a design assignment became hands-on responsibility for the implemented experience, working alongside the developer to close the gap between the designs and the app.

The biggest shift was learning to direct implementation, not just describe what needed fixing. Claude handled code changes, but I remained responsible for the design decisions and reviewing the results. Clear project conventions, repeatable audits, and careful review made this possible. AI expanded what I could deliver; it did not replace my judgment about what was ready to ship.

The biggest shift was learning to direct implementation, not just describe what needed fixing. Claude handled code changes, but I remained responsible for the design decisions and reviewing the results. Clear project conventions, repeatable audits, and careful review made this possible. AI expanded what I could deliver; it did not replace my judgment about what was ready to ship.

Notes

Beyond visual alignment, I refined navigation, interaction behavior, and feedback to make the app feel more coherent and responsive. The screens below show selected examples of that broader transformation.

Home

Move File

Native Elements

Invite

First build

Final result

In two weeks, I overhauled the mobile experience and prepared the MVP for a successful stakeholder demo that helped secure the next phase of work

Outcome 01

One consistent mobile design foundation

I brought competing component styles and color-token sources into alignment with the Figma design system. Shared rules for controls, spacing, and states made the mobile interface more consistent and gave the team a clearer foundation for future development.

Outcome 02

A successful demo.
A next phase of work.

The improved MVP was presented to stakeholders as part of the decision on further project scope. Their positive response helped secure the next phase, and our team continued working on the product.

In two weeks, I overhauled the mobile experience and prepared the MVP for a successful stakeholder demo that helped secure the next phase of work

Outcome 01

One consistent mobile design foundation

I brought competing component styles and color-token sources into alignment with the Figma design system. Shared rules for controls, spacing, and states made the mobile interface more consistent and gave the team a clearer foundation for future development.

Outcome 02

A successful demo.
A next phase of work.

The improved MVP was presented to stakeholders as part of the decision on further project scope. Their positive response helped secure the next phase, and our team continued working on the product.

In two weeks, I overhauled the mobile experience and prepared the MVP for a successful stakeholder demo that helped secure the next phase of work

Outcome 01

One consistent mobile design foundation

I brought competing component styles and color-token sources into alignment with the Figma design system. Shared rules for controls, spacing, and states made the mobile interface more consistent and gave the team a clearer foundation for future development.

Outcome 02

A successful demo.
A next phase of work.

The improved MVP was presented to stakeholders as part of the decision on further project scope. Their positive response helped secure the next phase, and our team continued working on the product.

HubSync - сlosing the gap between design and code

HubSync is a leading tax and accounting software company trusted by over 40% of the top 25 accounting firms in the US. I helped bring its enterprise platform to mobile, taking the experience from design through implementation.

2026

Design Engineer

Product Designer

Create a free website with Framer, the website builder loved by startups, designers and agencies.