For apps running on localhost
Show your next change before you ship it.
Give a tester a link to the app on your machine. They use it, you change it, they see it. Same link, no deploy.
How it works
Your machine, their browser, one link.
Your machine
$ npm run dev VITE v7.1.4 ready in 312 ms ➜ Local: http://localhost:3000/ 2:45 PM [vite] hmr update /src/Hero.jsx
$ purlview share 3000 ✓ Sharing localhost:3000 https://k7m2p4qx.purlview.link/?token=Zk3vQ9x7Lm2Np5RtYw8AbC Access Anyone with this link Expires in 1h · 3:42 PM 2:44 PM ● First visitor opened the app
The tester's browser
- You share a port
- Your tester opens the link
- You change code, they see it
You save a change and your dev server reloads it. Their page goes from sunrise to night, through the same link, with nothing deployed.
Get started
Install. Share. Collaborate.
Install once, share any app on your machine, and keep changing it while your tester uses it.
-
Install
macOS, Linux, WSL
curl -fsSL https://purlview.com/install.sh | shWindows PowerShell
irm https://purlview.com/install.ps1 | iexAlso Homebrew, Linux packages, WinGet and Scoop.All install options
-
Share
purlview share 3000Start your app first. The first share signs you in with a code from your email, then prints the link to send your tester.
Why Purlview
-
No changes to your app
Hot reload, logins and APIs on other ports work as they are.
-
You choose who gets in
A secret link, or only the email you name.
-
Gone in an hour
Links end when you stop, or after 60 minutes.
Access
Two ways in.
Share with a whole call, or with exactly the people you name.
Anyone with the link
The link carries its own secret. Whoever opens it goes straight to your app.
$ purlview share 3000 Access Anyone with this link
Only the people you name
Each address gets an invite by email. Anyone else who opens the link is asked for an email and gets nothing.
$ purlview share 3000 --to ana@example.com ✓ Invite sent to ana@example.com
The tester's side
What your tester sees.
Mostly, your app. Purlview shows a page of its own only when there is something to say, in one line with one button.
purlview
Your link is ready
Open the app sam@example.com is sharing with you.
Open appThe invite. One button opens your app. It works once, for as long as the share runs. purlview
You're invited to try an app
Enter your email to get a link.
name@company.com Send linkThe link, without the invite. On another device, they ask by email. Only an address you named gets in. purlview
The app isn't responding
It may be restarting. This page reloads when it's back.
While your server restarts. The page reloads itself when your app answers again. purlview
This share has ended
Ask the person who sent it for a new link.
After you stop. Or after the hour. The link never opens your app again.
Front end and API
Several apps, one link.
Name every port. The link opens the first; your front end reaches the API as it does on your machine, because Purlview translates your apps' own addresses for the tester.
$ purlview share 5173 8000 ✓ Sharing localhost:5173 + localhost:8000 https://k7m2p4qx.purlview.link/?token=Zk3vQ9x7Lm2Np5RtYw8AbC