MyVisas started as a single phone call: a consultancy that wanted to stop managing visa applications through spreadsheets and WhatsApp threads, and needed something clients could actually log into.
Six weeks later, it was live, covering visa guidance for 71 countries, with AI-assisted application help, a client portal, and a working payment flow.
The first week was scoping, not coding. We mapped out exactly what a client needed to see on day one versus what could wait: application status tracking, document checklists, and country-specific requirements were must-haves. A fully custom AI chatbot from scratch was not, so we built on Google's Gemini API instead of training anything from zero, which saved weeks.
The stack was chosen for speed without cutting corners: Next.js for the frontend, Clerk for authentication so we didn't have to build login and password reset flows by hand, and Supabase as the database, which gave us a real Postgres instance without managing our own server.
The hardest part wasn't the code, it was the content: accurate, current visa requirements for 71 countries. That took structured data entry and a review pass with the client's own immigration expertise, because getting this wrong isn't just a bug, it's someone's travel plans.
By week four, the core flows were working: a visitor could start an application, get AI-guided help figuring out which visa category applied to them, upload documents, and track status. Week five was UPI payment integration and admin tooling so the client's team could manage applications without needing us involved for every update. Week six was testing, fixing edge cases, and launch.
What made this fast wasn't shortcuts, it was not rebuilding things that already exist. Authentication, database infrastructure, and AI capability all came from proven tools, which meant our actual engineering time went into the part that was genuinely unique: the visa logic itself.
If you're building a platform where the differentiator is your domain expertise, not your login page, this is usually the right approach.



