Skip to content

PulkitBanta/connectio

Repository files navigation

Connectio

Connectio

A local proxy manager — connect and route HTTP requests between your local servers from a single dashboard.

Release Platform License


Screenshots

Home screen

Home screen — clean starting point with server controls on the right sidebar

App and rule ordering

Reorder apps and route rules to control matching priority

Load config dialog

Save and load named configurations to switch between project setups

Configs list view

Browse, search, and manage all saved configs from a dedicated view — each card shows app count, route count, port, and last modified time

Share config menu

Export any config as JSON — copy to clipboard or save as a .json file

Paste JSON import

Import configs by pasting raw JSON — validates the shape before importing


Features

  • 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 .json file.
  • 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.

How It Works

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)      │
                                 └─────────────────┘

Getting Started

Prerequisites

Install & Run

git clone https://github.com/PulkitBanta/connectio.git
cd connectio
yarn install
yarn start

Quick Start

  1. Click + Add App in the left sidebar.
  2. Give it a name (e.g. "API Server") and a target URL (e.g. http://localhost:3001).
  3. Click the app, then + Add Rule to define a route pattern like /api/*.
  4. Set your port in the right sidebar and hit Start Server.
  5. Send requests to http://localhost:8080 and watch them get routed and logged in real time.

Build & Release

Local Build

yarn build

Produces platform-specific distributables in the dist/ directory:

Platform Outputs
macOS .dmg, .zip
Windows .nsis, .zip
Linux .AppImage, .deb

CI / CD

  • Build — Every push to main and 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.

Development

yarn dev       # Start with DevTools open
yarn start     # Start without DevTools
yarn lint       # Run ESLint
yarn format     # Run Prettier

Config Storage

Configs 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/

Tech Stack

  • Desktop ShellElectron with context isolation
  • UI FrameworkSolid.js with TypeScript — signals-based reactivity for fast, predictable renders
  • StylingTailwind CSS v4 via @tailwindcss/vite plugin
  • IconsLucide rendered as native Solid SVG components
  • Build Toolelectron-vite — fast HMR for main, preload, and renderer
  • Packagingelectron-builder — produces .dmg, .AppImage, .deb, .nsis
  • Proxy ServerExpress 5 — incoming request handling
  • Proxyinghttp-proxy-middleware — route matching and reverse proxying
  • Linting — ESLint v10 with typescript-eslint
  • Formatting — Prettier

Project Structure

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

License

MIT

About

A local proxy manager — connect and route HTTP requests between your local servers from a single dashboard.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors