A local proxy manager — connect and route HTTP requests between your local servers from a single dashboard.
Home screen — clean starting point with server controls on the right sidebar
Reorder apps and route rules to control matching priority
Save and load named configurations to switch between project setups
Browse, search, and manage all saved configs from a dedicated view — each card shows app count, route count, port, and last modified time
Export any config as JSON — copy to clipboard or save as a .json file
Import configs by pasting raw JSON — validates the shape before importing
- Proxy Apps — Create multiple proxy apps, each pointing to a different local server (e.g.
localhost:3001,localhost:4000). - Wildcard Route Rules — Define path-based routing rules with glob-style wildcards (
/api/*,/auth/login). Rules are matched in order, giving you full control over priority. - Real-Time Request Logs — See every proxied request as it happens: method, path, status code, and response time, streamed live into the UI.
- App Ordering — Reorder proxy apps with up/down controls. Order determines rule priority — if the first app catches
/*, it takes precedence. - Config Manager — Browse, search, rename, and delete saved configurations from a dedicated configs list view.
- JSON Import / Export — Import configs by pasting raw JSON or selecting a file via the native dialog. Export any config as clipboard text or save as a
.jsonfile. - JSON Editor — Edit any config's raw JSON directly in-app with validation and save.
- Save & Load — Quickly save the current state to a named config or load a previously saved one from the sidebar panel.
- Collapsible Sidebar — Expand the left nav for full app names or collapse it to icon-only mode for more screen space.
- Cross-Platform — Runs on macOS, Windows, and Linux. Configs are stored in the OS-native user data directory.
Connectio runs an Express proxy server on a port you choose (default 8080). When a request comes in, it walks your route rules in order, finds the first match, and proxies the request to the target server using http-proxy-middleware. Each response is logged back to the UI in real time.
Browser / cURL Your local servers
│ ▲
│ GET /api/users │
▼ │
┌──────────┐ match: /api/* ┌─────────────────┐
│ Connectio│ ───────────────► │ localhost:3001 │
│ :8080 │ │ (API server) │
│ │ match: /* ├─────────────────┤
│ │ ───────────────► │ localhost:3000 │
└──────────┘ │ (Frontend) │
└─────────────────┘
git clone https://github.com/PulkitBanta/connectio.git
cd connectio
yarn install
yarn start- Click + Add App in the left sidebar.
- Give it a name (e.g. "API Server") and a target URL (e.g.
http://localhost:3001). - Click the app, then + Add Rule to define a route pattern like
/api/*. - Set your port in the right sidebar and hit Start Server.
- Send requests to
http://localhost:8080and watch them get routed and logged in real time.
yarn buildProduces platform-specific distributables in the dist/ directory:
| Platform | Outputs |
|---|---|
| macOS | .dmg, .zip |
| Windows | .nsis, .zip |
| Linux | .AppImage, .deb |
- Build — Every push to
mainand every PR triggers a build workflow that compiles for all three platforms. - Release — Trigger the release workflow manually via GitHub Actions, provide a version number, and it builds all platforms, generates a changelog, and creates a GitHub Release with artifacts attached.
yarn dev # Start with DevTools open
yarn start # Start without DevTools
yarn lint # Run ESLint
yarn format # Run PrettierConfigs are saved as JSON files in the OS user data directory:
| OS | Path |
|---|---|
| macOS | ~/Library/Application Support/connectio/configs/ |
| Windows | %APPDATA%/connectio/configs/ |
| Linux | ~/.config/connectio/configs/ |
- Desktop Shell — Electron with context isolation
- UI Framework — Solid.js with TypeScript — signals-based reactivity for fast, predictable renders
- Styling — Tailwind CSS v4 via
@tailwindcss/viteplugin - Icons — Lucide rendered as native Solid SVG components
- Build Tool — electron-vite — fast HMR for main, preload, and renderer
- Packaging — electron-builder — produces
.dmg,.AppImage,.deb,.nsis - Proxy Server — Express 5 — incoming request handling
- Proxying — http-proxy-middleware — route matching and reverse proxying
- Linting — ESLint v10 with
typescript-eslint - Formatting — Prettier
src/
├── main/ # Electron main process
│ ├── index.ts # App lifecycle, window creation
│ ├── server.ts # Express proxy server, rule management, request logging
│ ├── configs.ts # Config CRUD — list, load, save, delete, rename, export, import
│ └── ipc.ts # Registers all IPC handlers
├── preload/
│ └── index.ts # Context bridge — exposes window.connectio to the renderer
└── renderer/ # Solid.js UI
├── index.html # Shell HTML
├── index.tsx # Solid entry point
├── App.tsx # Root component — view router, layout
├── components/ # 10 UI components (Nav, ProxyView, ConfigsView, etc.)
├── lib/ # State (signals), IPC client, utilities, constants
└── styles/
└── index.css # Tailwind entry
MIT





