UAE visa application platform
Launch state varies by brand. Figures were counted from the codebase.
Running four visa brands as four separate websites means fixing every bug four times. Running them as one product with four skins means a pricing rule or a funnel fix ships everywhere at once.
The working parts
Each of these exists in the delivered system, not on a roadmap.
Multi-step application funnel
Plan selection, then applicant details with per-person document upload, then review and pay. The document step carries the weight, because a visa application is only as good as the files attached to it.
Card payment confirmed by webhook
An application is marked paid by the payment provider's webhook rather than by the browser returning to a success page, so a closed tab cannot lose a paid order.
Public tracking by reference
Applicants check progress with a tracking ID and no account, which removes most of the status emails.
Customer account area
Application history, saved family members for repeat applications, and profile and password management.
Role-scoped admin console
Super admin, editor and operations roles see different sections, so a content editor cannot touch applications.
Country pricing and content as data
Per-country pricing, packages and guide content live in the database with an import path, so a price change is an admin edit rather than a deploy.
Content and SEO back office
A rich-text blog editor, per-page metadata overrides and structured data, run by the client without developer involvement.
Transactional email
A templated email library covering application status changes and automated follow-ups.
Messy real-world pricing, normalised
Package titles arrive as free text such as a 96-hour transit permit or a two-year freelance permit. A normalisation layer buckets them so the site can show a reliable starting price.
Where people actually work.
- 01Home with nationality and permit search
- 02Country and permit detail
- 03Application funnel across three steps
- 04Payment and confirmation
- 05Tracking by reference
- 06Customer account and family members
- 07Admin applications queue
- 08Country pricing and content editor
- 09Blog editor and SEO settings
- Stripe payments with webhook confirmation
- Firebase Auth, Firestore and Storage
- SMTP transactional email
- Google reCAPTCHA
- GA4 purchase tracking
The calls that matter later.
The choices that separate software people tolerate from software they rely on.
One product, four skins
The brands are forks of a shared application rather than separate builds. A funnel improvement or a payment fix reaches every brand, and the differences stay in configuration, branding and content.
Payment state owned by the webhook
The browser is never the source of truth for whether money arrived. The provider's webhook marks the application paid, so a dropped connection after payment does not strand an order.
More work
View allWant one built around your operation?
Discovery takes one to two weeks and produces a process map, wireframes and a fixed quote. Useful documents even if you take them somewhere else.
We reply to every enquiry within one business day.