Back to Home

Changelog

Last updated: August 17, 2026

Track the evolution of the DeepSeek API Usage Analytics Dashboard. Every version is documented below, covering new features, improvements, bug fixes, and dependency changes since the initial v0.1.0 release.

v0.11.0

2026-09-09

Improved
  • DeepSeek V4 Flash pricing updated to the September 10, 2026 repricing — off-peak is now ¥1.00 input / ¥4.00 output / ¥0.02 cached input per million tokens, with peak at double that (¥2.00 / ¥8.00 / ¥0.04). The shared `MODEL_PRICING` config, pricing calculator, all 8 model pricing pages, glossary pages, and their JSON-LD were updated in one place; the cache-hit discount note now reads 1/50 (98%) instead of 1/30.
  • New blog article — "DeepSeek's Pricing History: From V3 to the Sep 2026 V4 Flash Cut" (`/blog/deepseek-api-price-history-2025-2026`) with bilingual EN/ZH content and a timeline pricing table. It traces DeepSeek pricing from 2024's disk caching and V3, through R1 and the 2025 off-peak discounts and V3.2-Exp cut, to the 2026 V4 Flash/Pro layering and peak/off-peak system, closing on the September 10, 2026 Flash repricing. Wired into the blog index, sitemap, prev/next chain, and SEO metadata.

v0.10.2

2026-08-18

Improved
  • Model pricing pages upgraded to a full `AggregateOffer` — each of the 8 per-model pricing pages now emits `lowPrice`/`highPrice`/`offerCount` plus three `UnitPriceSpecification` tiers (input / output / cached input tokens, peak-hour list price for DeepSeek) and `availableAtOrFrom` pointing at the vendor's official pricing page, so search engines no longer read the listed prices as offers sold by this site.
Fixed
  • Homepage BreadcrumbList JSON-LD removed — the landing page is a single-page dashboard, not a multi-level hierarchy, so the breadcrumb schema misled search engines about the site structure.
  • Organization JSON-LD corrected to the real publisher — the schema previously used a DeepSeek-branded name/URL; it now identifies MindRose Team (name/url/@id = mindrose.xyz, contactPoint hello@mindrose.xyz) and is linked from the `SoftwareApplication` `publisher` field, so Google's Knowledge Panel no longer associates this site with DeepSeek itself.

v0.10.1

2026-08-18

Improved
  • Homepage "Free Tools" section redesigned — only the pricing calculator is a real interactive tool (the cost tracker and cache analyzer are pure SEO landing pages whose CTAs point back to the homepage dashboard), so the homepage now shows a single calculator card instead of three. A hub of all 8 per-model pricing pages (`MODEL_KEYS`/`MODEL_PRICING_PATHS`) was added below it (anti-orphan), and the section title updated to "Free Tools". The two SEO pages stay reachable via the footer Tools row, blog posts, and cross-links.
  • AffiliateWall gains a `centered` prop — the homepage "Recommended Tools" cards now center their text (name, description, commission) to match the section's centered heading, while all other pages keep the default left-aligned cards.

v0.10.0

2026-08-18

Added
  • Programmatic SEO pages launched — 8 per-model pricing pages (`/deepseek-v4-flash-pricing`, `/deepseek-v4-pro-pricing`, `/gpt-5.6-sol-pricing`, `/gpt-5.6-terra-pricing`, `/gpt-5.6-luna-pricing`, `/claude-opus-5-pricing`, `/claude-sonnet-5-pricing`, `/claude-haiku-4.5-pricing`) and 3 glossary pages (`/what-is-deepseek-cache-hit-rate`, `/what-is-deepseek-context-caching`, `/what-is-deepseek-off-peak-pricing`), all EN/ZH mirrored with unique per-page copy, FAQ, and JSON-LD (`Product` + `FAQPage` for pricing pages, `Article` + `FAQPage` for glossary pages). The Pricing Calculator now hosts a hub section linking all 8 pricing pages (anti-orphan), each pricing page cross-links its siblings, and glossary pages link to the relevant tools, blog articles, and related terms.
  • Shared model pricing config — `MODEL_PRICING` extracted from the Pricing Calculator into a single source of truth (`src/lib/modelPricing.ts`) consumed by both the calculator and all 8 pricing pages, eliminating price drift between pages. Prices render live into each pricing page's table from this config.
Improved
  • Pricing Calculator now links out to every model's dedicated pricing page from a new 'Full pricing pages per model' section, turning it into the hub of the programmatic pricing cluster.
  • Sitemap expanded from 54 to 60 entries — 8 model pricing routes and 3 glossary routes added with en/zh bilingual entries and `alternates.languages`.

