Changelog

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

  • Experimental:
    • Dabbeling on brand-pages

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

  • Content:
    • Fixed typo in news page

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

  • Small UI fixes

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.