About this site

What this is

This site is a self-hosted HTTP/3 showcase. Each of the six demos picks one mechanism that separates HTTP/3 from HTTP/2 — multiplexing under loss, handshake latency, header compression, per-stream independence, 0-RTT resumption, and connection migration — and measures it in your own browser against a live HTTP/2 baseline. No assertions. No benchmarks recorded elsewhere and replayed to you. The numbers you see are the numbers your browser produced, this session, on this server.

The demos are deliberately interactive: you set the loss percentage, click Run, and watch the two protocols race. The side-rail shows the QUIC connection your browser is using right now, including a live tail of the protocol events behind the numbers.

Why no CDN

A content delivery network terminates QUIC at its edge — the connection your browser negotiates is to a CDN PoP, not to this machine. That means any measurement you make reflects the CDN's connection, not the protocol. The whole point of this project is to make HTTP/3 visible and verifiable, so putting a CDN in front would make the demos circular: you would be measuring someone else's infrastructure.

This site is served directly from one residential Windows machine. That comes with trade-offs: the upstream bandwidth of a home connection is a shared bottleneck, the host can sleep, and the public IP is dynamic. Those constraints are real and documented — they do not affect the protocol comparisons because both legs of every demo share the same connection and the same bottlenecks.

How it works

The stack has three layers:

The HTTP/2 baseline is an honest one. Caddy automatically advertises HTTP/3 via the Alt-Svc header on every site on the shared listener — including a site you intend to keep on HTTP/2. The h2-only.* comparison vhost explicitly strips Alt-Svc so no browser upgrades to QUIC on that host. Without the advertisement, a browser stays on HTTP/2 regardless of what the server supports, which is the correct baseline for the comparison.

Honesty rules

Every claim on this site is measured, not asserted. A few specific commitments:

Your scorecard

Visit /proof to see your personal scorecard: six claims, each verified (or waiting) by your own browser on this server. Every number there came from a run you started. Nothing is server-asserted.

Source is available on request — the repository has no public remote.