Preview deployment
A temporary live URL built automatically for every branch or pull request, so people can click the change before it merges.
See it
What it is
A preview deployment is a full, real build of your app at a unique URL, created automatically for a branch or pull request and meant to be short-lived: once the branch merges or closes, that deployment should be torn down or expired. Do not assume it happens by itself. Some platforms delete on close, others keep every preview around under a retention policy you have to configure, and a year of forgotten previews is both a bill and a pile of live URLs nobody is watching. Vercel, Netlify, Cloudflare Pages, and Render all bot-comment the link straight onto the PR. Instead of 'trust me, it looks fine locally', reviewers and clients get something to click.
Reach for it when a change needs eyes that are not yours: design review, stakeholder sign-off, QA on a real mobile device, or Lighthouse and visual-diff checks running against a hosted build. It also catches the classic 'works on my machine' bugs, since the preview goes through the same build pipeline production does.
Gotcha: a preview is production-grade code pointed at whatever data you gave it. If previews share the production database, a reviewer clicking around can send real emails, charge real cards, or delete real rows. Point previews at a seeded branch database, stub the payment and email providers, and put the URLs behind auth plus a noindex header, since preview links leak and Google will happily index a stray one.
Ask AI for it
Set up preview deployments for this repo. On every pull request, build the app and deploy it to a unique per-branch URL, then post the link as a comment on the PR and update that same comment on later pushes. Use a separate preview environment: point it at a seeded preview database rather than production, stub outbound email and payments, add an 'X-Robots-Tag: noindex' header plus basic auth on every preview URL, and make cleanup explicit: tear the deployment down when the PR is merged or closed, and set an expiry or retention policy as a backstop so nothing survives indefinitely if the platform does not delete it for me. Tell me which of the two the platform actually does by default.