npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vroute

v1.1.1

Published

Zero-config local DNS & SSL router for seamless local web development

Readme

vroute

License: ISC Node.js npm

Zero-config local DNS & SSL router for seamless local web development

vroute eliminates the friction of local web development by automatically handling DNS mapping, SSL certificate generation, OS trust injection, and traffic proxying — all from a clean web dashboard. It acts as your local "infrastructure in a box", helping you bypass CORS, simulate network latency, block analytics, and map custom domains securely to your local dev servers.


Why vroute?

When developing locally, you often face roadblocks:

  • Testing third-party services (payment gateways, OAuth, webhooks) that demand HTTPS.
  • Juggling ports instead of using clean custom domains (e.g., app.test instead of localhost:3000).
  • Fighting CORS restrictions during API testing.
  • Polluting your live product analytics (Mixpanel, Google Analytics) because of local testing clicks.
  • Modifying your backend code just to simulate slow networks or 500 server errors for UI testing.

Currently, solving these involves generating manual SSL certs, configuring complex reverse proxies (like NGINX), and editing system files like /etc/hosts by hand.

vroute automates all of this.


Key Features

  • 🌍 Instant Local Domains — Map custom domains (e.g., app.test) to local ports instantly.
  • 🔀 Wildcard Subdomains — Map *.app.test for multi-tenant applications easily without defining each subdomain.
  • 🛡️ Built-in Local DNS Server — Intercepts traffic automatically without touching /etc/hosts for wildcard and shielded domains (runs locally on UDP Port 53).
  • 🔒 Auto-SSL — Generate trusted SSL certificates automatically on the fly.
  • 🔓 CORS Bypass — Automatically inject headers to prevent cross-origin errors in the browser.
  • 🚫 Analytics & Webhook Shield — Silently block third-party trackers with dummy 200 OK responses to keep production data clean.
  • UI Chaos Monkey — Inject customizable latency and HTTP faults to test frontend resilience without changing backend code.
  • 💻 Cross-Platform — Works flawlessly on Linux, macOS, and Windows.
  • 📊 Web Dashboard — Clean, minimal UI to manage routes, settings, and monitor traffic in real-time.
  • 💾 Persistent Routes — Routes survive reboots and daemon restarts.

Quick Start

# Install globally
npm install -g vroute

# Generate and trust local SSL certificates
sudo vroute setup

# Start the background daemon (Requires sudo to bind to port 53 for Local DNS features)
sudo vroute start

# Open the dashboard
vroute ui

# Add a route manually via CLI (or use the Dashboard UI)
sudo vroute add myapp.test 3000

Visit https://myapp.test in your browser — it is proxied directly to localhost:3000 with a valid, trusted SSL certificate!


CLI Commands Reference

Manage your local environments directly from your terminal.

| Command | Description | Example Usage | |---------|-------------|---------------| | vroute setup | Generate local Root CA and inject it into OS trust store | sudo vroute setup | | vroute start | Start the background routing daemon | sudo vroute start | | vroute stop | Stop the background daemon | vroute stop | | vroute ui | Open the web dashboard in your default browser | vroute ui | | vroute add <domain> <port> | Map a domain or wildcard to a local port | sudo vroute add *.app.test 3000 | | vroute remove <domain> | Remove an active local route | sudo vroute remove app.test | | vroute list | List all active routes mapped by vroute | vroute list | | vroute status | Check if the vroute daemon is currently running | vroute status |

(Note: Certain commands like start or add may require sudo to securely modify the OS hosts file or bind the local DNS server to port 53.)


The Dashboard

The built-in web dashboard is the command center for your local environment. Run vroute ui (or visit http://localhost:9999) to access it.

Dashboard Features:

  • Route management — Add, view, and remove exact or wildcard routes, with independent SSL/CORS toggles.
  • Analytics Shield — Toggle and manage your tracking/webhook blocklist to avoid polluting production data.
  • Chaos Monkey — Add granular fault and latency injection rules per route to test your frontend.
  • Real-time traffic — Monitor proxied requests with method, status, host, latency, and interception badges.
  • Connection status — Live WebSocket connection indicator.

Advanced Proxy Middlewares

🛡️ Analytics & Webhook Shield (No-Pollution Mode)

During frontend development, firing requests to Mixpanel, Google Analytics, or Stripe webhooks can pollute your actual live dashboards.

With the Shield enabled from the dashboard, vroute intercepts outgoing tracking scripts via its Local DNS and instantly returns a mock 200 OK response with CORS bypass headers. This prevents ugly red console errors in your browser, allows your frontend to execute flawlessly, and keeps your live product data 100% clean.

(Note: Intercepting external domains requires the daemon to run via sudo to bind to port 53.)

⚡ UI Chaos Monkey (Fault & Latency Injection)

Testing frontend loading skeletons or API timeout handlers usually requires temporarily writing setTimeout() or throw new Error() inside your backend. This pollutes codebases and risks shipping buggy test code to production.

With Chaos Monkey, you can apply rules directly in the vroute dashboard. Set a 1000ms latency and a 50% failure rate on /api/checkout, and vroute will dynamically inject faults into the network traffic. This allows you to test frontend resilience while keeping both the frontend and backend codebases completely pristine.


Packages

This is a monorepo containing:

| Package | Description | Status | |---------|-------------|--------| | vroute-cli | npm CLI package with web dashboard | Active | | vroute-desktop | Windows/Mac desktop app | Coming Soon |


Tech Stack

  • CLI — Commander.js
  • Daemon — Express 5, http-proxy, Socket.IO
  • Dashboard — React 19, Tailwind CSS, Vite
  • SSL — node-forge (local CA generation)
  • DNS — Built-in UDP DNS Server (dns2) + Cross-platform hosts file management

Platform Support

vroute is designed to run anywhere smoothly:

| Platform | DNS Modification | SSL Trust | |----------|------------------|-----------| | Linux | /etc/hosts via sudo | update-ca-certificates | | macOS | /etc/hosts via osascript | Keychain via security add-trusted-cert | | Windows | PowerShell Start-Process -Verb RunAs | certutil -addstore |


Development

Want to contribute or hack on vroute locally?

# Clone the repo
git clone https://github.com/nowshadabir/vroute.git
cd vroute

# Install all dependencies
npm install

# Build the CLI package
npm run build:cli

# Build the Dashboard UI
cd packages/vroute-cli/src/dashboard && npm run build

Roadmap

  • [x] CLI tool with web dashboard
  • [x] Built-in DNS Server (UDP port 53)
  • [x] Cross-platform DNS management
  • [x] Auto-SSL certificate generation
  • [x] Advanced Proxies: Analytics Shield & Chaos Monkey
  • [x] Tailwind CSS light theme dashboard
  • [ ] Desktop app (Windows .exe)
  • [ ] Desktop app (macOS .app)
  • [ ] System tray integration
  • [ ] Auto-updates

Contributing

Contributions are heavily welcome! Please read our Contributing Guide first.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the ISC License — see the LICENSE file for details.


Built by Kazi Nowshad Abir | VivaGo Technologies