Projects

Project system

GoVisual

Zero-config HTTP request visualizer for Go applications.

What it does

GoVisual wraps a standard Go http.Handler, captures request and middleware behavior, stores the events, and serves a local dashboard at the configured path.

GitHub repository

Open the source repo for installation, package code, tests, and release details.

System map

1
input
App Handler
Existing net/http mux
2
service
govisual.Wrap
Functional options configure capture
3
service
Middleware
Request body, response body, timings
4
storage
Store
Memory, SQL, Redis, MongoDB
5
output
OpenTelemetry
Optional trace export
6
output
Dashboard
/__viz request inspection

Codebase read

  • The public API is intentionally small: Wrap(handler, opts...) and functional options.
  • Storage can be memory, Postgres, Redis, SQLite, MongoDB, or an existing SQLite connection.
  • The dashboard path is intercepted before regular app traffic, so the developer tool ships inside the wrapped server.

Key snippet

handler := govisual.Wrap(
    mux,
    govisual.WithRequestBodyLogging(true),
    govisual.WithResponseBodyLogging(true),
    govisual.WithOpenTelemetry(true),
)

http.ListenAndServe(":8080", handler)

Tech used

Gonet/httpOpenTelemetryRedisPostgreSQLSQLiteMongoDB

Source paths inspected

wrap.gooptions.gointernal/middlewareinternal/dashboardinternal/store

More project systems