Changelog entries now live in the database and are exposed through a public feed that the CiteWatch marketing site consumes at build time. Every release ships as a fully crawlable static page on cite.watch/product-updates with semantic markup and JSON-LD, so both search engines and AI assistants can read and cite them.
Removed several unused modules left over from earlier iterations — including the legacy Corrections panel, the standalone Insights onboarding modal, and the in-repo mock-data file. The result is a smaller bundle and a cleaner codebase.
Added proper staleTime and gcTime settings to the React Query layer so the dashboard, attention cards, and recent citations stop flickering when you switch tabs or revisit the page. Repeat visits within a minute now serve cached data instantly.
Fixed a race condition where the Admin page would briefly redirect away before account membership had a chance to resolve. The page now waits for authentication and account context to settle before deciding whether you are an admin, and shows a loading skeleton in the meantime.
Rolled out a universal layman-friendly vocabulary across every user-facing screen. Visibility Score replaces GEO Score, AI Visibility Rate replaces AIGVR, Earned Clicks replaces AI Referral Clicks, Prompt replaces Query, Property replaces Website/Domain, and Strict rule / Hint replace Hard rule / Soft signal. Code-level identifiers are unchanged, so nothing breaks under the hood — the change is purely how the product talks to you.
The dashboard was redesigned to put actionable insights first. A new What Needs Attention section surfaces smart-tag issues, opportunities, and recent wins. We cut the KPI row down to the four metrics that matter most, removed secondary charts, added a Top Opportunity card with a trend indicator, and trimmed Recent Citations to five rows with simpler columns.
We eliminated dashboard flickering by stabilising our React Query caching layer. Opportunity messaging is now written in plain language with cleanly formatted domains, the attention cards gained an explicit Ignore action with tracking, and the Top Opportunity card includes a clearer explanation. Calls-to-action across the dashboard are now visually consistent.
We temporarily hid the Compare Mode toggle in Insights while we work on a meaningful upgrade to the experience. All of the underlying code is preserved so we can switch it back on without rework.
A major upgrade to the tracking tag with cross-tab session continuity, UTM fallback detection, a conversion attribution API (window.citewatch.trackEvent), and server-side deduplication. The Maintenance tab was renamed to Smart Tag with an upgrade notice for existing installations, and verified properties now get a notification when an upgrade is available. New backend tables build a full prompt-to-conversion attribution chain with unique constraints and performance indexes.
Fixed page title detection for Single Page Applications using a manifest-first strategy via pages-manifest.json. The crawler and site-discover function fetch the manifest once per crawl to resolve correct per-page titles instead of the generic SPA shell title. Page validation is now manifest-aware — for SPAs only paths listed in the manifest can create new pages, which eliminates phantom pages caused by AI hallucinations.
Moved the logo on the authentication page from the top-left corner to directly above the login/signup card for better visual focus. Added an Admin scope identifier to changelog entries so admin-only changes are excluded from public content generation and product versioning.
Added eight new visualisation types (Funnel, Radar, Heatmap, Scatter, Treemap, Bullet, Waterfall, Sankey) plus chart variant support such as Pie/Donut and Card/Gauge/Speedometer. The Add Widget wizard was refactored into a 3-step flow with dedicated variant selection, data-driven live previews using actual metric labels, and an explicit Confirm button before placing the widget. Date pickers now require explicit confirmation and footer buttons were reorganised for clarity.
Reorganised the Insights toolbar into a 3-row layout with the Compare Mode toggle, property selectors, and action buttons. Replaced the date range popover with a centred dialog to prevent viewport clipping, gave the date preset column 30% of the dialog width, made widget editing reopen the wizard at step 1 so users can change visualisation type, and made pie chart tooltips show percentages instead of raw numbers.
Re-integrated the property comparison feature into the unified Insights reporting canvas. Toggle Compare mode to view any two properties side-by-side across all widget types.
Added the ability to mark observing properties as Competitor with a dedicated badge and toggle. Competitors stay grouped under Observing Properties with an additional visual tag for competitive benchmarking.
Integrated Google Tag Manager (GTM-K95S4ZPL) with dataLayer user identification for cross-domain GA4 tracking between the marketing site and the SaaS application.
Renamed Query/Queries to Prompt/Prompts across the entire application — database, UI labels, metrics, exports, and the citation crawler — to better reflect how people actually interact with AI assistants.
Added AI Visibility Rate tracking, an is_clickable flag to distinguish linked from unlinked brand mentions, AI response snippet storage for extractability analysis, and a relationship_type column on properties for future competitor tracking. Crawler limits were raised to 90 seconds and 12 AI calls per run.
Added Citation Share of Voice with competitor domain tracking, Brand Sentiment Analysis, Mention-to-Citation Gap visualisation, an AI Visibility Rate metric card, and a competitor_citations table. The crawler now extracts every URL from AI responses and performs sentiment detection. All new metrics are wired into the dashboard, the Insights Reporting wizard, and the Performance comparison tab.
Merged Reporting and Performance into a single Insights view. Added an interactive Table visualisation with sorting, search, and pagination for all metrics. Standardised every date in the product to YYYY-MM-DD (ISO 8601). Fixed a CSS @import ordering bug that was blocking production builds.
Removed unverified property alerts from notifications — observing properties are a core feature, not action items, so they no longer create noise in the bell.
The core CiteWatch platform launched with dashboard, properties, citations, insights, usage stats, account management, admin costing, and onboarding all in place.