v0.9.3

2026-08-18

Added
  • Tool series internal linking — the 3 tool landing pages (`/deepseek-api-cost-tracker`, `/deepseek-cache-hit-rate-analyzer`, `/deepseek-api-pricing-calculator`) are now linked from a new 'Explore the Tool Series' section on the homepage, a dedicated Tools row in the footer (visible on every page), in-content links across 5 blog posts, and cross-links between the tool pages themselves — no more orphaned pages.
Improved
  • Keyword ownership clarified — the homepage title now targets the broad brand term 'DeepSeek API Usage Analytics — Free CSV Dashboard' (aligned with its H1), while the exact-match keyword 'deepseek api cost tracker' is owned exclusively by the cost tracker tool page, removing self-competition between the two.
  • Meta descriptions optimized — 10 English page descriptions trimmed from 165–211 characters down to ≤160 for cleaner SERP display (home, guideline, privacy, terms, changelog, cost tracker, cache analyzer, author, and 2 blog posts).
  • Blog index structured data — `/blog` and `/zh/blog` now emit Blog + ItemList JSON-LD referencing all 6 articles, giving search engines an explicit content hierarchy for the blog.
  • Site icons slimmed — favicon compressed from 242 KB to ~10 KB (multi-size 16/32/48) with a new 180×180 apple-touch-icon; the 242 KB `ds-usage-logo.ico` is no longer referenced from page markup, saving ~240 KB per page load.
  • Custom bilingual 404 — replaced the default Next.js error page with a branded page (English by default, with an in-page Chinese toggle) that links back to the homepage, blog, and all three tools. Requires `experimental.globalNotFound` (multiple root layouts) and ships as `app/global-not-found.tsx`.

v0.9.2

2026-08-18

Added
  • `x-default` hreflang declared on every page — the language-alternates map now includes an `x-default` entry pointing to the English version (in both the HTML `<head>` and the XML sitemap) so search engines have an explicit fallback page for the language selector.
Improved
  • SEO `<noscript>` fallbacks now render a single language — the 8 server-rendered content blocks (landing page, 3 tool landing pages, privacy, terms, changelog, author) no longer duplicate both EN and ZH full text on every page, eliminating cross-language duplicate content; every page now contains exactly one H1.
  • Page titles and meta descriptions optimized — homepage and all 6 blog posts trimmed to ≤62-character titles; 5 overlong meta descriptions reduced from 184–253 characters to 148–166 characters for cleaner SERP display. Keyword ownership also differentiated between the Pricing Calculator (interactive estimation tool) and the OpenAI-vs-DeepSeek comparison article.
  • ECharts now lazy-loaded — the ~1.4 MB chart library (plus the ShareCard) is fetched on demand after CSV upload instead of being bundled into the landing page, cutting initial page JS from ~2.3 MB to ~1 MB.
  • User Guide screenshot accessibility — all 12 screenshots now ship descriptive bilingual alt text and captions, and a parser bug that silently dropped the guide's document title (H1) was fixed.
  • Sitemap accuracy — blog post `lastModified` values now reflect real publish dates (from `blogArticles.ts`) instead of the build date, and `og-image.png` was added to the vercel.json caching rule.

v0.9.1

2026-08-17

Added
  • Site-wide "Recommended Tools We ARE USING" wall — a shared `RecommendedToolsSection` component now renders the AffiliateWall commercial block at the bottom of every page (dashboard, tools landing pages, blog index, every blog post, user guide, privacy/terms/changelog/author pages), aligned to each page's content container width. The Pricing Calculator's single Vultr CTA was replaced by the full recommendation wall.
Improved
  • TitleBar redesigned into a unified navigation menu — all entry points (User Guide, Privacy Policy, Terms of Use, Blog, Author Team, Changelog, GitHub) are now grouped in a single Apple-style "⋯" popover menu on both desktop and mobile, replacing the scattered icon buttons. The Agnes sister-project button was removed from the title bar (the link remains in the footer).

v0.9.0

2026-08-17

