Changelog
1.89 - 27th February 2026
- Feature: "Your Best" tab on the global leaderboard — shows the user's full personal history from localStorage (every completed attempt, not just leaderboard submissions), sorted best-to-worst with relative timestamps and optional hardware info; no backend required
- Feature: Each history entry captures the ms result, input method (mouse/keyboard), hardware name (if typed before clicking away), and timestamp
- Feature: All-time average displayed in the "Your Best" panel header; best score highlighted in green; history persists across page refreshes via
rt-history in localStorage (capped at 50 entries)
- Leaderboard: Hardware names now displayed in a dedicated centre column aligned across all rows; applies to both the global leaderboard and Your Best panel; rendered uppercase throughout
- Leaderboard: Deduplicates by name — only each person's best score shown in the top 10
- Leaderboard: Filter chip styling updated — square corners, white when active, green on hover
- Security: Added security measures to the leaderboard API and database
1.88 - 27th February 2026
- Feature: Hardware tracking on the reaction-time leaderboard — after a test, an optional input captures the mouse (click) or keyboard (spacebar) used; the label and placeholder adapt to whichever device triggered the attempt
- Feature: Hardware names display as a secondary line on leaderboard rows for entries that include them
- Feature: Filter chips above the leaderboard let visitors compare scores by mouse or keyboard model; chips populate from existing entries and update without re-fetching
- Feature: Autocomplete suggestions for the hardware input draw from all stored mouse/keyboard values via HTML datalists
- API:
rt-submit now accepts and stores mouse / keyboard fields (requires ALTER TABLE reaction_scores ADD COLUMN mouse text; ADD COLUMN keyboard text; in Supabase)
- API:
rt-results returns { scores, mice, keyboards } shape; scores include mouse and keyboard fields; mice and keyboards are deduplicated sorted lists for datalist autocomplete
1.87 - 27th February 2026
- Fix: Resolved FOUC root cause — removed
@astrojs/vercel adapter from Astro config; hybrid/SSR mode (introduced in v1.83 for the reaction-time API routes) was causing Vercel to treat the deployment as a server-rendered site, preventing aggressive edge CDN caching of static pages and CSS
- Fix: Migrated reaction-time API routes from Astro server pages (
src/pages/api/) to Vercel native functions (/api/) at the project root — same URLs, same logic, no adapter required; site is now pure static again
1.86 - 27th February 2026
- Fix: Resolved FOUC (flash of unstyled content) by moving global CSS from
<style is:global> with @import (processed via HMR JS injection in dev mode) to a frontmatter import — the canonical Astro pattern that guarantees a render-blocking <link rel="stylesheet"> in all modes; also removes the redundant double-import of variables.css
- Fix: Moved Google Analytics inline init script from
<head> to end of <body> to eliminate parser-blocking before the CSS link is discovered
Show entire update history
1.85 - 27th February 2026
- Fix: Logo now served via Astro
<Image> from /_astro/ with a content hash, giving it max-age=31536000, immutable cache — previously the Vercel adapter left /logo.png without cache headers, causing it to re-fetch on every page navigation
- Fix: Removed render-blocking Google Fonts (
Space Mono, Syne) from /reaction-time; replaced with already self-hosted IBM Plex Mono and Space Grotesk to eliminate external font request lag
- Fix: Added
@fontsource/space-grotesk/latin-600 to BaseLayout so reaction-time arena heading renders correctly at font-weight: 600
1.84 - 27th February 2026
- Fix: Reduced FOUC risk on cold loads by keeping the dark-theme background guard inline in
BaseLayout
- Fix: Reaction-time leaderboard rows now use scoped local styles (no
:global workaround) by applying Astro scope attributes to dynamically injected lb-* markup
1.83 - 27th February 2026
- Feature: Added reaction time testing tool at
/reaction-time with global leaderboard backed by Supabase
1.81 - 26th February 2026
- Feature: Stable
og:image URLs — hero images are copied to /public/images/{category}/ at build time via a custom Astro integration; social share previews no longer break when Astro changes the content hash
- Feature: Reading time displayed in article hero (e.g. "5 min read") using
reading-time package
- Fix: Hero date and "Updated" timestamp wrapped in a
<div> so reading time sits on its own line beneath
- Content: Keychron K4 HE SE review — updated title, rating (4 → 3.5), product name, pros/cons, and body copy
1.80 - 23rd February 2026
- Content: Publish Moomintroll: Winter's Warmth release date and demo news post
1.79 - 23rd February 2026
- Content: Publish Valve Steam Hardware FAQ / memory shortage news post
- Content: Publish Steam Deck OLED out of stock news post — second Steam hardware piece, prepping for Steam Machine hub launch
- Feature:
ReadMyReview component fetches OG image at build time for external URLs
- Fix: Reduce spacing between author and date in hero section (
margin-top: space-2)
1.78 - 23rd February 2026
- Refactor: Organize
src/content/posts/ into year subdirectories (2024/, 2025/); 2026 posts remain at root
- Refactor: Replace relative component imports in MDX files with
@components/ alias
- Feature: About page displays live published post count from the posts collection
- Content: Rewrite about page copy — intro, AI content disclosure, and privacy policy sections
1.77 - 21st February 2026
- Fix: Add
credentials: 'omit' to dashboard tracking fetch to resolve CORS error
- Feature: Add Vercel Analytics (
@vercel/analytics) to BaseLayout
1.76 - 20th February 2026
- Content: Publish ASUS ProArt Keyboard KD300 news post
1.75 - 20th February 2026
- Fix: Same-day post ordering now uses datetime in
publishDate (e.g. 2026-02-20T11:00:00); later time sorts first. Backwards compatible — date-only posts default to midnight.
1.74 - 20th February 2026
- Content: Publish Slay the Spire 2 Early Access news post
- Fix: VideoObject schema now falls back to YouTube thumbnail URL when no local
youtubeThumbnail file exists
- Design: Hero image forced to 4:3 aspect ratio with
object-fit: cover
1.73 - 20th February 2026
- Content: Publish Arc Raiders Hurricane map condition news post
- Fix: YouTube play button now renders correctly inside post content (
.post-content a styles were overriding position and background-image on .lyt-playbtn)
1.72 - 13th February 2026
- Content: Added drafts of future content
- Feature: Add
/draft page listing all draft posts with noindex and sitemap exclusion
- Layout: Add
noindex prop to BaseLayout for hidden pages
1.71 - 13th February 2026
- Content: Publish Fractal Design North Momentum Edition news post
- News page: Remove linkposts section (component preserved for future use)
1.70 - 9th February 2026
- Content: Add TV2 video post - keyboard shortcuts viral interview
- Fix: External video embeds now use thumbnail + YouTube-style play button for sites that block iframe embedding (TV2, etc.)
- Grey play button turns red on hover
- 16:9 aspect ratio thumbnails
- Opens video in new tab on click
- Homepage: Remove linkposts section (components preserved for future use)
1.69 - 7th February 2026
- Fix: Dashboard tracking script now uses
define:vars instead of broken template expressions in is:inline script
- Content: Publish Red Wing Roughneck 5-year review (draft → live)
- Content: Remove featured flag from Keychron M4 review
1.68 - 6th February 2026
- Schema & SEO:
- Review schema now uses summary text for
reviewBody
- Product schema now includes
url and uses image arrays
- Content Rendering:
- Summary blocks are stripped from MDX output to avoid duplicate DOM
- Pros/cons parsing handles escaped quotes reliably
1.67 - 6th February 2026
- Docs:
- Added planning docs for future improvements (analytics dashboard, summary de-duplication)
- Added Planned Features section in README linking to plan documents
1.66 - 6th February 2026
- Homepage:
- Added new "Reviews" section with smart filtering to avoid duplicating reviews already shown in Keyboards/Mice sections
- Added automatic exclusion of featured reviews, keyboard reviews, and mice reviews from general Reviews section
- Keyboards and Mice sections now exclude featured posts and videos
- Topic Sections:
- Added
excludeFeatured prop to exclude posts with featured: true
- Added
excludeVideos prop to exclude posts with category: "video"
- Added
excludeSlugs prop to exclude specific posts by slug array
- Added
categoryMatch prop for filtering by category instead of tags
- Enhanced filtering logic to support both tag-based and category-based matching
- Hub Pages:
- Keyboard and mice hub pages now exclude video category posts from collections
- Styling:
- Changed section titles from all uppercase to capitalized (BlogGrid, ContentGrid, NewsGrid, TopicSection)
- Content:
- Updated Red Wing Roughneck review with external link support, improved pros/cons parsing, and additional images
1.65 - 5th February 2026
- Layout:
- Restructured article pages into three distinct containers (Hero → Summary/Pros → Content/TOC)
- Summary now displays between hero and pros/cons instead of in hero or inline with content
- Improved TOC alignment with first heading in main content
- Added container structure documentation to README with visual diagram
- Styling:
- Simplified summary styling (removed decorative borders, italic text, and text-indent)
- Added
.article-summary and .article-pros-cons classes for clearer component separation
- TOC now has top margin to align perfectly with first h2 in content
- Responsive: TOC hidden on mobile (≤1023px) with proper margin handling
1.64 - 4th February 2026
- Schema & SEO:
- Added
productName and brand fields to review frontmatter for improved schema.org structured data
- Product schema now uses explicit product names instead of extracting from titles
- Brand information properly structured as
@type: "Brand" in schema output
- Updated 10 recent reviews with productName and brand fields
- Docs:
- Documented productName and brand fields in README under Review-Specific Fields
1.63 - 4th February 2026
- Content:
- Added Red Wing Roughneck 5-year review draft article
- Config:
- Added edge middleware to strip AMP query params (replaces unreliable vercel.json redirects)
1.62 - 3rd February 2026
- Config:
- Fixed trailing slashes in Vercel redirect destinations
- Consolidated duplicate baldurs-gate-3 redirects
- Docs:
- Added AudioPlayer component documentation to README
- Added ReadMyReview component documentation to README
- Expanded video documentation with import pattern for autoplay/loop
1.61 - 3rd February 2026
- Content:
- Added more images to recent Wooting reviews
- Styling:
- Fixed caption positioning for video elements and YouTube embeds
1.60 - 2nd February 2026
- Content:
- Added Wooting 80HE review with images, YouTube video embed, and typing sound test
- Added Wooting 80HE Travel Case review with 9 images
- Added Wooting Double-Shot PBT Keycaps review with images and typing sound test
- Components:
- Added AudioPlayer component for inline mp3 playback with styled controls
- Added ReadMyReview component for inline cross-linking between related articles
- Schema:
- Added VideoObject structured data for embedded YouTube videos in non-video posts
- Auto-detects
<YouTube> embeds and resolves thumbnail from post folder
1.59 - 30th January 2026
- Lazy-load GLightbox: JS and CSS now only load on first image click instead of on every page. Moved lightbox from BaseLayout to article pages only, so homepage, listings, and 404 no longer ship lightbox code at all.
- Added
fetchpriority="high" to hero images for faster LCP.
- Switched fonts to latin-only subsets and added preload for IBM Plex Mono to improve LCP.
- Set explicit width/height on header logo to prevent layout shift.
- Increased footer copyright text contrast.
1.58 - 29th January 2026
- Docs: sharpened assistant notes; moved ToC documentation into README.
1.57 - 29th January 2026
- Preparing future content
- Added Table of Contents component for long reviews
1.56 - 28th January 2026
- Added Razer Synapse Web article covering the new browser-based configuration tool for Huntsman V3 keyboards.
1.55 - 27th January 2026
- Added Arc Raiders 2026 roadmap update article covering Escalation phase (January-April) with new maps, ARC threats, Scrappy updates, and beach environment.
1.54 - 27th January 2026
- Added score badges to review articles - square badges showing X/5 rating on hero images, plus Top Pick badges that actually show up where they should.
1.53 - 23rd January 2026
- Testing linkposts again, now with (hopefully) better backend - because third time's the charm, right?
1.52 - 21st January 2026
- Gave the homepage's keyboard and mice sections superpowers to handpick articles while preventing duplicates, added accordion to changelog because nobody wants to scroll through 51 versions of "fixed a thing", and blessed the changelog title with that sweet animated gradient glow.
1.51 - 19th January 2026
- Bug Fixes:
- Fixed summary paragraph breaks not displaying on mobile Safari and Firefox
- Replaced all
<br/> tags with proper paragraph breaks in 11 article summaries
- Added proper margin-bottom to summary paragraphs for consistent spacing
- Removed mobile responsive text size for summaries (0.95rem)
1.50 - 19th January 2026
- Content:
- Added summary to Arc Raiders commentary article
- Styling:
- Added .list CSS class for inline numbered lists with tighter spacing
- Improved summary paragraph spacing with proper margin-bottom
1.49 - 19th January 2026
- Bug Fixes:
- Fixed mobile menu allowing clicks on hidden links when closed
- Added pointer-events control to prevent interaction with invisible menu items
1.48 - 19th January 2026
- Content:
- Added Arc Raiders commentary article with gallery and YouTube embed
1.47 - 19th January 2026
- Navigation Enhancements:
- Added accordion dropdown menu to header for additional pages (Videos, Portfolio, About, Changelog)
- Dropdown features animated gradient background matching mobile menu aesthetic
- Right-aligned dropdown items with hover underline effects
- Accordion toggle styled with accent color
- Mobile menu now displays all navigation items inline with consistent sizing
- Mobile Menu Improvements:
- Fixed mobile menu height issue using dvh units for better iOS compatibility
- Reduced text size and padding on mobile for improved spacing (clamp 1.2-1.5rem)
- Added fallback from 100vh to 100dvh for proper viewport coverage across devices
- UI Improvements:
- Removed article slug from breadcrumbs display (still present in schema for SEO)
- Updated hero titles on Keyboards and Mice pages with animated gradient effect
- Breadcrumbs now show simplified path (e.g., "kaytomas.com / mice")
1.46 - 18th January 2026
- Schema Enhancements:
- Added aggregate ratings support for review products (shows rating count across all reviews of same product)
- Created aggregateRatings utility for calculating product ratings across multiple reviews
- Enhanced Product schema with AggregateRating entities for better search result display
- Added aggregateRating support to topic hub pages for comprehensive product data
- UI Improvements:
- Removed sticky header behavior and bottom border for cleaner design
- Removed tags and category display from article hero sections (kept for featured homepage variant only)
- Simplified breadcrumbs styling by removing custom font
1.45 - 16th January 2026
- SEO Improvements:
- Added granular sitemap prioritization (1.0 for homepage, 0.9 for hub pages, 0.8 for category pages, 0.7 for content, 0.5 for static pages)
- Configured different changefreq values per page type for better crawl optimization
- UX Improvements:
- Shortened "View all" link text for better mobile readability
- Removed arrows from section links (All keyboards, All the mice, Read all news, See all videos)
1.44 - 16th January 2026
- Major Release: Merged content-hubs branch into main
- Features:
- Added content hubs for Mice and Keyboards with dedicated topic pages
- Added productCategory and subCategory system for content organization
- Added rich schema markup to topic hub pages for SEO
- Added topic clusters with homepage restructure
- Added
--shadow-tag CSS variable for consistent tag shadows
- Fixes:
- Fixed duplicate productCategory keys in frontmatter across 20 posts
- Added subtle drop shadows to all badge/tag elements
1.43 - 16th January 2026
- Removed:
- Removed linkposts feature from homepage due to errors in logic
- Disabled Linkposts.astro component (renamed to .bak)
- Deleted
/data/linkposts.json (public data file preserved)
1.42 - 14th January 2026
- Features:
- Added curated linkposts feature with News Stream section on homepage
- Linkpost cards display title, source, relative time, comments, and tags
- Collapsible list with "Show more" toggle button
- Graceful handling for posts without images
- UI Improvements:
- Redesigned "Show more" button with accent gradient underline
- Updated fetch path to use
/data/linkposts.json
- Linkpost comments now expand fully instead of being truncated
- Tweaked linkposts pixels width and height
1.41 - 13th January 2026
- Features:
- Added backend for Inoreader news flow of consciousness
- Created
/data/linkposts.json for automated link commentary
- Configured Vercel to ignore data folder changes (no rebuilds on linkpost updates)
- Documentation:
- Added comprehensive Linkposts workflow documentation to README
1.40 - 13th January 2026
- Content Updates:
- Added two Arc Raiders articles: "Arc Raiders success story" (published) and "Aggro-Based Matchmaking Confirmed" (draft)
- Added "Commentary" tag to Sunderfolk article
- Implemented flexbox layout for Patrick Söderlund image alongside blockquote in aggro lobbies article
1.39 - 12th January 2026
- SEO Improvements:
- Added trailing slash redirects for collection pages (/review/, /news/, /portfolio/, /videos/)
- Ensures consistent URL structure aligning with trailingSlash: 'never' policy
- Content Updates:
- Updated Keychron Ultra article title to "Keychron Q Ultra series"
- Updated Reebok weight vest review with 2026 refresh (18 months later update)
- Updated pricing information for Reebok vest (US: $35, Norway: 1600 NOK)
1.38 - 7th January 2026
- Schema & SEO Enhancements:
- Added comprehensive structured data for all page types with BreadcrumbList navigation
- AboutPage schema with detailed Person mainEntity including knowsAbout, contactPoint, and email
- CollectionPage schema for category indexes (/review, /news, /portfolio, /videos) with dynamic ItemList
- BrandPage schema for brand pages (/keychron) with Brand entity and ItemList
- WebPage schema for informational pages (/changelog) with auto-generated dateModified
- All schemas now include BreadcrumbList for improved navigation and SEO
- Technical:
- Created centralized schema system with constants in
/src/lib/schema/constants.ts
- New schema generators:
about.ts, collection.ts, brand.ts, webpage.ts
- Enhanced brand configuration with optional
websiteUrl field
- Fixed AUTHOR_EMAIL constant (removed
mailto: prefix for schema compliance)
- Documentation:
- Updated README with comprehensive schema documentation for all page types
- Added brand page documentation with configuration examples
- Updated project structure to reflect new schema files
1.37 - 7th January 2026
- Features:
- Added comprehensive author bio section at the end of all posts
- Author bio includes photo (linking to /about), name, title, description, and social links
- Added email contact link (kay@kaytomas.com) alongside social media icons
- Technical:
- Enhanced Schema.org Person markup with description, jobTitle, worksFor, and sameAs fields
- Created centralized
generatePersonSchema() function for consistent author data
- Updated review, article, and video schemas to use enhanced author metadata
- Improved SEO with rich author information for search engines
1.36 - 6th January 2026
- Features:
- Added "You may also like" related posts section to blog posts
- Smart matching algorithm prioritizes shared tags, then category, then recency
- Manual override option via frontmatter
relatedPosts array
- Responsive horizontal layout (image left, content right)
- Added
--gradient-heading CSS variable for consistent heading gradients
1.35 - 7th January 2026
- Content:
- Added news article: Keychron Ultra series with 8kHz polling and 4-month battery life
- Features:
- Added gallery caption styling to match image caption formatting
1.34 - 4th January 2026
- Planning:
- Added plan for content file restructure to improve external editor compatibility
1.33 - 2nd January 2026
- Technical:
- Tidied up IndexNow implementation for better reliability
- Updated to Astro 5 compatible configuration (static output)
- Fixed deprecated Vercel adapter import
- Updated IndexNow key from Bing Webmaster Tools verification
- Removed custom API endpoint - GitHub Action now submits directly to IndexNow
- Simplified workflow to fetch sitemap and submit URLs directly
- Added URL logging to GitHub Actions for better visibility
- Cleaned up unused API route and environment variables
1.32 - 2nd January 2026
- Technical:
- Implemented post-deployment IndexNow webhook solution
- Created
/api/indexnow endpoint for URL submission after deployment
- Removed astro-indexnow to avoid timing issues during build
- Changed output mode to 'hybrid' with Vercel serverless adapter
- Added @astrojs/vercel adapter for server-side API routes
- Added GitHub Action to automatically submit URLs to IndexNow after deployment
- IndexNow now triggered automatically via GitHub Actions workflow
- Comprehensive README documentation for IndexNow setup
1.31 - 2nd January 2026
- Content:
- Added comprehensive Review Policy to About page
- Restructured About page with portrait image and improved layout
- Added portrait photo with photographer credit
- Added Review Policy link to footer navigation
- Updated About page content with Prisjakt.no role and refined messaging
1.30 - 29th December 2025
- UI/UX:
- Extended lightbox functionality to all article images, not just galleries
- All standalone images in articles now open in lightbox when clicked
- Added consistent hover effect (scale 1.02) across all clickable images
- Updated caption styling to work with lightbox-wrapped images
- Removed box-shadow from gallery images for cleaner appearance
- Content:
- Updated Keychron M4 review with improved content structure
1.29 - 28th December 2025
- SEO:
- Added IndexNow integration for instant search engine notifications
- Automatically submits all pages to IndexNow on every build
- Supports Bing, Yandex, and other IndexNow-compatible search engines
- ~48 URLs automatically submitted per deployment
- Documentation:
- Added IndexNow section to README with detailed explanation
- Documented build process and automatic URL submission
1.28 - 27th December 2025
- UI/UX:
- Updated main headline to "Real hardware, real opinions" with animated mint/white gradient
- Enlarged section headings (Reviews, News, Videos) to h1 size with gradient effect
- Changed section headings to primary font (system font) and normal case
- Expanded featured hero container width to match full page width (1200px)
- Updated footer credits to mention Astro instead of Claude
1.27 - 27th December 2025
1.26 - 26th December 2025
- Bug Fixes:
- Fixed Open Graph images showing as "[object Object]" in meta tags
- OG and Twitter card images now correctly display full image URLs
- Extract .src property from Astro image objects in PageComponent
- Convert URL object to string in BaseLayout meta tags
- Content:
- Added news article: Samsung Odyssey 3D (6K glasses-free 3D display)
- UI/UX:
- Section titles (REVIEWS, NEWS, VIDEOS) now use Space Grotesk font
- Made section titles clickable links to their respective listing pages
- Added hover effect to section title links
1.25 - 26th December 2025
1.24 - 26th December 2025
- Documentation:
- Merged all README files into one comprehensive document at repository root
- Complete documentation of page types (news, review, portfolio, video)
- Typography system documentation (IBM Plex Sans, IBM Plex Mono, Space Grotesk)
- Color system with hex codes (primary #99ffcc, secondary #ff006e, tertiary #4800fb)
- Schema/structured data logic for all content types
- Custom content fields and components documentation
- Development patterns and content management workflows
- Removed redundant README files from subdirectories
1.23 - 26th December 2025
- SEO Optimization:
- Edited all meta descriptions to be sub 160 chars
- Optimized 23 articles with descriptions over the SEO limit
- Average reduction of ~50% in description length
- Improved search result appearance and click-through rates
1.22 - 25th December 2025
- Content:
- Added article: OG Steam Deck out of production :(
- Styling:
- Reduced blockquote accent line width from 3.75rem to 2.8rem for cleaner appearance
1.21 - 25th December 2025
- SEO Redirects:
- Added 41 WordPress migration redirects to vercel.json
- Tag page redirects (32 entries): old /tag/* URLs redirected to appropriate category pages
- Category redirects: /category/blog to /news
- URL corrections: /reviews to /review
- Sitemap redirects: legacy WordPress sitemap URLs to sitemap-index.xml
- All redirects configured as permanent (301) for proper SEO link equity transfer
1.20 - 25th December 2025
- 404 Page:
- Added custom 404 page with Drew blinking GIF
- Hero-summary styled text with contact information
- Dynamic grid showing 9 most recent posts
- SEO:
- Created vercel.json with normalized redirects (no trailing slashes)
- Added catch-all feed redirect
- Removed duplicate URL variations
1.19 - 25th December 2025
- Content:
- Added 5 older news articles from March 2025 for SEO purposes
1.18 - 25th December 2025
- Content:
- Added 3 new portfolio pages (Steam Deck, 5 Awesome Keyboards, Zowie EC2-CW)
1.17 - 25th December 2025
- Navigation:
- Added Portfolio link to header navigation (alongside Reviews and News)
- Typography & Styling:
- Updated header navigation font to IBM Plex Mono (matching summary badge styling)
- Reduced header navigation font size and spacing for more compact appearance
- Added letter-spacing (0.15em) to header navigation links
- Portfolio:
- Removed "Latest Projects" title from portfolio page grid
- Added custom h3 styling for portfolio posts (IBM Plex Mono font, larger size, increased bottom spacing)
- Portfolio posts now use unified article layout with hero component
1.16 - 18th December 2025
- SEO & Styling:
- Added canonical tags to all pages (without trailing slashes)
- Moved summary blocks to hero section (15% wider than main content)
- Added Space Grotesk font (400 weight) for summaries and blockquotes
- Updated summary styling: removed italics, gradient border, and indent
- Updated blockquote font size to calc(var(--text-m) * 1.1)
1.15 - 17th December 2025
- Framework Update:
- Updated Astro from 5.15.9 to 5.16.6
- Routing:
- Added redirect from /review/red-wing-iron-ranger-8085-tested to /review/red-wing-iron-ranger-8085-review
1.14 - 17th December 2025
- Content Enhancement:
- Added summary blocks to all review articles
- Updated summary block styling with horizontal gradient bottom border
1.13 - 17th December 2025
- Performance Monitoring:
- Added Vercel Speed Insights for real-world performance tracking
- Integrated @vercel/speed-insights package into BaseLayout
1.12 - 17th December 2025
- Font Optimization:
- Self-hosted IBM Plex Mono using Fontsource (weights 400 & 600)
- Removed Google Fonts dependency for better performance and privacy
- Removed IBM Plex Sans and JetBrains Mono (unused fonts)
- Unified all body text, blockquotes, and inline code to use system fonts
- IBM Plex Mono now only external font, used exclusively for captions, author lines, and UI elements
- Reduced font weight variants from 300/400/500/600 to just 400/600
1.11 - 15th December 2025
- Analytics Migration:
- Replaced Plausible analytics with Google Analytics (GA4)
- Added Google Analytics tracking code to BaseLayout
- Updated about page privacy policy to reflect Google Analytics usage
- URL Configuration:
- Set trailingSlash to 'never' for consistent URLs without trailing slashes
- Added redirect from /reviews to /review for SEO
- Cleaned up Astro config for cleaner sitemap generation
- Codebase Cleanup:
- Removed InoreaderStream component and related files
- Removed redirect script planning documentation
- Updated TODO list to reflect launched site status
1.10 - 10th December 2025
- Summary block color and padding tweaks (thx neXib)
1.09 - 10th December 2025
- Added summary block component for articles (experimental design)
- Fixed typos in Keychron M4 article
1.08 - 9th December 2025
- Published Keychron M4 fingertip mouse review
- Improved markdown table styling with centered text, accent border, and refined spacing
1.06 - 2nd December 2025
- Small file cleanup and tweaks
- Added credit1/credit2 fields for contributor attribution
- Increased spacing on author/credit fields for better readability
1.05 - 30th November 2025
- Schema.org Structured Data Fix:
- Fixed review schema positiveNotes and negativeNotes to use proper ItemList format
- Each list item now includes @type, position, and name properties per schema.org spec
- Ensures compatibility with Google Rich Results validation
1.04 - 30th November 2025
- Implemented and testing Plausible analytics
1.03 - 29th November 2025
1.02 - 28th November 2025
- Fixed post release typos and improved mobile hero centering
1.0.1 - 28th November 2025
- Schema Validation Fixes:
- Fixed review schema to follow Google Product snippet guidelines (changed from standalone Review to Product with nested review property)
- Added author URL (https://kaytomas.com/about) to all Person schemas for proper E-E-A-T signals
- Resolves Google Rich Results validation errors
1.0.0 - 28th November 2025
- 🎉 MAJOR RELEASE - Production Ready with SEO Structured Data
- JSON-LD Structured Data Implementation:
- Review Schema.org markup with star ratings (1-5), product info, pros/cons
- VideoObject schema with YouTube integration and thumbnails
- NewsArticle schema with author attribution and rich article cards
- BreadcrumbList schema for improved navigation in search results
- Organization schema with site branding, logo, and social links
- Type-Safe Content Schema (Breaking Changes):
- Implemented discriminated union pattern in content configuration
- Review posts now REQUIRE
rating field (1-5 scale)
- Video posts now REQUIRE
youtubeId field
- Build-time validation ensures all content meets requirements
- All existing content updated to comply (9 reviews, 3 videos validated)
- Schema Generation Infrastructure:
- Created centralized schema utility library (
src/lib/schema/)
- TypeScript interfaces for all Schema.org types
- Automatic pros/cons extraction from reviewProsCons MDX exports
- JSON-LD injected at build time (zero runtime performance cost)
- SEO Benefits:
- ⭐ Star ratings visible in Google search results
- 🎥 Video thumbnails in search results
- 📰 Rich article cards with author info
- 🔗 Breadcrumb navigation
- 👤 E-E-A-T signals with proper author attribution
- 🏢 Organization branding
- Author Updates:
- Changed default author from "Kay Tomas" to "Kay Tomas Bertheussen"
- Updated all content with standardized author name
0.91
- Video page enhancements:
- Replaced hero image thumbnail with embedded YouTube video on video article pages
- Added accessibility attributes (role and aria-label) to video embeds
- Removed "Latest Videos" title from videos index page
- Added tertiary accent color support for "View all" links
- Author field improvements:
- Removed hardcoded "by" prefix from all author displays
- Changed author text to lighter weight (300) with tighter letter spacing (-0.01em)
- Switched to secondary font for more elegant appearance
- Hero component redesign:
- Split hero into two-column layout with title on left, description on right
- Both sections now centered vertically and horizontally
- Added support for HTML in title and subtitle (line breaks with
<br>)
- Implemented conditional gradient system:
- Main page: Tri-color gradient (white → orange → purple) at 180 degrees
- Sub-pages: Two-color gradient (white → orange) at 90 degrees
- Increased subtitle font size for better readability
- Typography and styling:
- Updated date/time separator spacing with padding for better visual balance
- Added gradient to article card titles (19deg angle, white to accent at 60%)
- Rainbow gradient effect added to "ultrathinking" text on about page
- About page:
- Created new about page with site information and AI content disclosure
- Footer "AI usage" link now points to about page anchor (#ai-content)
- "About" and "Changelog" links properly implemented in footer
- Featured article enhancements:
- Added "Featured" tag badge with magenta color (#cc33cc)
- Featured tag appears before category tag on featured article images
- Improved visual hierarchy for featured content
- Footer refinements:
- Reduced brand text size from lg to base
- Changed credits text from bold to normal weight
- Split version info to separate line for better readability
- Added underline styling to version link for clear affordance
0.90
- Content migration complete! All articles migrated from WordPress and manually processed
- Migrated MegaGear Torres Pro review article:
- Successfully migrated complex review with 4 galleries (39 images total)
- Integrated YouTube video embed
- Added ProsAndCons component for structured review format
- Properly formatted disclaimers and affiliate links
- Brand assets implementation:
- Added official logo and favicon from live site
- Replaced text logo with image in header
- Maintained header height for consistent layout
- Social media updates:
- Updated YouTube link to @kaytomascom
- Updated Instagram and X links to @ktbsen
- CSS improvements:
- Enhanced image caption selector using
:has() pseudo-class for better reliability
- Improved caption positioning across all articles
- Site status: Content complete and ready for launch preparation
0.89
- Manual formatting improvements for review articles
- Gallery component updates:
- Moved styles to global.css following architecture pattern
- Changed to 2-column layout on all screen sizes
- Removed rounded corners for cleaner look
- Article typography refinements:
- Tighter list spacing with improved line-height
- Hero description font size increased to 1.40rem
- Added support for line breaks in hero descriptions
- Created comprehensive review template (reviewTemplate.mdx)
0.88
- Typography and spacing refinements:
- Reduced article body text from 1.29rem to 1.125rem (18px) for improved readability
- Reduced content max-width from 700px to 680px for tighter layout
- Reduced article hero top padding from space-10 to space-5 for more compact design
- Component system improvements:
- Created ProsAndCons component for review articles with Verge-style minimal design
- Two-column layout on desktop with vertical divider, single column on mobile
- Customizable labels (prosLabel/consLabel) with defaults
- Uses default bullet points with accent colors for pros/cons titles
- Added MDX compatibility comment to allow component as first content
- Created Disclaimer CSS class for article disclaimers with accent underline
- Styling architecture:
- Moved all component styles to global.css for centralized management
- Moved prose/content styles (links, headings, blockquotes, code) to global.css
- Moved utility styles (.category, .tag) to global.css
- Path aliases:
- Added TypeScript path aliases (@components, @styles, @layouts, @/*) for cleaner imports
- Updated README with path alias documentation and usage examples
- Blockquote redesign:
- Changed to top border (15px wide, 60px length) in accent color
- Removed italic styling, now uses IBM Plex Sans Medium
- Changed to standard white text color (var(--color-text))
- Uses var(--text-lg) on desktop, var(--text-m) on mobile
- Added horizontal padding (1.5rem) for better positioning
- Header navigation updates:
- Removed Videos and Portfolio links (pages kept for future use)
- Changed nav links to uppercase (REVIEWS / NEWS)
- Added accent-colored "/" separator between navigation items
- Documentation:
- Created comprehensive README.md with development patterns
- Documented component/styling architecture pattern
- Added ProsAndCons usage examples with multi-line array formatting
0.87
- Rewrote the whole hero segment of posts and made them french chéf ready!
- Removed link underline styling from header and footer (now only appears in article content)
- Decreased global page margins from 24px/32px to 10px across all breakpoints
- Added hero image caption support with heroImageCaption frontmatter field
- Updated caption styling globally: 10% smaller, lighter weight, custom color (#cccccc), removed italics
- Added decorative quotation mark to hero excerpt in accent color
- Adjusted hero layout spacing and responsive behavior for better visual hierarchy
- Typography improvements:
- Changed all heading colors (h1-h6) to use accent color globally
- Added gradient effect to article h1 titles (white to accent color)
- Adjusted h2 spacing: increased margin-top to space-8, reduced margin-bottom to space-3
- Created new --text-m variable (18px) for better responsive typography scaling
- Added 480px breakpoint for small mobile devices with reduced content font size
- List styling refinements:
- Removed margin-bottom from ul/ol elements for tighter spacing
- Cleaned up list item spacing for better readability
0.86
- Implement video pages with YouTube embed support
- Add video category to content schema with youtubeId and relatedReviewSlug fields
- Create /video/ archive page and /video/[slug] detail pages
- Add Videos link to header navigation (between Reviews and News)
- Integrate astro-embed for responsive YouTube embeds
- Migrate 3 video posts from WordPress:
- Zowie EC2-CW gaming mouse video
- HeyGen AI video translate test
- MegaGear Torres Pro camera bag review
- Add VIDEO_TEMPLATE.md documentation for creating video posts
0.85
- Add comprehensive redirect script plan for WordPress image URLs (REDIRECT_SCRIPT_PLAN.md)
- Update TODO.md to reflect completed tasks:
- GLightbox implementation verified
- All documentation moved to /docs folder
- CHANGELOG path already updated in version utility
0.84
- Migrated 13 articles from WordPress (9 news, 4 reviews):
- News: MX Northern Light, Dune Awakening, Overwatch 2 Stadium, Marathon, BG3 crossplay, DaVinci Resolve 20, BG3 Act 2 mod, ASUS ProArt PA32UCDM, FreeDOS 1.4, Samsung Odyssey 2025
- Reviews: BenQ Zowie EC2-CW, Red Wing Iron Ranger 8085, Reebok weight vest, Xtrfy M4 Wireless
- Enhanced migration script with major improvements:
- Preserve exact content order (text and media elements)
- Extract actual publish dates and update dates from WordPress
- Fix list formatting to prevent extra line breaks
- Auto-remove "KAYTOMAS" suffix from titles
- Process entire list blocks to maintain compact formatting
0.83
- Delete duplicate Silver Pines article (old November version)
- Implement footer component with social links (Bluesky, YouTube, Instagram, X), contact links, and build version display
- Add dynamic version numbering utility (reads from CHANGELOG.md)
- Remove version display from header (now only in footer)
- Update global link styling with accent-colored underlines and configurable offset
- Add
--text-underline-offset variable to design system
0.82
- Add Gallery.astro component for responsive image grids
- Add WordPress migration script (scripts/migrate-article.cjs) with support for:
- WordPress gallery blocks with automatic image downloads
- YouTube embed detection (astro-embed integration)
- Native WordPress video block support with file downloads
- Complete Elementor content extraction
- MDX output with proper imports
- Add video styling to global.css for proper container constraints
- Add comprehensive migration documentation
0.81
- Migrated "Meshify 3", "Sonic Racing Crossworlds", and "Keychron K3 Max" articles.
- Fixed build issues (missing
marked dependency and config conflict).
- Taught the site to speak 'Meshify', 'Sonic', and 'Keychron'. Also fixed the build, because broken sites are so 2024.
0.80
- Fix broken content collections for reviews, news, and portfolio.
- Implement clean URLs for all content types.
- Implement Image Optimization using Astro
<Image /> component.
- Update header link to
/review.
0.79
- Migrate all images to Astro's Image component for automatic optimization and lazy loading.
- Move images to /src/assets/ for proper build-time processing (news WebP, review JPG).
- Remove unoptimized PNG/WebP files from /public (~4.4MB reduction).
- Update Card and NewsGrid components to use imported image assets.
0.78
- Add comprehensive SEO meta tags (Open Graph, Twitter Cards, canonical URLs) and optimize images (PNG → WebP, 97.5% size reduction).
0.77
- Update navigation to match kaytomas.com structure (Reviews → /reviews, add Portfolio link).
0.76
- Add changelog subsite at /changelog with site styling, header, and container layout.
0.75
- Add real review images from kaytomas.com (GeForce Now, Keychron K3 Max, ZOWIE EC2-CW).
0.74
- Refactor to reusable ContentGrid component with configurable columns and add placeholder images for news items.
0.73
- Complete UI/UX redesign with design system, new layout structure, and component library.
0.72
- Add header component with logo, navigation (Home, Blog), and version number linking to changelog.
0.71
- Update index page subtitle to "det er kjempegøy på skolen".
0.70
- Update index page subtitle to "mats mats mats is helping, so are agents".
0.69
- Initial changelog setup and project documentation update.