A-sideyour origin
Z-sidethe visitor
Conventional transit ms hops
OneHop ms hop
One jumper
from origin
to edge.
Every other CDN answers a miss by walking back through its own hierarchy — regional tier, origin shield, then transit across somebody else's backbone. OneHop deletes the walk. One anycast node, one hop, one round trip.
Run a cross-connect See the measurement
- Median edge RTT
- 11ms
- Cache hit ratio
- 97.4%
- Global purge
- <150ms
SyntheticDemonstration figures. OneHop is a design exercise, not a running service.
Both routes, one millisecond axis.
A cold object requested from Frankfurt, origin in Ashburn. Nothing here is modelled with a different clock for each side — the two routes are drawn against the same scale, so the distance you see is the distance you pay.
| Route | Hop | Stage | Step | Cumulative |
|---|
The same axis, across a week of production traffic.
Demonstration data. Figures are illustrative and internally consistent; they are not audited measurements.
Thirty-two rooms. No tier above them.
Every node terminates single-mode straight into the exchange fabric and carries a full copy of the routing table. There is no parent cache to fall back to, because there is no parent. A node that misses fetches once, directly, and everybody downstream of it is warm.
- Nodes in service
- 32
- Internet exchanges
- 61
- Committed egress
- 184Tbps
- Peers
- 3,400+
SyntheticEvery node, code, and round-trip figure above is fabricated for this demonstration. No fabric is operating behind this page.
Cross-connect work order
-
Point the record
One CNAME. Your origin keeps serving exactly what it serves today; we stop asking it twice.
; zone: example.com assets 3600 IN CNAME example.onehop.net. -
Declare the cache
Rules are read top to bottom, first match wins. Anything you do not declare inherits the origin's own
Cache-Control.# onehop.toml [[rule]] match = "/static/*" ttl = "30d" stale_while_revalidate = "7d" compress = ["br", "zstd"] [[rule]] match = "/api/*" ttl = "0" tags = ["api"] -
Purge by tag
Tags invalidate across all thirty-two nodes at once. No per-node queue, no propagation window to wait out.
curl -X POST https://api.onehop.net/v1/purge \ -H "authorization: Bearer $ONEHOP_TOKEN" \ -d '{"tags":["api"]}' <- 200 purged 32/32 nodes in 118ms
Everything terminated on the panel.
No feature tiers, no add-on SKUs for the parts of HTTP that should not have been unbundled in the first place. Every port below is live on every plan.
Four circuits, before and after.
Every name, figure, and circuit on this page is fabricated for demonstration. OneHop is a design exercise; these are not customers and these are not measurements.
Rate schedule
Egress and requests, metered. No commitment, no per-seat line, no charge for TLS, HTTP/3, or purge. Illustrative pricing for this demonstration.
| Tier | Monthly | Included egress | Overage | Terms | Order |
|---|---|---|---|---|---|
| JumperA single circuit — a side project, a docs site, a staging origin. | $0 | 100 GB | $0.009 / GB | 1 origin, 1 zone · unlimited tag purge · community support | Start free |
| FrameProduction traffic on your own hostnames, with the logs to prove it. | $240 | 40 TB | $0.006 / GB | Unlimited origins and zones · real-time log streaming · edge functions, 50 ms CPU · mTLS to origin and WAF rules · 99.99% target, 24/7 on-call | Run a cross-connect |
| Meet-MePrivate fabric, your own ASN, and a physical cross-connect where you already have a cage. | Metered | Committed | from $0.004 / GB | Private interconnect at 61 IXs · BYO ASN and prefixes · dedicated capacity per region · named engineer on a shared channel | Talk to engineering |
SyntheticIllustrative pricing for this demonstration. No rate here is offered or payable.
Terminate it here.
Point one record and watch the second hop disappear. Nothing to uninstall if you change your mind.