Summary
Add a web dashboard accessible at portless.localhost that provides a visual overview of all active proxy routes, proxy status, and quick actions.
Motivation
Currently, users can only see active routes via the CLI command portless list. A web dashboard provides:
- A convenient, visual way to see all active apps at a glance
- Click-through access to any running app
- Real-time proxy status without using the terminal
- Better developer experience for monitoring local development
Proposed Features
Core Features (MVP)
-
Route List Display: Show all active routes with:
- Hostname (e.g.,
myapp.localhost)
- Local port (e.g.,
:4123)
- Clickable link to open each app
- Copy URL button
-
Proxy Status Panel:
- Current proxy port (80/443 or custom)
- TLS status (HTTPS enabled/disabled)
- TLD being used (localhost, test, local in LAN mode)
- Number of active routes
-
Empty State: Friendly message when no apps are running with a quick-start command example
Implementation Details
- Reserved hostname:
portless.localhost
- Reuses existing styling from the 404 page (Geist fonts, dark/light mode support)
- Check happens before route matching to ensure dashboard is always accessible
- HTML is generated server-side with no client-side dependencies (except copy-to-clipboard script)
Testing
- All existing tests pass
- 4 new tests added for dashboard functionality
- Manual verification completed
Example Screenshot
The dashboard shows a header with "portless" branding, a status bar with proxy info, and a list of active apps with action buttons.
Would love feedback on the design and approach!
Summary
Add a web dashboard accessible at
portless.localhostthat provides a visual overview of all active proxy routes, proxy status, and quick actions.Motivation
Currently, users can only see active routes via the CLI command
portless list. A web dashboard provides:Proposed Features
Core Features (MVP)
Route List Display: Show all active routes with:
myapp.localhost):4123)Proxy Status Panel:
Empty State: Friendly message when no apps are running with a quick-start command example
Implementation Details
portless.localhostTesting
Example Screenshot
The dashboard shows a header with "portless" branding, a status bar with proxy info, and a list of active apps with action buttons.
Would love feedback on the design and approach!