Added
  • New blog article published — "The 2026 Value Champions: GPT-5.6 Luna & DeepSeek V4 Flash — and the Best Model for Every Budget" (`/blog/gpt-5.6-luna-vs-deepseek-v4-flash-value-champions`) with bilingual EN/ZH content, an 8-model dual-currency pricing table (¥ / $, peak / off-peak), the "price is no longer a proxy for quality" thesis, an off-peak scheduling playbook, and a tier-by-tier best-value framework. Fully wired into the blog index, sitemap, prev/next chain, and SEO metadata.
  • Blog comparison articles refreshed to August 2026 pricing — the OpenAI vs Claude vs DeepSeek, OpenCode Go, and context-caching articles now use the new DeepSeek peak / off-peak rates, the GPT-5.6 Sol / Terra / Luna lineup, and the Claude Opus 5 / Sonnet 5 / Haiku 4.5 lineup, with dual-currency (¥ / $) pricing cells. The OpenCode Go article's "DeepSeek price hike" narrative was strengthened with the landed peak-price increase.
Improved
  • Pricing Calculator updated to DeepSeek's new peak / off-peak billing — DeepSeek V4 Flash and V4 Pro now use the official per-million-token prices in CNY with peak hours (Beijing time 09:00–12:00 and 14:00–18:00) billed at full price and off-peak hours at 50% off. A new "Peak-Hour Share" slider lets you model how much of your traffic falls in peak windows, and the comparison table shows both peak and off-peak prices for each DeepSeek model. Cache-hit pricing was also corrected to the new 1/30-of-input rate. Competitor lineup refreshed to GPT-5.6 Sol / Terra / Luna and Claude Opus 5 / Sonnet 5 / Haiku 4.5 with their latest August 2026 prices (including the July 30 GPT-5.6 price cuts and the 50% Batch API discount).
Fixed
  • DropZone stuck-spinner on parse failure — a CSV that passed concatenation but failed CSV parsing left the upload UI spinning forever, because the parse error is raised asynchronously inside the data context and never reached the drop zone's catch clause. The busy state is now correctly released after concatenation, so a failed parse returns the user to the upload state (with the error banner visible) instead of requiring a page reload. Regression test added.

v0.8.0

2026-08-17

Added
  • Support for DeepSeek's new CSV export format — the export schema changed from a `utc_date` date column to `start_time_iso` / `end_time_iso` ISO timestamps (and `user_id` / `wallet_type` became always-present). The parser now derives the billing day from the `start_time_iso` date part (Beijing-local day) and pairs the new date-range filenames (`amount-2026-08-01_2026-08-17.csv`). Legacy exports using `utc_date` and `amount-{year}-{month}.csv` names remain fully supported for backward compatibility.
Fixed
  • DeepSeek export format change breaking parsing — newer platform exports no longer include the `utc_date` column, which previously caused the dashboard to reject them with a "missing column" error. Parsing now accepts the new schema (and still reads legacy files).

v0.7.0

2026-08-13

Added
  • 4th blog article published — "DeepSeek V4 Flash for $10/Month — the World's Cheapest Frontier Model Is on OpenCode Go" (`/blog/opencode-go-cheapest-deepseek-v4-flash`) with bilingual EN/ZH content, a pricing comparison table (V4 Flash vs V4 Pro vs GPT-5.6 Luna), full SEO metadata, sitemap entry, and prev/next cross-links wired into the blog chain.
  • Opencode Go affiliate added to `affiliates.ts` registry — referral link (`opencode.ai/go?ref=NS60V8HH6Q`) surfaced through the AffiliateWall "Recommended Tools We ARE USING" module on the homepage, every blog post, AuthorPage, and CostTrackerPage.
Improved
  • Blog index now sorts articles newest-first — the post list is ordered by each article's `publishedTime` from `blogArticles.ts` instead of a hardcoded sequence, so new posts automatically surface at the top.
  • Homepage sister-project section replaced with the "Recommended Tools We ARE USING" AffiliateWall commercial module — the block now sits above the FAQ section with centered title and subtitle.
  • Blog post bottom CTA banner ("Try our free dashboard") replaced with the same AffiliateWall Recommended Tools module, turning every article's footer into a revenue-bearing commercial section.

v0.6.6

2026-07-19

Improved
  • Homepage SEO metadata optimized — title changed to 'DeepSeek API Cost Tracker & Usage Analytics — Free CSV Dashboard' with keyword-first strategy; description rewritten to include primary keywords in first sentence.
  • Landing page hero section enhanced — added explicit keyword-rich subtitle below H1 on homepage and all three SEO landing pages (Cost Tracker, Cache Analyzer, Pricing Calculator) for improved search engine visibility.
  • Tool landing page metadata refined — Cost Tracker title updated to emphasize 'No Signup'; Cache Analyzer title streamlined; Pricing Calculator description de-emphasized model list in favor of action-oriented copy.

v0.6.5

