Stop guessing why your client's site is broken.
Catch the JS errors, rage clicks, broken forms, and dead buttons before your client emails you. One composer install. A @harvv Blade directive. Free for your portfolio.
composer require harvv/laravelphp artisan harvv:install@harvv {{-- in your master layout, above </head> --}}Or paste a 6-line snippet — works on any Laravel, WordPress, or static site.
Built for Laravel 11, 12, and 13. Works with Forge, Vapor, Filament, Livewire, Inertia.
The 7pm Slack message
When the client says "something's wrong with the site."
Your Lighthouse score is 95. Your tests pass. You deployed clean. Then the email comes: "My users can't checkout" or "the site is slow" or just "something's broken — can you look?"
You can't reproduce it. You ask for screenshots. You ask for browser and device. You spend the evening trying every combination on BrowserStack. You eventually push back: "works on my end." The client goes quiet. A week later they hire someone else.
The bug was real. It was a Safari iOS rendering glitch on the checkout form that fires only when the user has autofill enabled. You would never have found it. Now you've lost the client and your reputation took a hit.
Harvv is the diagnostic pixel that watches what your code actually does on your client's real users. JS errors, rage clicks, dead form fields, Core Web Vital regressions — captured with the user's browser, device, and the exact action that triggered the issue. So when the client emails, you have the answer ready in 30 seconds.
First 5 minutes
What you'll see in the first 5 minutes after install.
JS Errors
Every uncaught error, with stack trace, user agent, route, and the sequence of clicks that led to it.
Rage Clicks & Dead Buttons
When users click the same element 3+ times in 2 seconds, you'll know. Includes the exact element and the route.
Form Friction
Field-level abandonment, keyboard errors, copy-paste patterns. Find why users bail mid-form.
Laravel-native
Built the way Laravel packages should be.
Auto-discovery. Sensible defaults. Out-of-the-box environment awareness. The install command does the boring parts.
Install
composer require harvv/laravel
Configure
HARVV_SITE_KEY=your_site_key_here
HARVV_HMAC_SECRET=auto_generated_by_install
Render
<head>
...
@harvv
</head>
- Auto-discovery — no manual provider registration
- Blade directive
@harvvand component<x-harvv-pixel /> - Environment-aware (dev / staging / prod toggles via .env)
- Optional middleware for server-side context (route name, hashed user ID, request ID attached to every browser event)
- Compatible with Forge, Vapor, and shared hosting (cPanel)
- Compatible with Filament, Livewire, Inertia, and Nova
- One artisan command to verify install:
php artisan harvv:verify
The wedge
What a generic JS pixel sees vs. what Harvv Laravel sees.
A browser-only pixel can capture the URL, the element, the click coordinates, and the timestamp. That's table stakes. Harvv's optional Laravel middleware attaches the per-request server context the pixel can't see on its own — turning a "rage click on /checkout" into "rage click on the checkout.show route, by an authenticated user, on their third attempt this session."
event: rage_click url: /checkout element: button.btn-primary x: 284 y: 412 time: 2026-05-11 14:23:08
event: rage_click url: /checkout element: button.btn-primary x: 284 y: 412 time: 2026-05-11 14:23:08 route: checkout.show auth_state: authenticated user_id_hash: a3f7c2e… session_attempt: 3 request_id: req_abc123
Our optional middleware injects per-request server context. The pixel attaches it to every event. You see what happened, who it happened to, on which route, with which session state. User IDs are SHA-256 hashed with your site key by default — Harvv never sees your primary keys.
Compatibility
Tested where it counts.
| Framework / Runtime | Status | Notes |
|---|---|---|
| Laravel 13.x | ✓ Fully supported | Current major, recommended |
| Laravel 12.x | ✓ Fully supported | Stable, in active support |
| Laravel 11.x | ✓ Supported | Security-only — upgrade recommended |
| Laravel 10.x and below | Use the JS snippet | Composer package targets 11+ |
| PHP 8.2 | ✓ Required (Laravel 11/12) | |
| PHP 8.3 | ✓ Required (Laravel 13) | |
| Shared hosting (cPanel) | ✓ Works | No SSH required for setup |
| Forge / Vapor | ✓ Works | Standard env-var setup |
| Filament / Livewire / Inertia | ✓ Compatible | No conflicts |
Agency mode
Manage every client site under one account.
- One Harvv account, unlimited client sites under the Agency tier
- White-label client emails — your brand, our data
- Send clients a monthly "issues detected and fixed" report from your agency address
Built for the Laravel agency owner who's tired of explaining what they did this month.
See Agency tier pricing →Transparency
What this isn't.
Pricing
Free for your portfolio. Paid when it pays.
No credit card required. Every plan includes the full pixel and case management.
For your portfolio site, or your first client install.
- 1 site
- All event detection features
- 90-day data retention
- Email support
- No credit card required
When you have 2–3 client sites or want priority support.
- 3 sites
- All free-tier features
- Priority email support
- Cancel anytime
- No credit card required to start
Unlimited sites, white-label, monthly client reports.
- Unlimited client sites under one account
- White-label client emails
- Agency dashboard with multi-site overview
- 3-site minimum
- Prorated refunds, cancel anytime
International cards accepted. If your bank issues a USD virtual card or you use a service like Payoneer or Wise, it'll work the same as a regular card. If your card declines, email support@harvv.com — we'll find a way.
FAQ
The questions you'd ask before installing.
Will Harvv slow down my client's site?
Does Harvv work on shared hosting (cPanel)?
My client uses WordPress / Shopify / a non-Laravel CMS. Can I still use Harvv?
What data does Harvv collect?
Is Harvv GDPR-friendly?
window.__harvvConsent() and honors Global Privacy Control headers. For full GDPR compliance, your site needs a consent banner; Harvv will respect what it tells us. We do not store IP addresses against events.Where is my data stored?
Can I uninstall easily?
composer remove harvv/laravel. Then remove the @harvv directive from your layout. Done. We won't hold your data hostage — request deletion via support and we'll wipe within 7 days.Does the free tier require a credit card?
Is $29/month worth it for a portfolio site or freelance setup?
Install Harvv on your portfolio in 2 minutes.
Start with your own site. Add client sites later.
No credit card required. Cancel anytime. International cards accepted — Visa, Mastercard, plus most USD virtual cards including Payoneer and Wise.