BrandGEO for Laravel Nova
A fully branded BrandGEO client dashboard inside your Laravel Nova admin: account & subscription status, brands with AI visibility scores, per-engine audit drill-downs, monitoring KPIs, share of voice, citations and trends — everything your BrandGEO API key can see, shaped by the account's plan (trial accounts see locked engines and preview recommendations, exactly like the BrandGEO app).
Built on a2zwebltd/brandgeo-laravel-client.
Screenshot
Features
- Embedded in the Nova SPA — a real Nova tool page at
/nova/brandgeosharing Nova's menu and chrome (no JS build step; the iframe auto-resizes, no scrollbars). A standalone page at/brandgeo-dashboardis also available. - Brand-centric dashboard — a default brand (auto-selected for single-brand accounts, persisted to
.env) with a header switcher; per-brand view with monitoring first, then the latest audit. - Monitoring — KPI row, SVG visibility-trend chart, share of voice, competitor table, top cited sources, prompt-category insights, custom queries and recent AI answers with expandable responses.
- Audit drill-down — engines grouped by mode (Online · Web Search first, then Offline · Trained), each expanding into key findings, analysis, the six visibility dimensions with confidence levels, and web sources.
- Scores that explain themselves — every score reads as
X/100with a plain-language band (Low · Weak · Fair · Strong · Excellent), an always-visible 0–100 scale bar, and the same Offline-Trained vs Online-Web-Search explainer the BrandGEO app shows, including how to read the web−trained gap. - Follows Nova's theme — light and dark, switched live with Nova's own toggle (no reload) and resolved before first paint, so the panel never flashes the wrong scheme.
- API key onboarding — when
BRANDGEO_API_KEYis missing, a branded form validates the key against the live API and writes it to the host.env; the page fully reloads with the new data. - Plan-aware — trial keys render locked-engine stubs and preview action plans; expired trials surface the 402 paywall state; deep links open the full BrandGEO dashboard.
Requirements
- PHP 8.2+
- Laravel 11 / 12 / 13
- Laravel Nova ^5.0
- A BrandGEO account (brandgeo.co) — the built-in form will ask for your API key on first run
Installation
composer require a2zwebltd/brandgeo-laravel-novaRegister the tool in your NovaServiceProvider:
use A2ZWeb\BrandGeoNova\BrandGeoNovaTool;
public function tools(): array
{
return [
new BrandGeoNovaTool,
// ...
];
}If your app customizes Nova::mainMenu(), add the menu section yourself:
use A2ZWeb\BrandGeoNova\BrandGeoNova;
Nova::mainMenu(fn () => [
// ...your sections...
BrandGeoNova::menuSection(),
]);That's it — open BrandGEO in the Nova sidebar. If no API key is configured yet, the onboarding form appears; the submitted key is validated against the live BrandGEO API before being saved to .env.
Configuration
php artisan vendor:publish --tag=brandgeo-nova-config| Key | Default | Description |
|---|---|---|
path |
brandgeo-dashboard |
URL of the standalone dashboard (also loaded in the Nova iframe) |
middleware |
['web', Nova Authenticate] |
Only Nova-authorized users can access it |
default_brand |
env('BRANDGEO_DEFAULT_BRAND') |
Brand uuid opened by default ("Set as default" writes it) |
cache_ttl |
3600 |
Seconds to cache API responses — override via BRANDGEO_NOVA_CACHE_TTL (the "Refresh data" button bypasses it) |
app_url |
derived from client base_url |
Base for "Open in BrandGEO" deep links |
Client settings (base URL, timeouts, TLS verify) come from brandgeo-laravel-client — see BRANDGEO_BASE_URL, BRANDGEO_API_KEY, BRANDGEO_VERIFY_SSL.
Running
config:cache? Re-run it after saving a key or default brand — the forms write.env, which cached configs ignore.
BrandGEO API resources
- BrandGEO — AI brand visibility audits & monitoring
- API documentation — endpoints, auth, plan access, FAQ
- Interactive API playground — try every endpoint in the browser
- OpenAPI 3.1 spec (YAML) — machine-readable contract
- Get your API key — Settings → API in your dashboard
Security Vulnerabilities
If you discover any security related issues, please email biuro@a2zweb.co instead of using the issue tracker.
License
MIT. See LICENSE.
Credits
Developed and maintained by the A2Z WEB crew:
- Dawid Makowski
- Website: https://a2zweb.co/
- GitHub: https://github.com/a2zwebltd/
