An account-opening flow that onboards 600 people a day
The digital Open Account journey for a consumer bank, where every extra step loses a share of the people who started.
- Next.js
- TypeScript

Outcome
- 600+ verified users onboarded a day in production
- People return to the step they left after paying
The problem
Opening a bank account online means a long form: identity details, verification, agreements. Each step is a place where people fail, get confused or close the tab, and people who leave and return hours later expect to pick up where they left off.
At Bajet the journey ran from identity details through verification and a fee payment to choosing a card and having it delivered. Payment was the hardest step, because it takes people away from the page they were on.
What I did
I built the journey end to end. The longest-running discussion on the team was what should happen when someone came back from paying. We could rebuild the whole journey to fix one step, or make a small change that returned people to where they had left off. We shipped the small change, and it held up in production.
Form validation was the other half. The browser and the server had to agree on what counts as valid, so there was one definition of a valid national ID or phone number.
What I would do differently
I would settle the shape of the flow before writing any of it. Past a certain complexity, patching the gaps costs more than a better structure would have. I needed a clever fix because the architecture had already been chosen.