2026-07-12

Added
  • Schema unit tests added — new `schema.test.ts` test file with validation coverage for JSON-LD schema generation functions, ensuring structured data correctness across versions.
Improved
  • Blog metadata management centralized — extracted all 3 blog article metadata (title, description, tags, publish date, SEO fields) into a shared `blogArticles.ts` module, replacing inline metadata in individual article page files for consistent single-source-of-truth management.
  • Reusable JsonLd component extracted — encapsulated JSON-LD structured data generation into a generic `<JsonLd />` component, simplifying the 5 blog article page files and `layout.tsx` that previously duplicated schema generation logic.
  • AuthorContent team member display refactored — rebuilt team member rendering with array mapping (`TEAM_MEMBERS` config array + `.map()`) replacing individual hardcoded member blocks, reducing code duplication and improving maintainability.
  • Schema module simplified — `schema.ts` streamlined by extracting reusable JSON-LD rendering logic into `JsonLd.tsx` component, reducing the module from 129+ lines of inline schema generation.

v0.6.4

2026-07-10

Added
  • Author & Team page comprehensively revamped — replaced placeholder team section with 4 real member profiles (Gavin Chen, Lindsay Lin, Angela Lee, Simon L.) each with role, description, and initial avatar in a responsive CSS Grid layout; page title updated to "Author & Team" with refined bilingual copy throughout the author page, member bios, and verification sections to reflect the expanded team scope.
  • Tencent Cloud affiliate program added to `affiliates.ts` registry — new referral link integrated into the AffiliateWall component across AuthorPage and CostTrackerPage, alongside expanded developer infrastructure vendor coverage (Vultr, Railway, Silicon Flow, Warp) with updated i18n labels "Recommended Tools We ARE USING" / "我们正在使用的好工具".
  • og-image.png static asset added to `/public` — 1200×630 social preview image for OpenGraph/Twitter cards, enhancing link previews when the site URL is shared on social media platforms.
Improved
  • Blog article cost comparison data refreshed — updated GPT-5.5 ($15.00→$5.00), GPT-5.4 ($5.00→$2.50), GPT-5.4 mini ($0.15→$0.75), Claude Fable 5 ($0.80→$10.00), Opus 4.8 ($15.00→$5.00), Sonnet 5 ($3.00→$2.00), and Haiku 4.5 ($0.25→$1.00) pricing across all comparison tables in the OpenAI vs DeepSeek blog article. Article narrative updated to include Anthropic Claude alongside OpenAI GPT and DeepSeek throughout the migration and cost-benefit analysis sections.
  • Affiliate link system streamlined — `affiliates.ts` registry trimmed and reorganized with updated vendor categories (`serverProviders`, `domainRegistrars`, `aiGateways`); CostTrackerPage recommended tools section switched from Portkey/Helicone to developer infrastructure tools (Vultr, Railway, Tencent Cloud, Silicon Flow, Warp) with new descriptive labels reflecting real usage context.
  • Blog article tag metadata enriched — added "Token Cost", "Claude", "GPT", and "Anthropic" tags to blog index article cards for improved SEO keyword coverage and search relevance across both English and Chinese locales.
Fixed
  • Blog comparison article URL normalization — sitemap, route metadata (`routeMetadata.ts`), and article page paths corrected from `/blog/openai-vs-deepseek-cost-comparison` to `/blog/openai-claude-vs-deepseek-cost-comparison` to accurately reflect the three-provider comparison scope (OpenAI GPT + Anthropic Claude + DeepSeek).

v0.6.3

2026-07-09

Added
  • CNY/USD currency toggle in Pricing Calculator — users can switch between RMB (¥) and US Dollar ($) for all pricing displays, with real-time conversion at approximate exchange rate.
  • AffiliateWall component — centralized affiliate link showcase section for SEO landing pages, providing structured vendor recommendations (Vultr, DigitalOcean, Namecheap, OpenRouter) with referral links and `rel=sponsored nofollow` compliance.
  • `<noscript>` SEO fallback content for all 3 tool landing pages — `CacheAnalyzerContent`, `CostTrackerContent`, and `PricingCalculatorContent` components provide bilingual crawler-readable content for better search engine indexing, matching the pattern used by PrivacyContent and TermsContent.
  • Expanded LLM cost comparison in the OpenAI vs DeepSeek blog article — added latest GPT models (GPT-4.1, GPT-4.5 Preview, GPT-5) and Claude models (Opus 4.5, Sonnet 4.5, Haiku 4.5) with updated pricing data across all model families for more comprehensive cost-benefit analysis.
