Owais Abdullah logo
Back to all projects
PlatformFree for Personal UseAttribution Required

Visati

Modern UAE & Dubai Visa Application and Processing SaaS Platform

Free & Open Architecture Alternative To:

AtlysSherpaVFS Global PortalsManual Agency Processing

💰 Value & Cost Savings Comparison

Traditional Industry Solution

Custom Enterprise Travel Agency Software

$8,000 - $20,000 upfront development

This Project (By Owais Abdullah)

Free for Personal & Portfolio Learning

Complete modern production-tested architecture

🎯 Pain Points Solved

Why this project was built and the operational friction it eliminates:

The Problem

Travel agencies process visa applications manually via WhatsApp and email, losing track of passports, payment slips, and deadlines.

The Solution

Visati provides a structured multi-step intake flow with real-time validation for passport scans, photos, and flight reservations.

The Problem

Applicants are frequently confused about which UAE visa type they qualify for (30-day, 60-day, transit, or multiple entry).

The Solution

An interactive eligibility calculator recommends the exact visa category and displays transparent pricing before checkout.

The Problem

International travelers face payment failures on local bank portals with high currency conversion friction.

The Solution

Integrated global Stripe checkout supporting multi-currency payments, Apple Pay, and Google Pay with instant receipts.

Core Capabilities & Architecture

Engineered using Next.js App Router and TypeScript. Relational data (users, applications, documents, payments) is modeled in Neon Postgres via Drizzle ORM. BetterAuth handles authentication. Files are uploaded to secure S3 storage. Stripe webhooks listen for confirmed payments, automatically transitioning applications to the processing queue.

  • Guided Multi-Step Application Flow: Intuitive applicant form with document validation and image previews
  • Admin Operations Dashboard: Staff management portal to review, approve, reject, or request document re-uploads
  • Stripe Checkout: Secure multi-currency transaction processing with automated invoicing
  • Automated Status Notifications: Email and SMS milestone alerts keeping applicants informed of visa approval stages
  • Dynamic PDF Generation: Generates printable summary dossiers and official visa document packages
  • Headless CMS: Sanity CMS powering dynamic FAQ updates, travel guidelines, and regulatory changes
Built With:Next.jsTypeScriptTailwind CSSDrizzle ORMNeon PostgresBetterAuthStripeSanity CMS

🛠️ How to Setup & Run Locally

Quick-start guide to clone, configure, and execute this project in your own environment:

Prerequisites

  • Node.js 18+ and npm
  • Neon PostgreSQL database
  • Stripe account
  • Sanity project

Key Environment Variables

VariableDescriptionExample
DATABASE_URLPostgres database URLpostgresql://...
STRIPE_SECRET_KEYStripe secret keysk_test_...
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEYStripe publishable keypk_test_...
BETTER_AUTH_SECRETSession security secretrandom_string...

Execution Steps

1.Clone repository

git clone https://github.com/MrOwaisAbdullah/visati.git
cd visati

2.Install dependencies

npm install

3.Run database migrations

npx drizzle-kit push

4.Start local development server

npm run dev

🗺️ Project Roadmap & Planned Improvements

Current release progress and planned future enhancements:

Automated OCR Passport Extraction

Extract passport number, expiry date, and nationality automatically using OCR to eliminate manual entry errors.

In Progress

Multi-Country Visa Expansion

Expand system modules to support Saudi Arabia Umrah visas and Qatar travel authorizations.

Planned

License, Fair Use & Attribution Terms

Creative Commons Attribution-NonCommercial 4.0 (CC BY-NC 4.0)

Free for personal, learning, and portfolio review with mandatory credit to Owais Abdullah. Commercial deployment for travel agencies requires authorization.

Required Attribution Notice: "Built by Owais Abdullah (https://github.com/MrOwaisAbdullah)"