JH← Back to portfolio

Client Project · Existing Codebase

NuVisa

A UK visa and immigration services platform. I joined the existing codebase to fix its multi-step application forms and build new guided flows on top of them.

LIVEClient projectExisting codebaseReactNext.jsForms / Workflows

Overview

NuVisa helps people navigate UK visa and immigration with step-by-step guided flows for common visa routes, eligibility checks, and multi-step application assistance.

I came in on an existing codebase with two jobs: fix the multi-step forms that were already live, and build new application flows without breaking the ones users depended on.

The Challenge

Immigration applications are long, document-heavy, and full of decision branches. The forms are the product: if a step behaves unexpectedly, users do not file a bug report, they abandon the application.

The existing multi-step forms needed fixing, and new flows had to be added to the same system. In a form-heavy product those two jobs are connected — a new flow built on a shaky form foundation inherits every one of its problems.

Solution

I fixed the existing multi-step forms first, so the flows users were already going through behaved reliably before anything new was added on top.

The new application flows were then built on that corrected foundation: conditional steps that show only the fields relevant to the user’s visa route, visible progress through the application, and validation at each step rather than at the very end.

Technical decisions worth explaining

Fix the existing forms before building new ones. New flows share the same form machinery as the old ones, so any problem left in place would have been copied into every new flow.

Validate per step, not at submission. On a long application, finding out on the last screen that something on the second screen was wrong is how users give up. Catching it where it happens keeps them moving.

Tech Stack

ReactNext.jsMulti-step formsConditional logicValidationPostgreSQLVercel

Outcomes

Fixed
existing multi-step forms
New
guided application flows
Per-step
validation
Cond.
route-specific fields

Need this kind of work?


Want results like this?

I take on a small number of freelance projects at a time — codebase takeovers, Figma to React, and new builds.