{
  "feed_version": "1.0",
  "site": "https://flicker.finance",
  "operator": "Flicker",
  "title": "Changelog",
  "description": "Stay up to date with the latest updates, new features, and improvements to Flicker.",
  "html_url": "https://flicker.finance/changelog",
  "last_updated": "2026-07-28",
  "release_count": 25,
  "change_types": [
    "added",
    "improved",
    "fixed",
    "removed"
  ],
  "platforms": [
    "web",
    "mobile",
    "api"
  ],
  "releases": [
    {
      "date": "2026-07-28",
      "label": "July 28, 2026",
      "url": "https://flicker.finance/changelog#july-28-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "removed",
          "description": "FreeDX — the partnership has ended and the exchange integration is gone. The sign-up promo page, its scratch-card game, and the FreeDX API-key guide have been retired, and any FreeDX connections, balances, positions, and trades were removed along with them. Old FreeDX links now redirect to the promotions page and the FAQ."
        }
      ]
    },
    {
      "date": "2026-07-24",
      "label": "July 24, 2026",
      "url": "https://flicker.finance/changelog#july-24-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Broken exchange connection alerts on the portfolio dashboard — when an exchange rejects a connection's API key, a \"Reconnect needed\" badge and an alert banner show exactly which connections stopped syncing and why. Each affected connection gets a one-click \"Retry sync\" plus a guided reconnect flow, and its balances and positions stay frozen at their last synced state instead of failing silently"
        },
        {
          "type": "improved",
          "description": "Asset analysis header simplified — timeframe, trading pair, and spot/derivatives controls moved down to the chart toolbar where they take effect, leaving Set Alert as the header's single clear action"
        },
        {
          "type": "improved",
          "description": "Asset page mobile pass — score cards (Breakout, Confidence, Risk, Fear & Greed) no longer overflow narrow screens, chart toolbar buttons have larger touch targets, and the 24h high/low/volume stats wrap instead of clipping"
        },
        {
          "type": "improved",
          "description": "The chart's price-change readout is now labeled \"Range\" so it isn't mistaken for the 24h change, and it shows neutral instead of red when flat. Missing 24h stats are hidden rather than displayed as $0 or +0.00%"
        },
        {
          "type": "improved",
          "description": "Numbers, percentages, and dates on the analysis chart and zone details now format according to your language"
        },
        {
          "type": "improved",
          "description": "Reading time on blog posts and FAQ articles (\"5 min read\") is now translated in all 6 languages"
        },
        {
          "type": "improved",
          "description": "The Pro timeframe upsell dialog is now fully translated in all 6 languages"
        },
        {
          "type": "improved",
          "description": "Buttons that only appeared on mouse hover (copy code, delete alert) are now always visible on touch screens, with larger tap targets"
        },
        {
          "type": "improved",
          "description": "Footer readability — higher text contrast throughout, and the legal links wrap on narrow screens instead of stretching the page in longer languages"
        },
        {
          "type": "improved",
          "description": "Screen reader support — position card actions (hide, copy ID, share on X), chart refresh, and indicator tooltips now have proper labels and keyboard access"
        },
        {
          "type": "fixed",
          "description": "Navigating between assets no longer briefly shows the previous asset's data under the new URL"
        },
        {
          "type": "fixed",
          "description": "The browser back button now correctly returns to the Overview tab on asset pages"
        },
        {
          "type": "fixed",
          "description": "Connection setup links for unknown exchanges now show a proper \"not found\" page instead of an error screen"
        },
        {
          "type": "fixed",
          "description": "The Fear & Greed leaderboard no longer disappears entirely if a single row fails to load"
        },
        {
          "type": "fixed",
          "description": "Funding rates no longer fail to load when an exchange record is temporarily missing"
        },
        {
          "type": "fixed",
          "description": "The Set Alert button works immediately on page load instead of doing nothing while sign-in state is still resolving"
        }
      ]
    },
    {
      "date": "2026-07-22",
      "label": "July 22, 2026",
      "url": "https://flicker.finance/changelog#july-22-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Forex asset class — major world currencies (EUR, GBP, JPY, KRW) with live USD exchange rates, a dedicated `/assets/fx` listing, an FX option in every asset-class filter, and a Markets menu entry. Currencies join coins and stocks in search, watchlists, and price alerts"
        },
        {
          "type": "added",
          "description": "\"Most watched\" sort on asset listings — ranks assets by how many people viewed them today"
        },
        {
          "type": "fixed",
          "description": "Currencies no longer show a \"Stock\" badge or the US-market-closed staleness label, and currency tickers display their ISO code (EUR) instead of the currency sign (€)"
        },
        {
          "type": "removed",
          "description": "Arabic — the supported languages are now English, Russian, Spanish, French, Turkish, and Indonesian. Old `/ar` links redirect to their English equivalents."
        }
      ]
    },
    {
      "date": "2026-07-12",
      "label": "July 12, 2026",
      "url": "https://flicker.finance/changelog#july-12-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Crypto Tax calculator at `/calculators/crypto-tax` — estimates capital-gains tax on a trade for five jurisdictions (US, UK, Germany, India, Australia), with a jurisdiction rules reference panel, FAQ, and localized SEO metadata"
        },
        {
          "type": "added",
          "description": "DCA (dollar-cost averaging) calculator at `/calculators/dca` — projects a recurring-buy plan against lump-sum investing, defaulting to the live BTC price, with a formulas reference and key-concepts primer"
        },
        {
          "type": "added",
          "description": "Staking calculator at `/calculators/staking` — projects compound staking rewards with configurable APR, compounding frequency, duration, and recurring contributions, including an effective-APY comparison"
        },
        {
          "type": "added",
          "description": "\"Get notified before liquidation\" on the Futures Position calculator — jumps straight to a pre-filled price alert using the calculated liquidation price, and preserves that link through sign-up/sign-in"
        },
        {
          "type": "added",
          "description": "Install showcase on asset landing pages (Fear & Greed, Should I Buy, Breakout) — featured app-install card with a trust badge and a notification preview tailored to the page's current reading"
        },
        {
          "type": "added",
          "description": "Market-hours awareness for stocks on the homepage — Favorites and the mini heatmap now show a \"closed\" label with the last-session change instead of a misleading live-style delta while US equity markets are closed"
        },
        {
          "type": "improved",
          "description": "Primary navigation dropdowns (Markets, Portfolio, Tools) redesigned as two-column menus with section descriptions, plus a standalone language switcher in the header"
        },
        {
          "type": "improved",
          "description": "Homepage widgets (Favorites, watchlist, and others) now show a proper error state with retry instead of misrepresenting a failed fetch as empty"
        },
        {
          "type": "improved",
          "description": "Currency and percentage formatting gained a signed mode, more precise decimals on larger figures, and non-USD support — fixes stray floating-point noise in percentage displays"
        },
        {
          "type": "improved",
          "description": "Accessibility pass across dozens of components — low-contrast muted text brought up to readable contrast, visible focus rings on nav triggers, and RTL-aware chevrons and borders"
        },
        {
          "type": "improved",
          "description": "Promo home banner countdown no longer re-renders the whole banner every second, countdown labels are translated, and the looping ping animation was replaced with a static indicator"
        },
        {
          "type": "fixed",
          "description": "Homepage watchlist no longer shows a generic \"no favorites\" empty state when the favorites request actually failed"
        }
      ]
    },
    {
      "date": "2026-07-03",
      "label": "July 3, 2026",
      "url": "https://flicker.finance/changelog#july-3-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Arabic language support — the entire app (navigation, alerts, calculators, and trading tools) is now available in Arabic with a full right-to-left (RTL) layout"
        },
        {
          "type": "added",
          "description": "Indonesian (Bahasa Indonesia) language support across the whole app"
        },
        {
          "type": "improved",
          "description": "Price, RSI, and volume alerts can now target stocks in addition to crypto — the asset picker in the alert form exposes the coins/stocks toggle instead of being locked to coins"
        },
        {
          "type": "removed",
          "description": "German and Vietnamese — the supported languages are now English, Russian, Spanish, French, Turkish, Arabic, and Indonesian"
        }
      ]
    },
    {
      "date": "2026-05-16",
      "label": "May 16, 2026",
      "url": "https://flicker.finance/changelog#may-16-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Advertise page at `/advertise` — sponsorship inquiries, placement types (sponsored editorial, featured exchange slots, custom promo pages), and how the process works. Fully localized in all 7 languages."
        },
        {
          "type": "added",
          "description": "Partners page at `/partners` — exchange affiliate, data, and product-integration lanes with a clear apply path. Fully localized in all 7 languages."
        },
        {
          "type": "improved",
          "description": "Contact page now cross-links to Advertise and Partners for visitors with business inquiries."
        },
        {
          "type": "improved",
          "description": "Footer Learn column adds Advertise and Partners links."
        }
      ]
    },
    {
      "date": "2026-05-07",
      "label": "May 7, 2026",
      "url": "https://flicker.finance/changelog#may-7-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Crypto Fear & Greed Index hub at `/fear-and-greed-index` — live sentiment scores for every major coin with zone explanations, FAQ, and JSON-LD structured data, fully localized in all 7 languages"
        },
        {
          "type": "added",
          "description": "JSON-LD structured data for the PnL and Futures Position calculators — better SEO surface and rich-result eligibility"
        },
        {
          "type": "added",
          "description": "Mobile app banner on the homepage rebuilt as a server-rendered, dismissible component with a persistent cookie — replaces the old client-side dialog so it ships in the initial HTML and survives reloads"
        },
        {
          "type": "added",
          "description": "Zone category filter component on the analysis chart — collapsible section per zone type for quicker scanning"
        },
        {
          "type": "added",
          "description": "Account page now surfaces an inline Pro upgrade card (or \"Get Pro free\" path for free users) and a labeled Danger Zone for destructive actions"
        },
        {
          "type": "improved",
          "description": "Strict next-intl typing — `AppMessages` now derives from every EN namespace, so missing translation keys become compile-time errors instead of runtime fallbacks"
        },
        {
          "type": "improved",
          "description": "Translation parity audit across DE, ES, FR, RU, TR, VI — backfilled previously-missing keys in `common.json` (Fear & Greed nav entries) and `account.json` (Pro upgrade strings, refresh, danger zone)"
        },
        {
          "type": "fixed",
          "description": "Zone category import now uses the `@/` alias instead of a deep relative path"
        }
      ]
    },
    {
      "date": "2026-05-05",
      "label": "May 5, 2026",
      "url": "https://flicker.finance/changelog#may-5-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Watchlist page at `/assets/watchlist` — your favorite assets in one place, with the same filtering and sorting as the main asset list"
        },
        {
          "type": "added",
          "description": "Stocks section coming soon — stub page reachable from the Markets dropdown so the nav entry resolves to a real route"
        },
        {
          "type": "added",
          "description": "Funding rates tab on asset detail pages — per-exchange perpetual funding rates with auto-refresh"
        },
        {
          "type": "added",
          "description": "Recently viewed strip on the homepage — quick links back to your last 6 visited assets"
        },
        {
          "type": "added",
          "description": "Trending & popular carousel on the homepage"
        },
        {
          "type": "added",
          "description": "Funding rates snapshot on the homepage — top assets with the highest and lowest funding across exchanges"
        },
        {
          "type": "added",
          "description": "Market heatmap mini-component on the homepage — top assets by market cap, color-coded by 24h change"
        },
        {
          "type": "added",
          "description": "Market pulse row on the homepage — compact panel of key market stats with 24h trend deltas"
        },
        {
          "type": "added",
          "description": "Volume trends chart and zone analysis section on the homepage"
        },
        {
          "type": "added",
          "description": "Personal status pills on the homepage for signed-in users — at-a-glance view of active alerts, watchlist, and portfolio balance"
        },
        {
          "type": "added",
          "description": "Mobile app download CTA on the homepage with App Store and Google Play links"
        },
        {
          "type": "added",
          "description": "Pilot waitlist CTA on the homepage — early-access signup for the AI assistant"
        },
        {
          "type": "added",
          "description": "Affiliate deep-link handler — `?affiliate=<partner>` URL parameter automatically opens the matching promotion"
        },
        {
          "type": "added",
          "description": "Cookie consent banner with GDPR-compliant analytics opt-in/opt-out, persistent across sessions and wired into PostHog"
        },
        {
          "type": "added",
          "description": "Bottom tab bar on mobile — Discover, Watchlist, Portfolio, and Alerts for thumb-friendly navigation"
        },
        {
          "type": "added",
          "description": "Markets, Portfolio, and Tools dropdowns in the top navigation"
        },
        {
          "type": "added",
          "description": "Account dropdown in the header — profile, subscription, language switcher, and sign-out in one menu"
        },
        {
          "type": "added",
          "description": "Promotions, Subscription, and FAQ shortcuts in the page footer for faster access to upgrade paths and help"
        },
        {
          "type": "added",
          "description": "New blog post — MACD Explained: How to Spot Momentum Shifts, available in all 7 languages"
        },
        {
          "type": "improved",
          "description": "Header and mobile header rebuilt for cleaner responsive behavior across breakpoints"
        },
        {
          "type": "improved",
          "description": "Auth pages share a unified card component for consistent sign-in, sign-up, and password reset layouts"
        },
        {
          "type": "improved",
          "description": "Welcome / channel-specific landing pages (LinkedIn, Meta, Reddit, TikTok, X, generic) rebuilt on a shared modular block layout"
        },
        {
          "type": "improved",
          "description": "Asset dominant color now comes from the backend instead of being computed in the browser, so detail pages render with the correct accent immediately"
        },
        {
          "type": "improved",
          "description": "Asset search dialog now suggests Discord for missing-coin requests"
        },
        {
          "type": "improved",
          "description": "Promotions page redesigned — partner logo is the visual anchor, the bonus value reads as the hero number, and the best offer stands out as a featured card with a crown ribbon"
        },
        {
          "type": "improved",
          "description": "Subscription placeholder now offers two clear paths to Pro instead of a dead-end notice — partner promotions for free Pro, plus the mobile app for paid plans"
        },
        {
          "type": "improved",
          "description": "Funding rates tab on asset detail pages rebuilt as a proper table — columns stay aligned across viewport widths and no longer collide on mobile"
        },
        {
          "type": "fixed",
          "description": "Asset overlay dialogs (Analysis Not Available, stablecoin info, payment required, sign-in prompts) now center on desktop instead of being pushed off to the side"
        },
        {
          "type": "fixed",
          "description": "Confidence pill on zone shortcuts no longer overflows the card on tight viewports or with longer localized priority labels"
        },
        {
          "type": "removed",
          "description": "Manual position creation and editing — positions are now created only by connecting an exchange, eliminating drift between manually-entered values and live data"
        },
        {
          "type": "removed",
          "description": "Standalone sidebar — navigation now lives entirely in the top header and mobile bottom tabs"
        }
      ]
    },
    {
      "date": "2026-04-15",
      "label": "April 15, 2026",
      "url": "https://flicker.finance/changelog#april-15-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Three new notification types — Volume Spike (trigger when volume exceeds a multiple of the average), Price % Change over a chosen timeframe, and RSI Alert with target level and direction"
        },
        {
          "type": "added",
          "description": "Timeframe selector on Smart Zones, Price % Change, and RSI Alert notifications — choose 3m, 5m, 15m, 30m, 1h, 4h, 1d, 1w, or 1M"
        },
        {
          "type": "added",
          "description": "Notification limit paywall dialog — appears automatically when the free-tier alert ceiling is reached, with the current limit pulled from the notifications config"
        },
        {
          "type": "added",
          "description": "Pro timeframe paywall dialog — appears when a Pro-only timeframe is selected on a free account (free users are limited to the 1h timeframe)"
        },
        {
          "type": "added",
          "description": "New blog posts across multiple locales — Solana, Bitcoin, Hyperliquid, XRP, Ethereum, and \"Top Crypto Signal Providers Ranked\""
        },
        {
          "type": "added",
          "description": "Connect Hyperliquid FAQ article replacing the older read-only API key guide"
        },
        {
          "type": "added",
          "description": "OG images for connection setup pages"
        },
        {
          "type": "improved",
          "description": "Notifications page redesigned — new hero header with active-over-total stat, and redesigned notification cards with sentiment accent, kind badge, hero condition text, timeframe chip, and an inline status-pill toggle replacing the old switch"
        },
        {
          "type": "improved",
          "description": "Notification forms redesigned — cleaner surfaces, outline-style template buttons, and inline validation hints"
        },
        {
          "type": "improved",
          "description": "Edit-mode back button now returns to the notifications list instead of the kind picker"
        },
        {
          "type": "improved",
          "description": "Empty Positions page now shows a live preview of what a connected account looks like, with supported-exchange logos and an upgrade CTA"
        },
        {
          "type": "improved",
          "description": "Supported-exchange list consolidated so the Positions and Connections landings stay in sync"
        },
        {
          "type": "fixed",
          "description": "Notification toast no longer shows alongside paywall modals when the backend returns a payment-required response"
        },
        {
          "type": "fixed",
          "description": "Notification responses with `timeframe: null` no longer fail schema validation"
        },
        {
          "type": "removed",
          "description": "Standalone notification detail page — notifications are now managed inline from the list"
        },
        {
          "type": "removed",
          "description": "Bybit deposit bonus promo dialog"
        }
      ]
    },
    {
      "date": "2026-03-14",
      "label": "March 14, 2026",
      "url": "https://flicker.finance/changelog#march-14-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Freedx partnership promo — scratch card mini-game at `/promo/freedx/signup-bonus-20` where users scratch a 3×3 grid to reveal a $20 USDT signup bonus"
        },
        {
          "type": "added",
          "description": "New blog post: Freedx $20 USDT Free Signup Bonus — available in all 7 languages"
        },
        {
          "type": "added",
          "description": "Freedx promo analytics events — tracks shown, game started, game won, claimed, and dismissed"
        },
        {
          "type": "added",
          "description": "Freedx promo dialog translations for all 7 languages (en, de, es, fr, ru, tr, vi)"
        }
      ]
    },
    {
      "date": "2026-03-11",
      "label": "March 11, 2026",
      "url": "https://flicker.finance/changelog#march-11-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "BTC Signal card on the homepage — shows current Bitcoin signal direction, score, and risk level with a link to the full analysis"
        },
        {
          "type": "added",
          "description": "\"Should I Buy\" page for assets — dedicated signal analysis page with detailed buy/sell indicators"
        },
        {
          "type": "added",
          "description": "Sort options in the asset search dialog — sort by Favorites, Price, 24h Change, or Volume with ascending/descending toggle"
        },
        {
          "type": "added",
          "description": "Favorite toggle (star) on each asset in the search dialog — quickly add or remove favorites without leaving the dialog"
        },
        {
          "type": "added",
          "description": "Breakout Analysis and Fear & Greed Index pages — redesigned with animated score rings, detailed metric breakdowns, and improved mobile layout"
        },
        {
          "type": "improved",
          "description": "Homepage layout restructured — Fear & Greed and Market Intelligence moved below the BTC Signal card alongside Volume Trends for a cleaner grid"
        },
        {
          "type": "improved",
          "description": "Asset search dialog redesigned — rounder input and dialog corners, popular section with warm orange background, stable height during loading, and result count when searching"
        },
        {
          "type": "improved",
          "description": "Exchange connection icons extracted into a reusable component for consistent styling across the portfolio dashboard"
        },
        {
          "type": "improved",
          "description": "Homepage data fetching now runs in parallel for faster page loads"
        },
        {
          "type": "fixed",
          "description": "Asset list no longer flashes empty during background refreshes — only the initial load clears the list"
        }
      ]
    },
    {
      "date": "2026-03-10",
      "label": "March 10, 2026",
      "url": "https://flicker.finance/changelog#march-10-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Referral system — enter a referral code during sign-up, auto-populated from shared links or cookies"
        },
        {
          "type": "added",
          "description": "Dedicated shareable Bybit promo page at `/promo/bybit/deposit-bonus-10`"
        },
        {
          "type": "added",
          "description": "Zone type filters on the analysis chart — show/hide Buy, Sell, Accumulation, and Distribution zones individually"
        },
        {
          "type": "added",
          "description": "Asset tab deep linking — switching tabs now updates the URL, making Analysis, Indicators, Markets, News, and Positions tabs shareable and bookmarkable"
        },
        {
          "type": "added",
          "description": "New blog post: Bybit $10 USDT Free Crypto Promo — available in all 7 languages"
        },
        {
          "type": "improved",
          "description": "Asset search dialog extracted into a shared reusable component — used in sidebar, calculators, and other dialogs"
        },
        {
          "type": "improved",
          "description": "Redesigned blog page — streamlined toolbar with dynamic category filters derived from post data, simplified layout"
        },
        {
          "type": "improved",
          "description": "Redesigned featured blog post cards with full-bleed cover images and overlaid text"
        },
        {
          "type": "improved",
          "description": "Redesigned blog post header with rounded cover images, dark overlay for contrast, and unified metadata bar"
        },
        {
          "type": "improved",
          "description": "Asset detail header now shows a subtle token-colored border glow matching the asset's brand color"
        },
        {
          "type": "improved",
          "description": "Tab navigation shows colored active indicator and hides icons on mobile for better space usage, with ARIA accessibility attributes"
        },
        {
          "type": "improved",
          "description": "AI Overview loading state redesigned with horizontal progress stepper and token-colored progress bar"
        },
        {
          "type": "improved",
          "description": "Key metrics cards redesigned with colored left-edge accent bars indicating trend direction"
        },
        {
          "type": "improved",
          "description": "Sidebar footer simplified — direct link to Account page with inline sign-out button and Pro/Free plan label"
        },
        {
          "type": "improved",
          "description": "Bybit promo balloon game — fixed mobile touch issues (text selection, context menu, scroll passthrough) and added body scroll lock"
        },
        {
          "type": "improved",
          "description": "External links in blog and learn content now open in a new tab"
        },
        {
          "type": "improved",
          "description": "Connection setup guide links now come from the API and open in a new tab"
        },
        {
          "type": "improved",
          "description": "Firebase push notifications only register the service worker when permission is already granted, avoiding unnecessary `push service error` exceptions"
        },
        {
          "type": "removed",
          "description": "Learn articles section (`/learn`) — content consolidated into the blog"
        },
        {
          "type": "removed",
          "description": "BloFin promo banner dialog"
        },
        {
          "type": "fixed",
          "description": "Unsubscribe page no longer crashes with \"getTranslations is not supported in Client Components\" error"
        },
        {
          "type": "fixed",
          "description": "PnL calculator \"Download Card\" now works when an asset with an external icon is selected — canvas cross-origin issue resolved"
        },
        {
          "type": "fixed",
          "description": "PnL calculator share link now includes the correct locale prefix for non-English users"
        },
        {
          "type": "fixed",
          "description": "Zone cards on the chart are now proper buttons for keyboard accessibility"
        },
        {
          "type": "fixed",
          "description": "Sitemap FAQ URLs now point to the correct `/learn/faq/` routes"
        },
        {
          "type": "fixed",
          "description": "Sign-out now completes even if the session deletion API call fails"
        },
        {
          "type": "fixed",
          "description": "Old bookmarked asset filter URLs with `snake_case` parameters continue to work"
        },
        {
          "type": "fixed",
          "description": "Asset pages for delisted/unknown coins now return a proper 404 instead of crashing"
        },
        {
          "type": "fixed",
          "description": "Stablecoin asset pages no longer make unnecessary analysis API calls server-side and client-side"
        },
        {
          "type": "fixed",
          "description": "Recharts SSR warning (`width(-1) height(-1)`) resolved by setting `minHeight` on `ResponsiveContainer`"
        }
      ]
    },
    {
      "date": "2026-02-28",
      "label": "February 28, 2026",
      "url": "https://flicker.finance/changelog#february-28-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Pro upgrade overlay rendered directly on the candlestick chart canvas for non-Pro users with CTA and promotions link"
        },
        {
          "type": "added",
          "description": "Animated AI Overview loading state with spinning border, progress steps, and shimmer skeleton"
        },
        {
          "type": "added",
          "description": "AppsFlyer campaign tracking on blog ProductCard — each blog post now routes app downloads through tracked OneLink URLs for per-post conversion attribution"
        },
        {
          "type": "added",
          "description": "New blog posts: \"Can You Make $100 a Day Trading Crypto?\" and \"RSI Explained\" — translated to all 7 languages"
        },
        {
          "type": "added",
          "description": "`ChartProOverlay` i18n translations for all 7 languages"
        },
        {
          "type": "improved",
          "description": "Chart color palette updated to softer, muted tones for better readability"
        },
        {
          "type": "improved",
          "description": "Volume bars now display quote-denominated volume for more meaningful USD values"
        },
        {
          "type": "improved",
          "description": "Asset price and change indicators stack vertically on small screens for better mobile layout"
        },
        {
          "type": "improved",
          "description": "Sticky header hides 1h and 7d change indicators on mobile to reduce clutter"
        },
        {
          "type": "improved",
          "description": "Settings dropdown button uses full parent height for consistent alignment"
        },
        {
          "type": "removed",
          "description": "Keyboard shortcuts (1-4 tab switching, F favorite, A alert) removed to avoid conflicts with input fields"
        }
      ]
    },
    {
      "date": "2026-02-26",
      "label": "February 26, 2026",
      "url": "https://flicker.finance/changelog#february-26-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Signals and Breakout Signals pages with dedicated routes (`/assets/signals`, `/assets/signals/breakout`) and asset filtering by signal type"
        },
        {
          "type": "added",
          "description": "Localized SEO metadata — OG titles, descriptions, and locale tags now render in the visitor's language when sharing links"
        },
        {
          "type": "added",
          "description": "Type-safe OG locale mapping with `Record<Locale, string>` — adding a new locale now forces updating the mapping at compile time"
        },
        {
          "type": "improved",
          "description": "Converted 9 static metadata pages to dynamic `generateMetadata()` for locale-aware titles and descriptions"
        },
        {
          "type": "improved",
          "description": "Translation quality audit — fixed Title Case in ES/FR/VI, du/Sie formality mismatch in DE, and terminology consistency (FR heatmap, VI phí funding, RU compound words)"
        },
        {
          "type": "fixed",
          "description": "Double \"| Flicker\" suffix in page titles caused by child page translations duplicating the root layout template"
        }
      ]
    },
    {
      "date": "2026-02-25",
      "label": "February 25, 2026",
      "url": "https://flicker.finance/changelog#february-25-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Full language support for German, French, Turkish, and Vietnamese — all pages, navigation, alerts, calculators, and trading tools are now available in 7 languages"
        },
        {
          "type": "added",
          "description": "Full Russian and Spanish language support across the entire app"
        },
        {
          "type": "added",
          "description": "Language switcher in settings to switch between English, Russian, Spanish, German, French, Turkish, and Vietnamese"
        },
        {
          "type": "added",
          "description": "Locale-aware number, currency, and date formatting — prices, percentages, and dates now display in your language's format"
        },
        {
          "type": "added",
          "description": "Translated SEO metadata — page titles and descriptions now appear in your language in search results"
        },
        {
          "type": "added",
          "description": "Translated P&L card downloads — shareable cards now render text in your selected language"
        },
        {
          "type": "improved",
          "description": "Faster page loads with parallel translation file loading"
        }
      ]
    },
    {
      "date": "2026-02-15",
      "label": "February 15, 2026",
      "url": "https://flicker.finance/changelog#february-15-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "BloFin partnership announcement blog post in English, Spanish, and Russian with up to $300 futures trading bonuses"
        },
        {
          "type": "added",
          "description": "BloFin email campaign template for partnership promotion"
        },
        {
          "type": "improved",
          "description": "Featured blog post cards now use fixed heights for consistent badge positioning across all title lengths"
        },
        {
          "type": "improved",
          "description": "Updated all email templates with correct app design system colors and styling"
        }
      ]
    },
    {
      "date": "2026-02-09",
      "label": "February 9, 2026",
      "url": "https://flicker.finance/changelog#february-9-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "TradingView-style chart toolbar with inline timeframe and market type selectors"
        },
        {
          "type": "added",
          "description": "Searchable trading pair selector dropdown on candlestick chart"
        },
        {
          "type": "added",
          "description": "Redesigned asset positions card with large PnL summary, market value stats, and PnL-colored accents"
        },
        {
          "type": "added",
          "description": "Engaging sign-up prompt for unauthenticated users on asset detail page with animated gradients and feature cards"
        },
        {
          "type": "added",
          "description": "Token-colored theming across asset detail page (header, tabs, sticky header, identity icon)"
        },
        {
          "type": "added",
          "description": "P&L Calculator tool in sidebar and footer navigation"
        },
        {
          "type": "added",
          "description": "Spanish (Español) language support for blog"
        },
        {
          "type": "added",
          "description": "New blog posts: MCP Server Launch, Public API Launch, How to Calculate Crypto Profit"
        },
        {
          "type": "added",
          "description": "MCP Server URL and cURL example shown when creating API keys"
        },
        {
          "type": "improved",
          "description": "Chart \"Trade\" button now more prominent with primary color styling"
        },
        {
          "type": "improved",
          "description": "Server-side dominant color extraction for faster asset page loads"
        },
        {
          "type": "improved",
          "description": "Blog images now use proper `sizes` attribute for better performance"
        },
        {
          "type": "improved",
          "description": "Blog date formatting and translations use centralized locale config"
        }
      ]
    },
    {
      "date": "2026-02-05",
      "label": "February 5, 2026",
      "url": "https://flicker.finance/changelog#february-5-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "improved",
          "description": "Version check workflow now correctly handles both PRs and push events"
        }
      ]
    },
    {
      "date": "2026-02-04",
      "label": "February 4, 2026",
      "url": "https://flicker.finance/changelog#february-4-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "New blog post: [How to Analyze Pump.fun Tokens Before You Buy](/blog/how-to-analyze-pump-fun-tokens)"
        },
        {
          "type": "added",
          "description": "New blog post: [How to Research Any DEX Token Before Buying](/blog/how-to-research-any-dex-token)"
        },
        {
          "type": "added",
          "description": "API Keys management section in account settings"
        },
        {
          "type": "improved",
          "description": "Centralized public configuration for better maintainability"
        },
        {
          "type": "improved",
          "description": "CI/CD pipeline now uses reusable version-check workflow"
        },
        {
          "type": "improved",
          "description": "Production deployments use AWS Parameter Store for secure secrets management"
        },
        {
          "type": "fixed",
          "description": "OpenGraph image generation failing for blog posts with external cover image URLs"
        }
      ]
    },
    {
      "date": "2026-02-02",
      "label": "February 2, 2026",
      "url": "https://flicker.finance/changelog#february-2-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "New blog post: [Why Bitcoin Dropped from $126K to $77K](/blog/why-bitcoin-dropped-from-126k-to-77k)"
        }
      ]
    },
    {
      "date": "2026-02-01",
      "label": "February 1, 2026",
      "url": "https://flicker.finance/changelog#february-1-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "New blog post: [What Is High-Frequency Trading (HFT) in Crypto?](/blog/what-is-high-frequency-trading)"
        },
        {
          "type": "added",
          "description": "New blog post: [Risks of Investing in Volatile Digital Assets](/blog/risks-of-investing-in-volatile-digital-assets)"
        },
        {
          "type": "added",
          "description": "New blog post: [Best Crypto Portfolio Trackers Compared](/blog/best-crypto-portfolio-trackers-compared)"
        },
        {
          "type": "added",
          "description": "Cover images for all new blog posts"
        },
        {
          "type": "fixed",
          "description": "OpenGraph image generation failing for blog posts with external cover image URLs"
        },
        {
          "type": "improved",
          "description": "Long blog post titles now clamp and balance properly on detail pages"
        }
      ]
    },
    {
      "date": "2026-01-31",
      "label": "January 31, 2026",
      "url": "https://flicker.finance/changelog#january-31-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "improved",
          "description": "Merged positions overview into portfolio value card as compact stats row (margin, usage, long/short counts)"
        },
        {
          "type": "improved",
          "description": "Moved price refresh button to dashboard header alongside sync for clearer action separation"
        },
        {
          "type": "improved",
          "description": "Portfolio summary now shows both portfolio value and balances cards side by side"
        },
        {
          "type": "added",
          "description": "App version displayed in footer"
        }
      ]
    },
    {
      "date": "2026-01-30",
      "label": "January 30, 2026",
      "url": "https://flicker.finance/changelog#january-30-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Redesigned account page with sidebar navigation (General, Preferences, Security, API Keys, Account)"
        },
        {
          "type": "added",
          "description": "Security sub-tabs for overview, devices, and sessions"
        },
        {
          "type": "added",
          "description": "API Keys section placeholder (coming soon)"
        },
        {
          "type": "added",
          "description": "Toast notifications when toggling notification preferences"
        },
        {
          "type": "added",
          "description": "Affiliate link on exchange connection page for new account creation"
        },
        {
          "type": "added",
          "description": "Exchange balances tab on connections dashboard with summary cards, asset breakdown, and filtering by crypto/stablecoins"
        },
        {
          "type": "added",
          "description": "Balance cards showing asset holdings, available/frozen amounts, USD valuations, and portfolio share"
        },
        {
          "type": "added",
          "description": "Icons for Positions and Balances tabs in the dashboard header"
        },
        {
          "type": "added",
          "description": "Platform and app version headers on all API requests"
        },
        {
          "type": "improved",
          "description": "Promo banner dialog now opens with a delay instead of immediately"
        },
        {
          "type": "improved",
          "description": "Smoother dialog open/close animations"
        },
        {
          "type": "improved",
          "description": "Exchange icons now display on white background for better visibility"
        },
        {
          "type": "improved",
          "description": "Simplified asset analysis options change detection"
        }
      ]
    },
    {
      "date": "2026-01-16",
      "label": "January 16, 2026",
      "url": "https://flicker.finance/changelog#january-16-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Multilingual blog support (English & Russian)"
        },
        {
          "type": "added",
          "description": "Changelog page"
        },
        {
          "type": "improved",
          "description": "OpenGraph images for blog posts"
        }
      ]
    },
    {
      "date": "2026-01-14",
      "label": "January 14, 2026",
      "url": "https://flicker.finance/changelog#january-14-2026",
      "platforms": [
        "web"
      ],
      "changes": [
        {
          "type": "added",
          "description": "Asset positions component on asset detail page"
        },
        {
          "type": "added",
          "description": "Circular loading spinner around asset icon during refresh"
        },
        {
          "type": "added",
          "description": "Loading indicator bar in sticky header during refresh"
        },
        {
          "type": "added",
          "description": "Enhanced bot detection using isbot library for mobile app banner"
        },
        {
          "type": "improved",
          "description": "Separated initial loading state from background refresh state in analysis"
        },
        {
          "type": "improved",
          "description": "Asset positions UI now matches Market Intelligence component styling"
        },
        {
          "type": "improved",
          "description": "Mobile app banner no longer shows to bots/crawlers (SEO improvement)"
        },
        {
          "type": "fixed",
          "description": "CLS issues with mobile app banner by improving bot detection"
        }
      ]
    }
  ],
  "notes": [
    "Releases are ordered newest-first, matching /changelog.",
    "Release notes are authored in English only — unlike the rest of the site, they are not localized.",
    "Change descriptions are authored markdown fragments; inline `code` spans may appear."
  ]
}