Improved
  • Affiliate link system refactored — centralized `affiliates.ts` configuration expanded with additional vendor programs, improved type safety with categorized link groups (`serverProviders`, `domainRegistrars`, `aiGateways`), and better UTM tracking integration across landing pages and blog CTAs.
  • Landing page SEO enhanced — tool landing pages (`/deepseek-api-cost-tracker`, `/deepseek-cache-hit-rate-analyzer`, `/deepseek-api-pricing-calculator`) now include enhanced JSON-LD structured data and bilingual `<noscript>` crawler fallback content for better search engine visibility and EEAT trust signals.
  • Blog article cost comparison accuracy — updated with latest model pricing across GPT, Claude, and DeepSeek families for more accurate cost-benefit analysis in the OpenAI vs DeepSeek comparison article.
Fixed
  • Homepage URL canonicalization — fixed inconsistent canonical path generation for the root URL that could produce duplicate canonical URLs (both `/` and empty path variants). Simplified sitemap generation logic for cleaner, more maintainable output.

v0.6.2

2026-07-06

Added
  • URL-level i18n routing — introduced `/zh` prefix for Chinese locale routes (e.g., `/zh/guideline`, `/zh/blog`). English routes remain prefix-free. Full bilingual URL mirroring for all pages, SEO landing pages, and blog articles. New `localeRouting.ts` module centralizes locale detection, path construction, and redirect logic. New `site.ts` module centralizes site-level constants (SITE_URL, SITE_NAME, OG/logo image URLs). New `pageMetadata.ts` and `routeMetadata.ts` provide shared `generateMetadata()` helpers for all routes. `AppRootLayout.tsx` extracted from old `layout.tsx` to support locale-aware root layout. Each route now has independent SEO metadata generation via `(site)/` and `zh/` route groups.
  • Locale-aware navigation — updated all internal links (TitleBar, FooterBar, LandingPage, GuidelinePage, blog components, sub-pages) to use `buildLocalePath()` for correct locale prefix handling. LanguageSwitcher now uses locale-aware path construction for seamless locale switching without losing current page context.
Improved
  • Blog article multi-language support — replaced hardcoded English text in BlogArticlePage and BlogPostLayout with i18n translation keys. Blog metadata fetching now uses locale-aware logic, reusing existing blog translation strings for consistent bilingual content.
  • Landing page external link button styling — unified the visual style of outbound link buttons on the landing page, fixing inconsistent button appearances across different sections.
  • Blog index layout refinement — adjusted blog list paragraph max-width to `max-w-3xl` for improved reading experience on wide viewports.
  • Test coverage — added `localeRouting.test.ts` (69 new tests) for the locale routing module. Updated `analytics.test.ts` and `sitemap.test.ts` to cover new route structures.

v0.6.1

2026-07-05

Added
  • Author page (`/author`) — dedicated bilingual profile page for Gavin Chen with bio, skill tags, social links (GitHub, LinkedIn, Email, MindRose, WeChat), JSON-LD Person schema, independent SEO metadata (canonical, OG, Twitter), Apple-minimalist layout, and `<noscript>` crawler fallback via `AuthorContent.tsx`. Navigation link added to FooterBar.
  • Centralized author config module (`src/lib/authors.ts`) — single source of truth for author social/contact URLs (GitHub, LinkedIn, Email, MindRose, WeChat) and team member page URLs. Consumed by AuthorPage, BlogPostLayout (author metadata), and schema.ts (Person/Article JSON-LD). Blog article pages now include full author Person metadata (`sameAs` links, `worksFor` MindRose org) in JSON-LD.
Improved
  • Site-wide SEO metadata pass — added `author` meta tag, `keywords`, and `twitter:site`/`twitter:creator` to all page-level `generateMetadata()` calls (blog articles, tool landing pages, guideline, privacy, terms, changelog). Unified author references across all pages using the new `authors.ts` config.
  • Code cleanup — removed deprecated old landing page image asset. Removed unused module-level imports across page components.

v0.6.0

2026-07-04

