qurl. link
No deploy

How do I show my app to a friend or a client without deploying it?

Share it from your computer. Install the qurl CLI, publish the app that’s already running on localhost, and ask your AI to invite them by email or let them ask for access. Nothing is uploaded or deployed. The app stays on your computer and gets no public URL. No account needed.

Your options

Where your app runs, and who gets in.

qurl.link

qURL CLI

Where it runs
Your computer.
What visitors get
An email invitation, or an address they can ask to open.
Who can reach it
People you invite or approve. Then the network it was opened from, for that visit.

Deploy a preview

Vercel, Netlify

Where it runs
Their servers, after you deploy.
What visitors get
A URL on the host. Vercel preview URLs are public by default.
Who can reach it
Anyone with the URL, unless you turn on access protection.

Quick tunnel

ngrok, Cloudflare

Where it runs
Your computer.
What visitors get
A public URL.
Who can reach it
Anyone with the URL, unless you set up sign-in rules.

Page host

Stacktree and others

Where it runs
Their servers, after you upload.
What visitors get
A link to the page.
Who can reach it
Anyone with the link, unless you add a passcode.

This is each tool’s quick way to share. Most of them have more settings you can turn on. The longer version: deploy a preview or share?

With qURL

Three commands, no deploy.

Share it with qURL

  1. Install the qurl CLI.

    On a Mac, use Homebrew. On Linux and Windows, download the .deb, .rpm or archive from the CLI releases and put qurl on your PATH. No account to make first.

    Install (macOS)
    $ brew install layervai/tap/qurl
  2. Publish the app that’s running.

    Use your app’s port and choose the access policy: review lets people ask and you approve each one; invite_only admits only the people you invite. The app stays on your computer. Nothing is uploaded or deployed, and the first publish creates a free identity for this computer.

    Publish
    $ qurl publish http://127.0.0.1:3000 --access review
  3. Send the address, then approve who asks.

    Send the address that qurl publish returned. Each person who opens it asks for access, and nobody gets in before you approve them: list the requests, then approve the one you chose by its decision ID. Rather invite people by email? Publish with --access invite_only instead and let your AI send the invitations.

    Approve a request
    $ qurl access list_grants <id> -o json
    $ qurl access approve <id> <decision-id> --version <current-version> -o json

Done sharing? qurl stop <id> takes the app offline, and qurl delete <id> --yes retires it: its links stop working and open visits end. Rather not type commands? Paste one prompt into your AI and it does the setup.

Vite says “Blocked request. This host is not allowed”? Add ".qurl.site" to server.allowedHosts and restart Vite. Next.js blocks cross-origin dev requests: add "*.qurl.site" to allowedDevOrigins. Guides: Vite, Next.js.

qurl publish starts a background service, so the share keeps running after you close the terminal, as long as you stay logged in. While your computer sleeps, the app can’t be reached; the service reconnects when it wakes.

When to deploy

Your next step, when you get there.

  • Ready for anyone to use it?Deploy it
  • Needs to stay up when your computer is off?Deploy it
  • It’s one page that should stay up on its own?Use a page host
  • A webhook or a public API?Use a public tunnel
Made a thing?

Start with qurl.link.
Show someone today.

Free to try. No account needed. Current limits