Case study — Product build
Building VisaVault — a UK visa document platform from zero to launch
UK visa applications cost applicants £1,500–3,000 in solicitor fees for what is largely a document preparation exercise. We built VisaVault to change that — an AI-powered SaaS that guides applicants through the entire process for £499.
01 — The problem
A £1,500 problem hiding in plain sight
Every year, hundreds of thousands of people apply for UK visas — Skilled Worker, Student, Family, ILR. The majority are perfectly capable of preparing their own applications. The documents are standard. The requirements are published by the Home Office. The process is well-defined.
But the complexity feels overwhelming. So applicants pay immigration solicitors £1,500–3,000 to do what is largely a document preparation exercise — gathering the right papers, writing a covering letter, and following a checklist. The advice they are paying for is mostly bureaucratic navigation, not legal expertise.
The opportunity was clear: build a product that does the navigation and document preparation work at a fraction of the cost, with the consistency and accuracy that software can deliver at scale.
02 — Our approach
Product-led from day one
We approached VisaVault as a product build, not a website build. That distinction matters. A website is a brochure. A product has users who depend on it, data that must be protected, and logic that must be correct every time — because incorrect advice on a visa application causes real harm.
"Incorrect advice on a visa application causes real harm. We designed every system with that consequence in mind."
The product needed to do three things exceptionally well. Guide the applicant through a structured data collection process. Use that data to generate a personalised document checklist and covering letter via AI. And deliver the output in a format that is immediately useful for a UKVI submission.
We also had to build within strict constraints. UK GDPR applies to immigration data — passport numbers, dates of birth, and travel history are highly sensitive personal data. The AI integration had to be designed so that this data never crossed the boundary into Claude's context window. We built a sanitisation layer that strips all PII from prompts before they leave the server, with unit tests that enforce this on every deployment.
03 — Key challenges
Four problems that required careful thinking
Challenge
GDPR and AI don't mix easily
Sending immigration data to a third-party AI API is a personal data transfer under UK GDPR. Passport numbers and dates of birth cannot appear in any prompt.
Solution
Hard sanitisation boundary in code
We built buildChecklistPayload() and buildLetterPayload() as the single GDPR boundary — functions that strip PII before every AI call, with automated tests that fail the build if passport data appears in output.
Challenge
UKVI requirements change without notice
Salary thresholds, document lists, and nationality restrictions change frequently. A product with stale data causes real harm — users submit incorrect applications.
Solution
Automated GOV.UK change detection
A daily scheduled job compares SHA256 hashes of UKVI requirement pages, uses Claude to summarise changes in plain English, and alerts the admin immediately. Prompts are editable in an admin panel with no deployment required.
Challenge
Trust is everything in immigration
Users are handing over passport scans and employment records. Any hint of insecurity or unprofessionalism destroys conversion. The product had to feel as trustworthy as a solicitor's office.
Solution
Security-first architecture throughout
Row Level Security on every Supabase table, pre-signed S3 URLs with 15-minute expiry, AWS WAF in block mode, dedicated VPC with private subnets for all compute, and ICO registration before accepting a single user.
Challenge
The wizard had to be accurate for four visa categories
Skilled Worker, Student, Family, and ILR each have different document requirements, salary thresholds, English language levels, and nationality restrictions — all of which change.
Solution
Configurable threshold system with validation
A central VISA_THRESHOLDS configuration drives all wizard validation. Every threshold has a last-verified date and a source URL. The AI prompt system is prompt-versioned so stale checklist warnings show automatically when UKVI updates requirements.
04 — What we built
19 sprints. A complete product.
We structured the build as 19 discrete sprints, each with a definition of done verified before the next sprint began. This kept the codebase clean and made it easy to hand off individual sprints to specialised agents or developers.
05 — Technology
A modern, production-grade stack
Every technology choice was made for a reason — performance, security, cost, or maintainability. Nothing was chosen because it was fashionable.
Frontend
Next.js 14 App Router
Language
TypeScript throughout
Auth
Clerk
Database
Supabase Postgres + RLS
Payments
Stripe Checkout
AI
Claude via AWS Bedrock
File storage
AWS S3 + pre-signed URLs
Hosting
AWS ECS Fargate, eu-west-2
Infrastructure
Terraform
CI/CD
GitHub Actions
Resend
Analytics
Posthog EU
06 — Compliance
GDPR was a design constraint, not an afterthought
Immigration data sits at the intersection of several sensitive personal data categories under UK GDPR. We treated compliance as a first-class engineering requirement from the first sprint, not something to retrofit before launch.
Data minimisation at the AI boundary. Only the fields Claude needs to generate a checklist are sent to Bedrock — visa category, nationality, current immigration status, employer details. Passport numbers, dates of birth, and passport expiry dates never leave the server.
Retention automation. An admin data hygiene panel tracks every case's last accessed date. Cases inactive for 12 months are automatically flagged for anonymisation — PII fields nullified, S3 documents deleted, generated content removed. EventBridge runs this sweep daily.
Audit logging. Every significant action — payment, AI call, pack download, anonymisation — is written to an audit log table with a timestamp. When a GDPR subject access request arrives, the full history of what was done with that user's data is immediately available.
ICO registration. Registered with the Information Commissioner's Office before the first user was onboarded. DPAs signed with every sub-processor — Anthropic, AWS, Supabase, Clerk, Stripe, Resend.
07 — The result
VisaVault is live and taking applications
A full-stack SaaS product — wizard, AI generation, document management, payments, partner programme, admin panel, and infrastructure — built and deployed to production.
Visit VisaVaultTarget market
India, Pakistan, Nigeria, China, Zimbabwe — the top 5 source countries for UK visas
Revenue model
£499 per case · partner referral programme · 2,000 cases/year target
Saving per user
Up to £2,500 vs a traditional immigration solicitor