Added
  • 3 SEO landing pages — DeepSeek API Cost Tracker, Cache Hit Rate Analyzer, and Pricing Calculator (interactive slider + competitor pricing table). Each page has independent canonical/OG/Twitter SEO metadata, bilingual content, and commerce-oriented modules (affiliate recommendations, MindRose service CTA).
  • Blog infrastructure — blog index with 3-card grid + 3 bilingual articles: Context Caching Guide, Top 5 Cost Optimization Tools comparison, and OpenAI vs DeepSeek cost-benefit analysis. Structured content system (`ArticleRenderer` + `ArticleSection[]`) enables rapid article creation. All articles support EN/ZH switching.
  • Affiliate marketing integration — centralized `affiliates.ts` config module (Vultr, DigitalOcean, Namecheap, OpenRouter referral URLs). Affiliate links added to tool pages and blog CTA areas with `rel=sponsored nofollow` compliance.
  • UTM-based conversion tracking funnel — `trackLandingCTA()`, `trackOutboundClick()`, `trackPageView()` helpers in analytics module. Full GA4 configuration guide at `docs/promotion/GA4_Tracking_Guide.md` with step-by-step setup instructions.
  • Blog navigation in TitleBar (pen icon) and FooterBar (text link). Logo in TitleBar now links to home page.
Improved
  • Responsive TitleBar — mobile layout with `...` popover menu (Agnes, GitHub, Guideline, Blog, Changelog, Theme toggle). Clean logo + title + language switcher on mobile; full icon row on desktop.
  • Enhanced icons — guideline now uses a compass icon (navigation/guide metaphor); blog uses a pen icon (writing/blog metaphor). Meanings are more distinct at small sizes.
  • SEO coverage — sitemap expanded from 5 to 12 entries (3 tool pages + blog index + 3 articles). llms.txt and llms-full.txt updated with all new pages. Page title optimized to include 'Cost Tracker' keyword. Blog index and all articles now have full generateMetadata().

v0.5.4

2026-06-24

Improved
  • Optimized token number display format for Chinese language, more suitable for Chinese users.

v0.5.3

2026-06-21

Added
  • SEO enhancements — added keywords, twitter:site/creator, and author meta tags to all pages. Added Organization JSON-LD structured data for Google Knowledge Panel brand recognition. Expanded BreadcrumbList JSON-LD with all sub-page entries. Differentiated sitemap lastModified dates per route. Landing page OG image support for richer social media link previews.
  • GA4 conversion events — added upload_csv, share_card, tab_switch, and language_switch event tracking via a shared trackEvent() analytics helper. Only active when NEXT_PUBLIC_GA_ID is configured.
  • Community infrastructure — added CONTRIBUTING.md, CODE_OF_CONDUCT.md, GitHub issue templates (bug report + feature request), and a pull request template to lower the contribution barrier.
Improved
  • Responsive hero numbers — hero text now scales down on mobile screens (text-5xl → sm:text-6xl → md:text-[5rem]), preventing horizontal overflow on small viewports.
  • Chart accessibility — all ECharts instances now have descriptive aria-labels for screen readers.
Fixed
  • Critical: DropZone error handling — added missing catch clause for ZIP/CSV processing errors. Previously, a corrupt file or extraction failure would leave the UI stuck in an infinite "Processing" spinner. Now shows a user-visible error message with the ability to retry. Same fix applied to Dashboard re-upload flow.
  • DataContext parser crash protection — wrapped parseDeepSeekData() in a try/catch inside the setTimeout callback. Previously, a synchronous parser crash would throw into the void with no user feedback. Now routes to the ErrorDisplay component.
  • Empty states — OverviewView, KeyView, TrendsView, and ProjectView now show descriptive empty-state messages when data is zero/empty after model filtering, instead of blank charts or tables.

v0.5.2

2026-06-17

Added
  • Social media share card — each dashboard tab (Overview / Projects / Keys / Cache / Trends) can now generate a 1200×630 infographic for sharing. Features customizable "From XXX" signature, optional quote message, per-tab ECharts mini charts, QR code pointing to deepseek-usage.xyz, app logo watermark, one-click copy to clipboard (paste directly into WeChat/Feishu/DingTalk), and PNG download.
Dependencies
  • Added `html2canvas` (DOM-to-canvas screenshot capture) and `qrcode` (client-side QR code generation) packages.

v0.5.1

Added
  • Changelog page (/changelog) — a dedicated page showcasing the complete version history, in Apple-minimalist bilingual design matching privacy/terms pages. Includes JSON-LD WebPage schema, independent SEO metadata (canonical, OpenGraph, Twitter), and version entries organized by category (Added/Improved/Fixed/Dependencies) with color-coded dots.
  • TitleBar clock icon linking to the changelog page, alongside the existing guideline book icon.
  • LandingPage About section "View Changelog →" link below the social link pills.
