meshnet
Developer tool that lets you run multiple dev servers at localhost:3000 simultaneously by routing each project to its own cloud VM, eliminating port conflicts between projects.
Meshnet is a proof-of-concept developer tool that lets you run many separate development servers at the same time, each one appearing at the familiar address localhost:3000 on your own machine, without any port conflicts or subdomain juggling. The problem it solves is a common annoyance for developers who work on multiple projects simultaneously: normally you can only have one thing running at localhost:3000, and everything else has to use different port numbers.
The trick behind it is a combination of two pieces of technology. Each conversation or project in the app spins up its own temporary virtual machine in the cloud using Vercel Sandbox, which runs your development server in isolation. The desktop application is built with Electron, which is a framework for wrapping web technology into a native desktop app. Inside Electron, each project gets its own sandboxed browser view with its own separate cookie storage and network session. The app then intercepts network traffic at the operating system level and routes each view's requests to the right cloud virtual machine, so every view honestly thinks it is talking to localhost:3000.
For developers opening the project in a regular web browser instead of through the Electron app, there is also a standard HTTP server running on port 3000 that uses cookies to figure out which project to show.
The codebase is small and organized across a handful of files: the main Electron process handles the proxy routing and the picker server, a preload script bridges the browser and desktop layers, the renderer files handle the visible interface with a chat sidebar and browser panes, and a separate module manages the lifecycle of the cloud virtual machines.
This is described as a proof of concept, so it is exploratory rather than a polished product. It requires a Vercel account and the Vercel CLI to function, and the authentication token it uses expires roughly every 12 hours.
Where it fits
- Run multiple frontend projects at once, each accessible at localhost:3000, without changing port numbers
- Test several microservices locally as if they all run on the default port
- Quickly switch between client projects that all expect localhost:3000 without reconfiguring anything