Skip to content
Laravel · in-app feedback

Client feedback your AI can actually fix.

A floating button on every page. Clients draw on what's wrong and write a note. It lands as a GitHub or GitLab issue your coding agent picks up.

composer require hexters/feedback-now Read the setup
your-app.test/profile
The Report an issue form a client sees on any page
The loop

From “the thing is broken” to a fixable issue.

No more vague bug reports over chat. The client gives you the page, the words, and a marked-up screenshot — structured enough for an agent to act on.

1

Client clicks Report

A floating button sits on every page. They type what went wrong; the page path is captured automatically.

2

They mark it up

Draw on the problem in four colors and drop a note right where they drew. Add as many screenshots as needed.

3

It becomes an issue

Filed straight into your GitHub or GitLab repo, with the annotated image and notes. Your agent takes it from there.

Mark up the screenshot

Point at the problem, in plain sight.

This is the part clients actually enjoy. Pick a color, draw, and a note box pops up exactly where they drew. Every mark is numbered and color-coded, then burned into the image and listed in the issue — so each note points to its mark.

  • Four meanings: info, success, warning, danger.
  • Numbered marks matched to numbered notes.
  • Draw, drop a file, or paste from the clipboard.
  • Roomy two-pane editor on desktop, simple on mobile.
Drawing on a screenshot and adding a note
Each mark numbered and matched to its note
Setup

Three lines of env. That's it.

The button switches on wherever a token is set, so leaving the token out of production keeps it off there.

Install
composer require hexters/feedback-now
php artisan vendor:publish --tag=feedback-now-config
.env · GitHub
FEEDBACK_NOW_PROVIDER=github
FEEDBACK_NOW_TOKEN=ghp_xxx
FEEDBACK_NOW_REPO=owner/repo
.env · GitLab
FEEDBACK_NOW_PROVIDER=gitlab
FEEDBACK_NOW_TOKEN=glpat-xxx
FEEDBACK_NOW_REPO=12345

Token: on GitHub use a classic personal access token with the repo scope, and give it an expiry that matches the job — 6 months, or just the testing window. More on providers and tokens →

github.com/owner/repo/issues/3
The created issue on GitHub with the annotated screenshot and notes
What lands in the issue

Clean enough for an agent to act on.

  • The page path where it happened.
  • The client's words as the title and body.
  • The annotated screenshot, marks burned in.
  • A numbered, color-coded note list, plus page and browser metadata.

On GitHub the screenshots are committed and embedded; on GitLab they go through the upload API. Either way, hand the issue to Claude Code, Cursor, or whatever you run.

Built to stay out of the way

Small, safe, and zero-config on the frontend.

Every page, no edits

A global middleware injects the button before </body>. No layouts to touch, no build step.

Off in production

Active only where a token is set. Leave it out of your production .env and it never shows.

GitHub & GitLab

One token, one repo. Self-hosted GitLab supported through a single host setting.

No frontend framework

Plain vanilla JS and scoped CSS. It won't touch your app's styles or pull in a thing.

Rate limited

The submit endpoint is throttled and validates uploads, so it cannot be hammered.

Laravel 11, 12, 13

PHP 8.2+. Tested across the matrix, MIT licensed, and open source.

Ship it to your next client.

Turn vague bug reports into issues your AI can fix — in about a minute of setup.

composer require hexters/feedback-now View on GitHub

In-app feedback for Laravel. MIT licensed, open source.