Showing work in progress is usually a chore: you start a tunnel such as ngrok, expose a port, send a random address and hope your laptop stays awake. With rdev your projects already run on your remote server, around the clock, at https://<name>.dev.test. Anyone on your tailnet opens that address and sees the project as it is right now, including what your AI agent changed a minute ago.
Who can open your sites
| Who | How they open https://shop.dev.test |
What they need |
|---|---|---|
| You, on a connected laptop | Directly | Nothing more; rdev laptop connect set it up |
| A teammate or a client you invite to your tailnet | Directly, live, whenever they like | Tailscale on their device, the dev.test nameserver and, to avoid a warning, your certificate |
| Someone you do not want on your tailnet | Through a temporary preview address with a password | Only a browser (Sharing a preview) |
Nothing goes through rdev.cloud: your visitors reach your server over your own Tailscale network.
Invite a client to follow along
Do these once:
-
Invite them. In the Tailscale admin console, choose Invite users and send the invitation to your client's email. They install Tailscale on their computer or phone and accept it. Check how many users your Tailscale plan allows.
-
Send
dev.testto your server. In the admin console, go to DNS > Nameservers > Add nameserver > Custom, enter your server's tailnet IP address (shown byrdev host statusand in the Tailscale admin console) and restrict it to the domaindev.test. It applies to every device on your tailnet, so you only add it once. -
Limit what they can reach. By default, a new user can reach every device on your tailnet. Allow your client only the web and name lookups on your server in the access controls, for example:
{ "groups": { "group:team": ["[email protected]"] }, "acls": [ { "action": "accept", "src": ["group:team"], "dst": ["*:*"] }, { "action": "accept", "src": ["[email protected]"], "dst": ["100.101.102.103:443,53"] } ] }Put yourself and your teammates in
group:team, your client's email in the second rule and your server's tailnet IP as the address. This replaces the default "everyone reaches everything" rule, so keep any other rules you already have. -
Avoid the certificate warning (optional). Your environment signs its
.dev.testsites with its own certificate. Send your client the file~/.config/rdev/ca.pemfrom your laptop and ask them to trust it (macOS: Keychain Access; Windows: Trusted Root Certification Authorities; iOS and Android: install it as a profile or certificate). Without it, the browser shows a warning that they can click through. They can remove the certificate when the project is over.
Then send them the address, such as https://shop.dev.test. They see the site as it is on your server, and every refresh shows the latest state, so they can follow the work step by step while you or your agent build it.
Good to know
- Your client sees your development site with its data. Use test data, not production data.
- They see changes as they happen, including half-finished ones. When you want to show only a finished state, use a preview or tell them when to look.
- To end access, remove the user in the Tailscale admin console. A preview link stops by itself after the time you set.
- Team plans can give team members their own environments instead; see Teams.