Improved
  • TitleBar tooltips (User Guide, Changelog) now properly support i18n, displaying localized text in both English and Chinese.
  • Sitemap (sitemap.xml) expanded with /changelog entry (priority 0.5, monthly change frequency).
  • Translation system extended with changelog.* group (en + zh).

v0.5.0

Added
  • ZIP file upload support — users can now drag DeepSeek platform ZIP exports directly into the dashboard. ZIP archives containing CSV files are automatically extracted and processed in-browser. Huge thanks to @taylord0ng for this contribution.
  • Custom project grouping for API keys — a new "By Project" tab lets you organize API keys into user-defined project groups via drag-and-drop, with per-project cost aggregation, token usage tracking, and cache hit rate analysis. Inspired by @taylord0ng.
  • Project configuration modal — drag-and-drop interface for assigning keys to custom projects, with local persistence via localStorage, reset-to-default, empty-state prompts, keyboard-friendly operation, and dropdown menus for unassigned keys.
  • Reusable CopyButton component — encapsulated clipboard copy logic with hover tooltip and i18n-aware success messages. All inline copy functionality (KeyView, ProjectView) now uses this shared component.
  • One-click cost copy — copy total cost from the Overview hero number with a single click.
  • 50MB per-file upload size limit — protects against accidental or malicious oversized file uploads that could freeze the browser. Includes user-facing warning prompts and a dedicated FAQ entry.
Improved
  • Upload validation — file size check with clear error messaging, duplicate project name validation with inline hints, and unsaved-changes confirmation dialog when closing the project config modal.
  • Keyboard accessibility — full keyboard navigation support in the project configuration modal: Enter to confirm, Escape to close, arrow keys to navigate, plus on-screen keyboard shortcut hints.
  • UI polish — fixed drag highlight state glitch in project key lists, resolved React key warnings in config lists, adjusted modal layout for better visual balance.
  • i18n coverage — all new UI elements (project view, copy button, upload limits, config modal) fully translated in both English and Chinese.
  • Fixed CopyButton timer memory leak — timers now properly cleaned up on unmount, preventing stale state updates.
  • User guide and landing page — updated FAQ (new entries for file size limits and project grouping), usage guide screenshots and documentation, and landing page copy to reflect new features.
Dependencies
  • Added `jszip` dependency for client-side ZIP extraction.

v0.4.0

Added
  • Privacy Policy page (/privacy) — bilingual (en/zh) legal content covering 7 sections, independent SEO metadata (canonical, OpenGraph, Twitter), JSON-LD WebPage schema, Apple-minimalist legal-text layout with GitHub source links for transparency verification.
  • Terms of Use page (/terms) — bilingual (en/zh) legal content covering 8 sections, independent SEO metadata and JSON-LD WebPage schema.
  • MIT LICENSE file — added to the project root for open-source licensing clarity.
  • FooterBar now links to Privacy Policy and Terms of Use pages alongside Guideline, GitHub, and version.
Improved
  • sitemap.xml expanded to include /privacy and /terms entries (priority 0.5, monthly change frequency).
  • Translation system extended with privacy.* (21 keys) and terms.* (22 keys) groups in both English and Chinese.
  • SEO metadata: NEXT_PUBLIC_SITE_URL now injected into privacy and terms page metadata generation.

v0.3.3

Added
  • Cache hit rate percentage display on the hits-vs-misses stacked bar chart in CacheView: hit rate shown in tooltip and as labels on top of each key's bar.
  • vercel.json with production security headers (CSP, HSTS, X-Frame-Options, etc.) and optimized static asset caching rules.
Fixed
  • Cache hit rate chart accumulation bug in TrendsView: daily ratios were incorrectly summed instead of computing hit/(hit+miss) from raw token totals, causing values to potentially exceed 100%.

v0.3.2

Added
  • User Guide page (/guideline) — comprehensive usage documentation covering dashboard overview, CSV export, data upload, chart interpretation, and troubleshooting; bilingual (en/zh) with annotated screenshots.
  • Guideline navigation links in TitleBar (book icon), FooterBar (text link), and LandingPage (below How It Works section).
  • 3 new FAQ entries (Q5–Q7): "Why does my cost show as $0?", "What does Incomplete Upload mean?", and "Where can I find more troubleshooting help?".
  • Dashboard overview screenshot and logo in README files (en + zh).
Improved
  • SEO: added /guideline to sitemap.xml.
  • JSON-LD FAQPage schema expanded with Q5–Q7 entries (bilingual).
  • Added /docs/ to .gitignore.

v0.3.1

Added
  • JSON-LD BreadcrumbList schema (bilingual en/zh) for better search engine understanding of site structure.
