shp.it: Three Keystrokes from Localhost to Live

We've all been there: you've just built a stunning new feature on your local machine. You want to show it to a colleague, a client, or a friend. But they aren't in the same room.

The traditional dance begins: you commit the code, push to a repository, wait for CI/CD pipelines to run, wait for a staging environment to build, and finally share a link. All for a 10-second visual check. Or maybe you wrestle with complex tunneling setups, configuring ports and auth tokens just to get a temporary URL.

There had to be a better way. Enter shp.it.

shp.it hero section showing 'localhost, meet the world'

The Premise: Zero-Friction Sharing

The core idea behind shp.it is simple: sharing your local dev server shouldn't be a chore. It should feel like magic.

With a single terminal command - npx shp-serve - shp.it automatically detects your framework (whether you're using Next.js, Vite, SvelteKit, or Django), locates your dev server, opens an end-to-end encrypted tunnel, and copies a live HTTPS link directly to your clipboard.

Three seconds. Start to finish.

Everything You'd Expect. Nothing to Configure.

shp.it capabilities section showing 'One command to go live'

When building shp.it, I focused on removing every possible barrier while maintaining the high-quality developer experience you deserve.

  • Live Reload Included: Hot Module Replacement (HMR) seamlessly works through the tunnel. As you edit files locally, every viewer sees the changes instantly. No manual refreshing required.
  • Encrypted & Ephemeral: Security isn't an afterthought. Every tunnel is end-to-end encrypted. Links self-destruct after 24 hours to prevent lingering access, and you can easily add password protection with a single flag.
  • Framework Agnostic: If it runs on localhost, it works on shp.it. No custom configuration files are needed to support your favorite stack.
  • Built-In Dashboard: Right from your terminal, you can see who is viewing your work, inspect real-time request logs, and monitor bandwidth.

The Engineering Challenge

Proxying local development servers sounds trivial until you try to support Hot Module Replacement over a tunnel. Handling varying WebSocket configurations across different bundlers (Webpack, Vite, Turbopack) without requiring user configuration was our biggest technical hurdle.

By aggressively auto-detecting the underlying build tool and dynamically adapting the proxy headers, shp.it achieves exactly what I set out to do: it just works.

Ready to ship?

Don't let deployment pipelines slow down your feedback loops. Your local project is just one command away from the world.

To get started, simply run:

npx shp-serve

Get The Drop

Drop your email to get early access to tools like shp.it before anyone else.