What's new on KeyAway

Last updated: August 3, 2026

Release notes for major features, improvements, and fixes shipped to KeyAway.

Platform release history

Catalog activity feed →

April 2026

  1. ·PR #91

    feat(program): add flow-aware activation and admin reporting support

    featapiui

    Expands program activation beyond CD keys to support account and link-based flows end-to-end, with flow-aware copy, tracking, key reporting, and admin tooling.

    Highlights

    • programFlow supports account, link_based_cdkey, and link_based_account
    • Locale-driven flow copy with i18n context and flow-specific messages
    • Admin program create/edit requires programFlow selector

    Program & admin

    • Flow-aware activation entry handling in types, hashing, and identity helpers
    • Updated key table, cards, actions, modals, and tracking per flow
    • Key report APIs and admin aggregation include resolved account/key fields
    • SEO metadata and JSON-LD avoid CD-key-only phrasing for non-key flows
  2. ·PR #88

    feat(seo): integrate indexnow automation and admin submission tools

    featapifixenhance

    Introduces IndexNow automation that submits affected URLs on program changes, plus an admin SEO card for manual bulk submissions. Includes IdealImage GIF and head metadata rendering fixes.

    Highlights

    • Automatic IndexNow submission on admin program create/update/delete
    • Admin dashboard SEO card with all/programs/non_programs/custom modes
    • IndexNow key hosted at site root

    SEO

    • Server helper submits normalized same-host URL lists
    • Slug changes submit both old and new program URLs
    • IdealImage bypasses optimization for GIF sources
    • Head metadata uses grouped mapped tags to avoid whitespace nodes
  3. ·PR #86

    perf(seo): homepage LCP, hero layout, and filter a11y

    perfuifixrefactor

    Homepage and layout performance polish: faster header logo LCP, streamlined hero layout, accessible filter labels, and smoother in-page section jumps.

    Highlights

    • Header logo loads with priority and tighter src width/quality/sizes
    • Single hero laptop image with intro / visual / CTA column flow
    • Programs filter selects properly associated with label elements

    Performance & UX

    • scrollIntoView plus html scroll-padding for section anchor jumps
    • Redundant header logo alt removed next to sr-only site title
    • IdealImage and layout logo delivery tweaks
  4. ·PR #84

    perf: sanity fetch structure, programs server index, and header notifications

    perfapienhancerefactor

    Reduces request work on hot routes by tightening Sanity GROQ, moving notifications off the root layout, and serving /programs filtering from the server with a cached notifications API.

    Highlights

    • /programs filter/sort/pagination driven from server searchParams
    • Cached GET /api/v1/notifications/recent with client bell fetch
    • Leaner popular and related program queries without full cdKeys arrays

    Performance

    • No write-on-read patch on normal program slug fetch
    • Root layout no longer fetches notifications on every request
    • Shared listing projection for popular-by-views and programs-with-stats
    • Webhook also tags featured-program and bundle-counts

    Notifications

    • Merged new program + keys into one announcement row
    • Program thumbnails in dropdown; localStorage TTL + schema bump
  5. ·PR #83

    feat: portable store copy, support email, error/404 ux, and sanity layout

    featuirefactor

    Moves store description to Portable Text, adds configurable support email, improves error/404 UX with CMS-driven shell context, and reorganizes Sanity schema file layout.

    Highlights

    • StoreDetailsProvider exposes CMS store data to header, footer, and error pages
    • Support email and rich store description from Sanity
    • Shared NotFoundView for global and program 404s

    Store & shell

    • error.tsx includes mailto report with resolveSupportEmail()
    • Home and programs consume portable/plain store copy consistently
    • llms.txt notes CMS vs fallback email

    Sanity

    • Schema types grouped under analytics/, contact/, program/, store/, system/
    • Validators consolidated into validators/program.ts and validators/store.ts
    • bundledTrackingEvent previews with randomUUID _keys
  6. ·PR #82

    feat: portable program copy, embedded store layout, and cms-driven site seo

    featapienhancerefactor

    Moves program and about copy to Portable Text, embeds header/footer/social in storeDetails, and drives sitewide SEO from a CMS seo object with template placeholders.

    Highlights

    • CMS-driven titles, descriptions, keywords, canonical base, and default OG image
    • Portable Text for program descriptions, FAQ answers, and about sections
    • Admin migration routes for legacy text shapes

    CMS & SEO

    • storeDetails.seo with per-route meta strings and [totalPrograms] placeholders
    • storeSeoResolve interpolates placeholders across home, programs, privacy, terms
    • Homepage and programs JSON-LD respect CMS base URL and sharing image

    Admin

    • POST migration routes and /admin/migrate-portable-text tooling
    • Programs API maps featuredCopy to featured.description
  7. ·PR #81

    feat(sanity): nested featured data, portable program descriptions, and stronger cd key studio

    featuienhance

    Aligns the public program experience with Sanity by nesting featured fields, rendering descriptions as Portable Text, and tightening CD key authoring in Studio with validation, previews, and custom array input.

    Highlights

    • Featured marketing fields nested under program.featured in GROQ and Studio
    • Program description as Portable Text on site and in admin APIs
    • CdKeysArrayInput with typed status lists and richer Studio previews

    CMS & program pages

    • Shared featured projection for showcaseGif and featuredDescription
    • RichText on program and home featured sections; plain-text fallbacks for cards and JSON-LD
    • Admin program create/update persists textarea as portable text blocks
  8. ·PR #80

    ui(program): contribute section, typography polish, and card badge fix

    uifixenhance

    Program page UI polish: reusable contribute section block, tuned section typography, and a guarded key count badge on home program cards.

    Highlights

    • Extracted reusable ContributeBanner / contribute section block
    • Program about, FAQ, information, and CD key table typography balance
    • Home ProgramCard key count badge render guard
  9. ·PR #78

    feat: program CMS surface, programs layout, SEO, and analytics hygiene

    featuiapi

    Extends program pages with optional about blocks, FAQ accordion, and structured data; reshapes /programs so marketing sections render server-side; tightens analytics and key-report bot handling.

    Highlights

    • Program pages gain about sections, FAQ accordion, and FAQ JSON-LD
    • /programs marketing hero/CTA server-rendered; client owns filterable grid only
    • Bot user-agent handling and dedupe on analytics and key-report routes

    Program & listing

    • latestOfficialVersion-aware titles and metadata
    • Related UI polish: CD key table, contribute banner, Trustpilot widget, comments
    • Shared scrollToSectionWithHeaderOffset (72px) for hero-to-grid jumps
    • Pagination at 16/page with pointer cursor on controls

    Docs & legal

    • README and privacy/terms copy updates; public/llms.txt added
  10. ·PR #70

    feat: bucketed interaction tracking and analytics hardening

    featapifixperf

    Adds lightweight hourly interaction bucket counters separate from core analytics, fixes visitor-tier hint firing bogus social_click traffic, and adds short server-side dedupe on noisy actions.

    Highlights

    • interactionEventBucket documents and POST /api/v1/interactions/track pipeline
    • Admin /admin/interactions dashboard with summary cards and filterable table
    • 2s dedupe window for interactions and copy_cdkey/download_click/social_click analytics

    Analytics hygiene

    • Visitor country/city persisted and reused before geo API calls
    • Interactions decoupled from trackingEvent bundle cron
    • Visitor hint tracks interaction on popover open only (no mount spam)
  11. ·PR #69

    feat: interaction analytics, visitor hint flow, and UI refresh

    featuifixapi

    Adds dedicated interaction analytics separate from social_click, fixes visitor-hint tracking polluting social stats, and ships homepage/program/admin UI refresh.

    Highlights

    • New interaction event type with meta.interaction field distinct from social_click
    • Admin events table separates Social and Interaction columns
    • Visitor hint no longer fires erroneous social_click on mount

    Analytics

    • bySocial aggregates only count social_click rows
    • Bundling copies interaction into bundle payloads
    • Events API supports interaction filter/sort/projection

    UI

    • Hero laptop WebP asset and program/home section polish
    • Facebook group CTA/promo tweaks and notifications cutoff behavior
  12. ·PR #67

    feat(visitor): add contribution-based personalization and visitor attribution

    featapienhance

    Upgrades visitor personalization from session-only messaging to evidence-based hints tied to real contributions, and improves attribution by storing visitor hashes on suggestion and contact submissions.

    Highlights

    • Contribution-aware visitor tiers (star requires sessions + contribution score)
    • Visitor hint popover on homepage and program hero surfaces
    • Visitor hash capture on contact messages and key suggestions

    Visitor & moderation

    • Contribution upserts from key reports and key suggestions
    • Spammer admin handling keeps visitor tier state consistent
    • CSP connect-src allowlist updated for Sanity CDN stability

For day-to-day listings and key drops, see Updates.