Improved
  • SEO: extended Chinese meta.description with privacy and team info (~100 characters, up from ~37).
  • SEO: added alternateLocale: ["zh_CN"] to OpenGraph metadata, complementing existing hreflang alternates.
  • SEO: added id attributes to landing page sections (#how-it-works, #faq, #about) for direct anchor linking.
  • JSON-LD: added version field to SoftwareApplication schema.
  • Performance: added content-visibility: auto to below-the-fold landing page sections (How It Works, FAQ, About) to reduce initial render cost.

v0.3.0

Added
  • Rebuilt About section: expanded from a single paragraph into 4 themed subsections — Why We Built This, Under the Hood: Privacy & Tech, About MindRose, and Let's Work Together — each separated by dashed <hr> dividers.
  • Email copy button in the Contact area: one-click clipboard copy with textarea fallback, anti-scraping dynamic address concatenation, and SVG checkmark copy feedback with 2s toast.
  • Social link pills: GitHub repository, Gavin's LinkedIn, and MindRose website — each with themed SVG icons, rounded borders, and hover background.
Improved
  • Landing page sections now separated by thin horizontal <hr> dividers for clearer visual hierarchy.
  • Added 14 new landing.* translation keys (en + zh) for all About sub-sections.
  • Rebranded site title to "DeepSeek API Usage Analytics Dashboard by Gavin & Mindrose Team" across metadata, JSON-LD schema, footer, and translations.
  • Fixed landing page heading hierarchy: section titles upgraded from <h3> to <h2>, sub-section titles from <h4> to <h3>.

v0.2.3

Added
  • Full-site SEO: generateMetadata() with canonical URLs, OpenGraph, Twitter cards, and hreflang alternates.
  • JSON-LD structured data: bilingual SoftwareApplication + FAQPage schemas (via src/lib/schema.ts).
  • robots.txt and sitemap.xml generation at build time (via src/app/robots.ts and src/app/sitemap.ts).
  • <noscript> crawler fallback content (LandingContent.tsx) for search engines that don't execute JavaScript.
  • Theme-aware landing page background images — CSV and chart themed sketches that swap with light/dark mode.
  • Semantic hidden H1 on dashboard view for screen readers and SEO.
Improved
  • layout.tsx upgraded to generateMetadata() for dynamic build-time SEO injection.
  • FooterBar.tsx extracted as standalone component with animate and sectionRef props.
  • TitleBar.tsx extracted as standalone component with logo, GitHub icon, and unified layout.
  • Added warning translation group (date mismatch, no cost match, partial cache data, schema drift).

v0.2.2

Added
  • Logo icon and favicon.ico — added brand identity assets to TitleBar and browser tab.
  • Replaced default English font with local Hubot Sans WOFF2 files (3 weights: 400/500/700).
Improved
  • Redesigned LanguageSwitcher as Apple-style pill segmented control with role="radio" accessibility.
  • Redesigned ThemeSwitcher as SVG sun/moon icon button with hover background.
  • Added GitHub icon link to TitleBar for quick repository access.
  • FooterBar now displays app version number alongside copyright and GitHub link.
  • Landing page content container widened from max-w-3xl to max-w-6xl for better visual balance.
  • Added scroll-reveal fade-in + slide-up animations on landing page sections via Intersection Observer.
  • Added accordion expand/collapse animation for the QA section.
  • Added global accessibility styles: smooth scrolling, prefers-reduced-motion support, color-scheme for native UI, focus-visible outlines.

v0.2.1

Added
  • Landing page — built a complete pre-upload landing page with Hero, upload area, How It Works steps, FAQ, and About sections.

v0.2.0

Added
  • Full light/dark theme switching — refactored global CSS with custom properties for unified dual-theme color management.
  • Model filter — added Apple-style segmented capsule filter in Dashboard, optimized UI and data presentation.
Improved
  • Refined overall UI interactions and visual styling.
  • Refactored all view components to render from filtered data; added Hero big-number summary sections at the top of each view.

v0.1.0

Added
  • Built the DeepSeek API usage analytics dashboard — implemented CSV parsing, multi-month file concatenation, and error validation logic; all data processing runs purely in the browser.
  • Developed drag-and-drop upload component, data context layer, and multi-dimensional visualization dashboard.
  • Added full i18n support with language switching, and refactored numeric formatting utilities to adapt unit display rules for different locales.


GitHub Repository

Recommended Tools We ARE USING

We are using these tools ourselves for Development / Deployment. Check out for more details.