Hono

Hono hands you the raw web Request at c.req.raw, which is exactly what the handler wants. Mount two routes so both the base path and everything under it match:

import { Hono } from "hono";
import { bc } from "./breadcrumb";

const app = new Hono();

app.all("/api/breadcrumb", (c) => bc.handler(c.req.raw));
app.all("/api/breadcrumb/*", (c) => bc.handler(c.req.raw));

The first route matches /api/breadcrumb exactly; the second matches everything beneath it. Both return the handler’s Response directly.

Viewing the traces

This mounts the API. The dashboard is a React component, so render it from whatever frontend you serve alongside this app, pointed at api="/api/breadcrumb". If you have no React frontend, query the data directly with bc.api.

Next steps