JH← Back to portfolio

Client Project · Full Rebuild

VisaConnect

A community platform for US visa workers. The existing codebase was insecure, slow and impossible to extend, so I rebuilt it end to end: accounts, real-time messaging, forums, and a paid service marketplace.

LIVEClient projectRebuilt end to endReactNode.jsReal-time

Overview

VisaConnect helps US visa workers — H-1B, L-1, OPT — connect with peers, get advice, and find vetted providers for visa-related services. It is meant to be structured where Reddit is not, and specific where LinkedIn is not.

The client came to me with an existing codebase. After reading it, the honest recommendation was the one I make least often: rebuild it. This case study is about why, and what the rebuild delivered.

The Challenge

Most inherited codebases should be fixed, not rewritten. VisaConnect was the exception, because every problem was structural rather than cosmetic.

The code was unmaintainable — changing one part reliably broke another. It had security problems in how accounts and data were handled, which matters more than usual for a community whose members discuss their immigration status. It was slow with real users and real data. And it could not support the features the client actually needed, so every new requirement meant working around the existing design.

Any one of those can be fixed in place. All four together, in a codebase with no stable core to build on, meant a patch-by-patch rescue would have cost more than starting again and still left the client on a weak foundation.

Solution

I rebuilt the platform end to end on React and Node.js, starting with the parts where mistakes are most expensive: accounts and authentication, rebuilt so that members’ data is only ever visible to the people it should be.

On top of that came the community itself: topic-based forums for structured discussion, and direct peer messaging with real-time notifications, so conversations stay active without the app polling the server.

The service marketplace lets members find and pay vetted providers for visa-related help, with payments built into the platform rather than handled off-site.

Technical decisions worth explaining

Rebuild versus rescue was the decision that mattered. I usually argue against rewrites, because existing code encodes edge cases nobody wrote down. Here the old code had no stable core worth preserving: security, performance, maintainability and missing features were all rooted in the same design. When every problem traces to the foundation, replacing the foundation is the cheaper option.

Auth first, features second. A community for visa workers holds sensitive personal context, so accounts and access control were rebuilt and settled before any community features were layered on top.

Real-time delivery instead of polling. Messaging and notifications push events to the client as they happen, which keeps conversations feeling live and avoids the load that constant polling puts on the server as the community grows.

Tech Stack

ReactNode.jsREST APIPostgreSQLReal-time eventsJWT AuthPaymentsAWS S3Vercel

Outcomes

Full
rebuild, end to end
Real-time
messaging & notifications
Paid
service marketplace
Auth
rebuilt first

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.