A common problem with a familiar shape: a process can dial outbound to the internet, but nothing on the internet can dial it back. Your dev server on a laptop. A service in a private VPC. A homelab app behind your router. A container in a pod with no ingress. Same shape every time — outbound works, inbound doesn't. rift is a small Go binary I built to solve that. Run it as a server on a VPS you own, run it as a client wherever the private service lives, and the service becomes reachable from the public internet over HTTPS. Same shape as ngrok, frp, or bore — different transport underneath. rift A self-hosted tunnel for local development. One binary, one VPS, no accounts. Expose localhost to the internet over a single QUIC connection — on infrastructure you fully own. Built for sharing dev servers, testing webhooks, and demoing work in progress.…