Changelog
Product updates, improvements, and fixes.
Critical security update: Next.js 16.2.5
Upgraded Next.js to 16.2.5 to patch a critical SSRF-class vulnerability (CVSS 8.6) affecting self-hosted Next.js between 13.4.13 and 16.2.4. No action is required from you.
- Patched on the day of disclosure across all environments.
- No user data was exposed — the platform runs behind authenticated routes.
- Build, type checks, and integration paths verified after the upgrade.
Impersonation toolkit & faster scans
We hardened admin impersonation sessions, made it visible at all times, and shaved noticeable latency off scan startup. Support work is now safer and faster.
- Persistent impersonation indicator in the header with a one-click "Stop view".
- Scans started under impersonation now run against the effective user — no accidental credit charges to admins.
- Client state is fully refreshed when impersonation starts or stops, eliminating stale dashboards.
- Independent reads inside scan actions are parallelized; in-process cache for resolveEffectiveUserContext cuts redundant Firestore round-trips.
- Admin users page now resets pagination correctly on search/sort change.
Accessibility audit & dedicated MCP Docs page
We ran a full accessibility pass on the public pages and shipped a localized installation guide for the LBM MCP server.
- New /mcp-docs page with a step-by-step MCP setup guide in English, Ukrainian, and Spanish.
- <html lang> attribute now syncs with the active locale for screen readers and auto-translate.
- Unique aria-labels on every <nav> landmark — passes axe landmark-unique audit.
- WCAG AA contrast restored across /mcp-docs in light theme.
Competitors: own brand in top-10, true per-scan visibility
The Competitors page now reflects exactly what was measured: your own brand sits alongside competitors, and the visibility chart uses per-scan data instead of approximations.
- Your own brand is shown in the competitors top-10 bar chart, with a distinct accent.
- Visibility chart switched to true per-scan visibility — values now match the project dashboard.
- Default date range auto-widens when the initial window has no data.
- Competitor stats migration v2 transparently rebuilds historical data on next view; impersonated rebuilds use the correct user id.
- Cached project visibility refreshes immediately after settings updates.
OAuth & Connected Apps: smoother MCP and integration onboarding
We rounded out the OAuth flow used by the LBM MCP server and third-party integrations — clearer errors, a working test loop, and richer access tokens.
- Access tokens now include both MCP and API v1 URLs in the audience claim — one token works for both.
- GET /api/v1/models is publicly accessible (no auth) so MCP clients can discover available models before sign-in.
- Connected Apps card shows the “Granted at” timestamp for each authorized client.
- /oauth/error explains known error codes with Ory-specific hints; new /oauth/test-callback debug page implements the full PKCE flow.
- Backfilled missing translations across EN/UK/ES locales discovered during the audit.
Full localization across the app and API Docs
We completed end-to-end localization. All user-facing text now translates to English, Ukrainian, and Spanish — including form validation, modals, tooltips, dates, and the API Documentation page.
- 1166+ translation keys covered — zero hardcoded English left in the UI.
- API Documentation page fully translated: Authentication, Rate Limits, Error Codes, all 17 endpoint descriptions.
- Locale-aware dates and relative times (Profile, Header tooltips, Chat/History/Results modals) via date-fns locales.
- Settings/Wizard form validation messages now translate via localized zod schemas.
- Web Search tooltips, Competitors cell-detail modal, project status pills, and footer links.
- Collapsible sidebar with translated tooltips and crisper active-state highlight.
Public API v1: snake_case, pagination, and richer filtering
Significant upgrades to the public API. Response payloads adopted snake_case and <collection>_id naming across all endpoints, list endpoints gained pagination, and several endpoints got new filters and validation.
- snake_case across requests/responses; ids renamed to project_id, prompt_id, scan_id, etc.
- Pagination on /models, /competitors, /history (default 50, max 500/200).
- /models: new ?available and ?search filters; authentication now required.
- /history: ISO 8601 start_date/end_date validation; nested date_stats sorted by mention_count desc.
- POST /projects: accepts ISO-2 country codes for location; response includes next_run_at and last_status.
- DELETE /prompts/:promptId now matches by prompt_id (not array index); /competitors returns visibility_percent.
- Float precision fixes in pricing; symmetric project fields and consistent result defaults across endpoints.
Scan Health dashboard & queue reliability
New admin Scan Health dashboard plus stronger Cloud Tasks orchestration to catch and recover from queue/worker hiccups.
- Cloud Tasks enqueue: singleton flow with retries and idempotency keys via named tasks.
- New Scan Health table in the admin panel with daily pagination.
- Fix: scan startedAt is populated correctly on failure or when parallel checks complete first.
Platform Upgrade & UI Improvements
We upgraded the entire platform to the latest versions of React, Next.js, and other core libraries. This brings improved performance, better reliability, and sets the foundation for upcoming features.
- Upgraded to React 19 and Next.js 16 for faster page loads and improved rendering
- Migrated to Tailwind CSS v4 with a refreshed, more compact UI design
- Fixed competitor analytics data not appearing for new and legacy projects
- Improved admin dashboard with consolidated stats tables and faster queue monitoring
- Numerous UI fixes: auth pages layout, modal scrolling, chat page overflow, pagination
Public REST API
Access your brand monitoring data programmatically. Generate an API key in your Profile and use it to query projects, monitoring results, competitors, and historical data via simple HTTP endpoints.
- 17 RESTful endpoints under /api/v1/ (models, usage, projects, results, transcripts, competitors, history, prompts, links, scans)
- API key authentication with SHA-256 hashing
- Rate limiting: 2 requests per second
- Available for Pro, Enterprise, and Pay-as-you-go plans
- Interactive API documentation page with curl, JavaScript, and Python examples
Competitors page: new analytics & faster insights
We refreshed the competitors experience with richer charts, a smarter table, and quicker auto-refresh after scans.
- Multi-day visibility trends and Share of Voice now update automatically when fresh results arrive.
- New breakdown table with filters for models/prompts plus favorites-first sorting to spotlight key rivals.
- Polling cadence tuned so queued scans surface in seconds without forcing a page refresh.
Enhanced Model Selection
Free plan users now see all available AI models, including Pro-tier options, to better understand upgrade benefits.
- All models (free and Pro) are now visible on project creation page.
- Pro-only models display with a "Pro" badge and are disabled for free users.
- Tooltip on hover explains that the model is available in Pro plan.
- Prevents duplicate models and improves conversion by showcasing premium features.
Project Archiving
Archive inactive projects to keep your workspace organized while preserving all historical data.
- New "Archive" option in project dropdown menu with automatic auto-monitoring disable.
- Archived projects remain fully viewable but cannot run new scans or checks.
- Simplified project filters to "All" and "Archived" tabs for easier navigation.
- Orange alerts on results and settings pages clearly indicate archived status.
How It Works page: localized content & preview skeleton
Improved the public How It Works page with full i18n coverage and a friendlier loading experience in test mode.
- All step cards, highlights, and CTA copy now reuse translation keys across EN, UK, and ES locales.
- Added localized loading notice plus skeleton cards shown while the interactive preview initializes in test environments.
- Refactored shared component `HowItWorks` to read strings via `useI18n()` for consistent messaging.
Projects: Brand Visibility now matches Results
Fixed the mismatch between Brand Visibility shown on the Projects dashboard and inside project results. Both views now use the latest scan data for each prompt × model pair.
- Projects list pulls the same last-scan percentages as the Brand Visibility card.
- Only successful checks from the latest run are counted when computing the percentage.
- Fallback to 0% when a project has no active prompts, models, or recent scan data.
Pricing page update: clearer Pay As You Go details
We refreshed the Pricing page to improve clarity and conversion, especially for Pay As You Go.
- Pay As You Go now shows the minimum top-up amount ($10).
- Replaced the “Starts from $25 for 100 credits” line with explicit per‑credit pricing.
- Added a header badge for better visual hierarchy.
Favorites on Competitors page
You can now mark brands as favorites and quickly focus on what matters.
- Star button next to each brand to add/remove favorites (per project).
- New toggle: Show favorites only. Favorites are sorted to the top of the list.
- Charts focus: if you have 3+ favorites, Visibility and Share of Voice only show your favorites (up to 5).
History: Brand Visibility chart
Added a Brand Visibility line chart to the History page. It uses already loaded results and respects your selected date range and filters (models, tags). No extra requests.
- Daily percentage of successful checks with a brand mention.
- Synced with date range selection and table filters.
- Consistent styling with our charts UI and tooltips.
Auto‑monitoring: "Every 2 weeks" frequency
Added a new automation frequency to run scans every 14 days on both Create Project and Settings pages, with full backend scheduling support.
- UI: new option in frequency selectors on Create Project and Project Settings.
- Types & validation: updated enums and forms to accept the new value.
- Server: scheduling logic computes next run by +14 days.
Link Analytics: “Examples” now shows prompts
On the Link Analytics page, the “Examples” column now lists the prompts that resulted in a given domain appearing. Long prompts are truncated with a tooltip, and a “+N more” indicator appears for larger sets.
- Prompts are aggregated per domain across all results.
- Improved readability with compact chips and truncation.
- The expanded row still shows all collected links unchanged.
New in‑app tooltips and Metrics Help page
We added concise, user‑friendly tooltips across Results, Competitors, and Links to explain what each number means. A new public help page is available for deeper reading.
- Results: Brand Visibility, Top Competitors, Last Scan Analysis now include info tooltips.
- Competitors: Visibility, Top 10 by Model, Share of Voice, Co‑mentions, and table headers.
- Links: metric cards and table headers include descriptive tooltips.
- New docs page: /help/metrics explains all metrics in simple terms.
- Footer link: “How metrics are calculated” for quick access to the docs.
Localization: English, Ukrainian, Spanish UI
We added full UI localization and a language switcher so you can use the app in EN, UK, or ES.
- New Language Toggle with EN/UK/ES options (persists via cookie).
- Fallback-to-English and client-side overrides supported.
- Changelog page strings added to all languages.
Automatic monitoring in Project Settings
You can now enable automatic monitoring for each project directly in your project settings.
- New toggle in Project Settings to turn Auto monitoring on or off.
- When turned on, Next Run is scheduled immediately (no backfill required).
- When turned off, Next Run is hidden.
- Pause or resume anytime — changes apply instantly.
New Links section in project
Added a dedicated Links section in projects for convenient browsing and management of saved links.
- Separate page with a compact table and improved UI.
- Quick navigation and domain preview support.
Prompt tags: filters on History & Chat, Show Tags toggle
Extended prompt tag capabilities across monitoring pages for consistent filtering and display.
- History: added Tags filter dropdown and a "Show tags" toggle to display tags under each prompt.
- Chat: added Tags filter dropdown to refine conversations by prompt tags.
- Results: "Show tags" toggle supported in prompt column for visual consistency.
- Filtering integrates with existing Model filters; History pagination and export respect active filters.
Results: search, status-based sorting, and header redesign
Improved data exploration and visual consistency on the Results page.
- Quick search across prompts and models with live filtering.
- Filter chips with per-chip remove and “Clear all”.
- Sortable headers: Prompt, Model, First, Last.
- Status-based sorting for First/Last: success with mention > success without mention > pending/queued/processing > failure > no data.
- Redesigned Summary header as a Card to match the page design. Removed sticky behavior.
PDF export on Competitors and Results
You can now export the Competitors and Results pages to PDF. Charts are captured as high‑resolution images and split across pages when needed.
- Competitors: use Export → “Export as PDF”.
- Results: use Export → “Export as PDF”.
- Includes tables and all visible charts.
Added full language and region support
We’ve added comprehensive support for all languages and regions across the app. You can now create projects, run scans, and analyze results using localized settings that match your audience.
- Choose from all major languages and regional variants.
- Filters and results reflect your selected locale.
- Improved accuracy for geo-specific brand insights.
Prompt tags and bulk add on Create Project
We streamlined prompt management with chip-style tags and a bulk add modal for faster input.
- Compact tag chips under each prompt with add/remove and Enter-to-add hint.
- Tags are stored as a comma-separated string for backend compatibility.
- New “Bulk Add Prompts” modal: paste multiple lines, each line becomes a prompt; empty lines ignored.
- Bulk add replaces the single empty row when present, otherwise appends to the list.
“Show advanced analytics” on Competitors
Added a toggle to reveal advanced analytics with charts for deeper competitive insights.
- Share of voice over time (line chart).
- Sentiment distribution and trends (bar/line charts).
- Mentions volume by language and region (stacked bar).
- Top entities/topics and their dynamics (bar chart).