Download the PHP package arhx/improveme without Composer

On this page you can find all versions of the php package arhx/improveme. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package improveme

improveme

A drop-in feedback & bug-report widget for Laravel. It adds a floating 🐞 icon to your site; clicking it lets a user write a bug report or a suggestion, visually pick the related block on the page (with a drill-down picker that lets you "see through" to the element behind), and ships the report — its text, a CSS selector, the element's HTML and a screenshot of the area — to Telegram and/or a log file.

Requirements

Install

That's it. The service provider is auto-discovered and, by default, the widget auto-injects before </body> on every HTML page. Open any page and you'll see the floating icon in the bottom-right corner.

Reports are written to storage/logs/improveme.log immediately, even before you configure Telegram.

Configure Telegram (optional)

Add to your .env:

Now every report is sent to that chat (screenshot as a photo with the report as caption). Leave them unset and only the log channel runs.

To send into a forum topic: IMPROVEME_TELEGRAM_THREAD_ID=42.

File GitHub issues (optional)

Turn each report into a GitHub issue in your repo's tracker — handy when you want feedback to land somewhere an AI coding agent (or a human) can read and act on directly:

Use a classic PAT with the repo scope, or a fine-grained PAT scoped to Issues: Read and write on the target repo. Each issue gets the report's message as title, the page URL, picked selector/HTML, browser console errors and a screenshot reference in the body, labelled improveme + bug/enhancement (missing labels are created automatically). Channels stack — Telegram and GitHub can both be on at once. Configure labels/endpoint in the published config.

Inertia (Vue / React) projects

improveme works out of the box in Laravel + Inertia apps — no Inertia dependency is added to your project. A few notes on how it fits an SPA:

Nothing extra to configure: composer require arhx/improveme and the widget shows up. Restrict it to staging/authenticated users with the env switches below.

Manual placement

Prefer to control exactly where the snippet renders? Turn off auto-injection and drop the directive in your layout:

Common env switches

Env Default Meaning
IMPROVEME_ENABLED true Master on/off switch.
IMPROVEME_INJECT true Auto-inject before </body>.
IMPROVEME_AUDIENCE all all | auth | guest.
IMPROVEME_POSITION bottom-right Icon corner.
IMPROVEME_ACCENT #ff5a36 Icon / primary button colour.
IMPROVEME_HOVER_COLOR #3b82f6 Element hover outline.
IMPROVEME_SELECTED_COLOR #22c55e Picked element outline.
IMPROVEME_SCREENSHOT_PADDING 15 Px captured around the selection.
IMPROVEME_XSRF_COOKIE XSRF-TOKEN Cookie read for a fresh CSRF token (SPA/Inertia).
IMPROVEME_TELEGRAM_TOKEN — Bot token (enables Telegram).
IMPROVEME_TELEGRAM_CHAT_ID — Target chat id.
IMPROVEME_GITHUB_ENABLED false File a GitHub issue per report.
IMPROVEME_GITHUB_TOKEN — PAT with issues:write.
IMPROVEME_GITHUB_REPO — Target repo as owner/repo.

Publish & customise

Publish the config to tweak anything (and to rename the env vars — just edit the env('…') calls in the published file):

Publish the Blade snippet (e.g. to restyle the bootstrap):

Self-host the JS asset instead of serving it from a route:

Override the route or controller

Point the package at your own controller (extend the bundled one for the easiest path):

Or take over routing entirely:

How the picker works

  1. Click 🎯 Pick an element — the page enters picking mode.
  2. Hovering outlines the block under the cursor (hover colour).
  3. Click to select it (selected colour). The selection stays highlighted.
  4. Hovering the selected block now sees through it — the outline previews the block behind it; clicking again drills to that containing block.
  5. Press Esc (or Done) to finish. A screenshot of the selection (padded by 15px) is captured client-side via html2canvas-pro — a maintained html2canvas fork that understands Tailwind 4's oklch() colours (lazy-loaded from a CDN; URL configurable via IMPROVEME_HTML2CANVAS_URL).

The report payload includes a unique CSS selector, the element's outerHTML (truncated), its bounding rect, the page URL/title, viewport, user agent, the request IP, the authenticated user id (just Auth::id() — no name/email), any buffered browser console errors, and the screenshot.

Console/JS errors are captured from the moment the widget snippet is parsed: console.error(...), uncaught error events (including failed resource loads) and unhandledrejection are buffered (last 50) and attached automatically — so a bug report comes with the relevant console output already in it.

What gets sent

The server additionally records the request IP and the authenticated user id (resolved from Auth::id()) — these are taken server-side, not from the payload.

License

MIT © arhx


All versions of improveme with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
illuminate/support Version ^10.0|^11.0|^12.0|^13.0
illuminate/http Version ^10.0|^11.0|^12.0|^13.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package arhx/improveme contains the following files

Loading the files please wait ...