Changelog

What we've shipped.

A public log of every user-visible change. New features, polish, fixes, deprecations. If it changed something you might notice, it's here.

Marketing rev

Public marketing pages: pricing, comparison, features, audience-specific landing.

Added

  • •Dedicated /pricing page with monthly/annual toggle and 3-question plan-picker quiz.
  • •/compare hub linking to per-competitor /vs/ pages.
  • •/vs/apollo, /vs/instantly, /vs/ahrefs, /vs/semrush — honest head-to-head comparisons.
  • •/features overview cataloging all 25 tools in 5 workflow groups.
  • •/for/freelancers and /for/agencies audience-specific landing pages.
  • •/changelog and /about for transparency + brand trust.

Improved

  • •Shared MarketingHeader + MarketingFooter so brand changes are a one-file edit.
  • •Footer now links to real /privacy, /terms, /case-study pages instead of static text.
Audit fixes

Broad UX/UI audit + automated merge gates against future regressions.

Improved

  • •Custom ESLint rule blocks paid-API imports without checkApiCostGuard.
  • •Silent-failure CI check baseline at 399 empty catches; new ones rejected.
  • •Tooltip sweep across rank-tracking, link-health, tier3-directories, alliances.
  • •Loading states with context labels on inbox, audits, campaigns, backlink-tracking.
  • •Cost guards added to /api/email/generate and /api/follow-up/generate.

Fixed

  • •Settings tabs no longer swallow API errors into generic 'Failed' toasts.
  • •Deliverability poll detects 3-consecutive failures and surfaces a single toast.
  • •Pipeline kanban priority dots now expose role='img' + aria-label for screen readers.
  • •Pre-existing react/no-unescaped-entities lint error in cookie-consent.
Niche scanner polish

Niche scanner + search pages got a focused UX pass.

Added

  • •Compact niche-picker dropdown replacing 300+ inline chips.
  • •Keyword-variant retry: 'limousine' tries 'limousine service' before giving up.
  • •Synthesised fit score so pre-enrichment rows still sort correctly.

Improved

  • •Bulk-pitch endpoint refunds ai_pitches quota for failed pitches in a batch.
  • •Niche-picker viewport-aware (max-height: min(560px, 70vh)) with sticky header/footer.
  • •Hidden category chips during active search to reduce noise.

Fixed

  • •Inverted Fit Score formula was ranking well-served businesses highest.
  • •Active/All toggle was a one-way text link instead of a bidirectional pill.
Backlinks + campaigns

Backlink Finder consolidation; campaign daily limits raised.

Added

  • •Backlinks Hub: one search → competitor links + tier-3 directories + guest posts + alliances.
  • •Per-campaign Analytics tab with pacing, deliverability, reply intent.
  • •Stripe failed-payment banner with one-click portal link.

Improved

  • •Pro daily campaign-email limit raised 100 → 2000/mo; Max 300 → 10,000/mo.
  • •Inbox replies cluster by lead instead of by mailbox.
Foundation

Cost guards, plan gates, and the first audit-driven cleanup.

Added

  • •Atomic Lua-script daily $-cap for DataForSEO, Anthropic, Hunter.io, Apify.
  • •Plan-aware feature flags throughout the dashboard.
  • •Saved-leads pipeline with kanban + list views.

Fixed

  • •Memory leak in fallback rate-limit counter under Redis outage.
  • •Race condition in concurrent-request quota increment.

Spotted a bug?

Email info@freelanceleads.io and we'll get it on the list.