Client Project · Full Rebuild
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.
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.
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.
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.
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.
I take on a small number of freelance projects at a time — codebase takeovers, Figma to React, and new builds.