Skip to content
Release notes

Changelog

What shipped, what changed, and what's coming next. Subscribe to the newsletter for weekly recaps.

10 most recent releases

  1. v3.21.16LATEST

    Bank transfer checkout tidy-up

    • Bank transfer checkout pieces renamed to match how payments work today; checkout and payment pages behave the same
    • Removed an unused transfer QR component
  2. v3.21.15

    Security update for the storefront platform and runtime

    • Core web platform patched to the latest security release
    • Server runtime moved to a supported long-term version with current system security fixes
    • Unused package tooling removed from the production image
    • Test tooling upgraded to a patched major version
    • Code-quality tooling no longer depends on an unpatched pattern-matching library
    • Production releases now wait for the security scans to pass
  3. v3.21.14

    VND bank transfers go straight to our account

    • VND payments are now a direct bank transfer via VietQR to our Techcombank account
    • Order confirmation happens once the transfer is received; the payment page updates on its own
    • Payment method descriptions, FAQ, pricing, status, terms and privacy pages updated to match
  4. v3.21.5

    Hotfix: product detail pages no longer crash when an SEO field is missing

    • Resolved a 500 error on every product page caused by a missing identifier in the SEO metadata builder
  5. v3.21.4

    Recover legacy crawled URLs (locale prefixes + nested category paths)

    • Older crawled URLs with locale prefixes the site no longer ships now permanently redirect to the matching default-language route instead of returning a generic 404
    • The list of accepted languages is now driven by the admin-configured language list, not a hardcoded code constant
    • Older crawled URLs with extra category/subcategory path segments under source-code, game-assets, and market-app now permanently redirect to the flat slug route they should have
    • Net effect: stale inbound links and old search-engine results land on the correct live page instead of an error page
  6. v3.21.3

    Search indexing fixes — cleaner sitemap + accurate product canonicals

    • Sitemap now lists only canonical, indexable URLs (drops noindex, redirected, and disallowed paths)
    • Blog post entries point to the live blog detail route instead of a redirect target
    • Product detail pages emit canonical URLs and structured data that match their real route, removing stale 404 references
    • Product identifier in structured data capped to a search-engine-safe length
    • Mobile app detail page now ships full SEO metadata (title, canonical, social tags, structured data)
    • Cross-category slug redirects upgraded to permanent so search engines forward link signals to the correct route
    • Silenced expected inline-style noise from the policy violation log so real signals remain visible
  7. v3.21.2

    Mobile app deep-linking + ad network verification metadata

    • Published Apple universal link association file so iOS app opens matching web links directly
    • Published ad network app verification file for the mobile app inventory
  8. v3.21.1

    Quieter ops logs — inline-style CSP reports no longer spam the collector

    • CSP report endpoint now filters out known inline-style violations so actionable signals (script, frame, connect violations) are easy to spot
    • Ops log volume drops ~95% on the frontend pods during normal browsing
  9. v3.21.0

    Richer product structured data for Google — clears Search Console warnings

    • Product pages now emit schema.org brand, SKU, merchant return policy, and shipping details so Google Merchant listings validate cleanly
    • Product image is always emitted as an array with a valid absolute URL — fixes "image field missing" Search Console errors
    • Breadcrumb structured data now uses absolute URLs on every rung — fixes "URL in id field invalid" warning
    • Aggregate rating still only emits when real review data exists — Google never shows a fake rating
  10. v3.20.1

    Real 30-day view history on product detail pages

    • View History chart on product detail pages now draws from the real per-day view counts recorded on the backend, not a synthesised shape
    • Chart falls back to an indicative distribution only when the new endpoint is unreachable, so the page never shows an empty chart
    • Mobile-app, source-code, and game-asset detail pages all share the same history source