Skip to content

[feat] Add web dashboard at portless.localhost for viewing active routes #211

@theishandubey

Description

@theishandubey

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)

  1. 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
  2. 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
  3. 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.

Image Image

Would love feedback on the design and approach!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions