OVO Charge

Combining two apps into a universal app for charging your EV

Combining two apps into a universal app for charging your EV

Charge Anytime was an app from OVO that let users manage the charging of their EV at home. Bonnet was an app that let drivers charge their cars using public chargers. In 2023, OVO acquired Bonnet, and I led the work to combine both apps into one called OVO Charge. Both apps had tens of thousands of users using the app every day.

Old app (Charge Anytime)

Old app (Bonnet)

The plan was straightforward: rebuild Charge Anytime inside Bonnet. OVO Charge, one app, one design language, two user groups who both had to feel at home in it.

It was not that easy…

Two apps, two tech stacks, and two design systems

Bonnet was native, Swift for iOS and Jetpack Compose for Android. Charge Anytime was React Native. Different design tokens, different colour systems, different information architecture. Nothing translated directly.

I started by mapping both apps in full. Every component, every pattern, every design decision that had been made in isolation across two different stacks. You can't merge what you don't fully understand.

At the same time I ran a depth user research to understand what both user groups actually expected from a combined app. Not what we assumed. What they told us.

From there I updated the design system to reflect the unified product, making sure Charge Anytime features could be delivered quickly without starting from scratch every time.

Different user preferences / usage pattens

While unifying the design language was tough, the biggest challenge came from accommodating two different sets of users who cared about different things. Here are the few examples:

Map

Public users were comfortable with the map. Home users had one ask: don't make me look at a public charger map every time I open the app. So we kept the map, we just stopped leading with it for the wrong people. Public users open to the map. Home users open to the schedule screen. Same four tabs, different order. Small change, big difference.

OVO Charge

OVO Charge

Schedule

For public users this was a bonus. Home charging meant cheaper sessions, nothing to lose.

For home users the old screen was static and confusing. Nobody really knew what was happening with their charge. We rebuilt it from scratch, made it interactive, with clear charging statuses that actually told you what was going on. Validated with moderated user testing. Home users were excited about it. That doesn't happen often enough to take for granted.

How we updated the schedule screen to make it clearer for both legacy and new users

Charging statuses

Ovo Charge - Schedule

Usage

Public and home charging in one place, filterable. Public users got the same view, just richer. Home users got the detailed history they'd been asking for.

Charge Anytime

Bonnet

Ovo Charge - Usage

How we updated the usage screen to make it clearer for both legacy and new users

Account

Kept as close to Bonnet as possible. We'd done the testing, we were confident. It landed well.

Ovo Charge - Account

We had a tight timeline following the acquisition. In six months we shipped an MVP unifying both apps while getting the core experience right for both user groups. The work isn't finished. But we have the foundation now.