Screenshots are a symptom. They usually mean the client cannot review the real thing, or the team does not have a clean way to collect feedback on the real thing.
So the agency sends a screenshot. The client replies to the email. Someone circles a button in a PDF. Someone else says "looks good" in Slack. A project manager copies notes into Linear or Jira. Two days later, nobody is fully sure which version the client approved.
That is not a design problem. It is a review workflow problem.
Screenshots Create Approval Drift
A screenshot freezes one moment, one viewport, and one path through the product. It cannot show hover states, mobile behavior, form validation, loading states, checkout flows, or what happens after a user clicks the thing being discussed.
Worse, screenshots separate feedback from context. "Move this up" only makes sense if everyone is looking at the same page, same version, and same state. In real agency work, that assumption breaks constantly.
The Better Client Review Loop
A healthier review cycle looks like this:
- You deploy a temporary preview for the exact branch or client revision
- The client opens a real URL, not a screenshot
- They click through the actual experience on their own device
- They approve or request changes from inside the preview
- Your team sees structured feedback tied to the reviewed URL
No image annotations. No "which build is this?" No hidden staging server that another developer might overwrite before the client finishes reviewing.
Enabling the Feedback Widget
Add a single flag to your deployment command:
prev create . --feedback
That's it. prev injects a lightweight JavaScript widget into the preview environment. No changes to your source code. No npm packages to install. No configuration files to update.
The widget appears as a floating button - unobtrusive but always accessible. Clients can submit feedback from any page within the preview, and prev automatically captures which page they were on when they submitted.
What Clients See
When a client opens a feedback-enabled preview, they see a small floating button labeled "Feedback" in the corner of the screen. Clicking it opens a panel where they can:
- Write a free-text message describing what they want changed (or what they love)
- Enter their name (optional, but useful when multiple stakeholders review the same preview)
- Click Approve to mark the preview as signed off
- Click Request Changes to flag it for revision
The widget is purely additive — it doesn't affect the preview's layout, styling, or functionality in any way.
What You See
Every submission lands in your Dashboard → Feedback inbox. Each entry shows:
- The reviewer's message
- Whether they approved or requested changes
- Their name (if provided)
- The exact page URL they were on
- The preview environment they were reviewing
- The timestamp
New submissions show an unread badge on the Feedback nav item so you never miss a response. Click any item to expand it and read the full message — it's automatically marked as read when you open it.
Filtering and Organizing
When you're working with multiple clients and multiple previews simultaneously, the inbox can fill up quickly. The filter tabs help you focus:
- All: Everything in your inbox
- Unread: Items you haven't opened yet
- Approved: Submissions where the client clicked Approve — great for sign-off tracking
- Changes: Submissions requesting revisions — your action queue
On the Teams plan, you can also filter by notification profile to see only feedback for a specific project's previews.
Agency Workflow
Here is how this looks in a client project:
Round 1: First Review
# Deploy the first client review
prev create . --feedback --subdomain acme-v1 --ttl 7d
Send the URL to the client. They browse the actual work, leave three comments, and approve the direction. You see each item in the inbox with the page they reviewed.
Round 2: Revision
# Deploy the revised version
prev create . --feedback --subdomain acme-v2 --ttl 7d
The client reviews the changes and clicks Approve. You have a clear sign-off tied to the reviewed URL. Ship it.
Combining with CI/CD
The feedback flag integrates cleanly into GitHub Actions workflows, making it easy to add feedback collection to every pull request preview automatically:
name: PR Preview
on:
pull_request:
types: [opened, synchronize]
jobs:
preview:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install prev
run: curl -fsSL https://prev.sh/install.sh | sh
- name: Deploy Preview with Feedback
run: |
prev create . --feedback \
--subdomain pr-${{ github.event.number }} \
--ttl 14d
env:
PREV_API_KEY: ${{ secrets.PREV_API_KEY }}
Every PR automatically gets a live preview with the feedback widget enabled. Stakeholders can review directly in the PR environment and submit their thoughts — all tracked in your Dashboard.
Plan & Pricing
The Feedback & Review Workflow is available on all paid plans — Individual and Teams. You don't need to upgrade to start collecting feedback.
If you're on the Teams plan, you can go further with Notifications & Webhooks: route feedback submissions directly to Slack, Discord, Microsoft Teams, Google Chat, email, or a custom webhook as they come in — no need to check the Dashboard manually.
Getting Started
If you're already using prev, the only change needed is adding --feedback to your next deployment:
prev create . --feedback
Open the Dashboard, go to Feedback, and you'll see submissions appear in real time. Full documentation is available in the Feedback & Review Workflow guide.