Website History

Hidden dashboard - changelog

February 12, 2026

Battle Game History Page

  • Added `/research/games/battle/history` page showing the battle game's full change log
  • Reads `HISTORY.md` from the battle game's static directory at build time
  • Timeline layout with color-coded categories (Added/Changed/Fixed/Removed)
  • "History" button added to the battle game card on the games catalog page
  • Summary section skipped; detailed per-date entries displayed

Last Updated Date on Research Games

  • Added "Updated <date>" display next to tech label on the games catalog page
  • Date is pulled automatically from the last git commit on the battle game `.pck` file
  • Uses a server-side loader (`+page.server.ts`) so it stays in sync without manual updates
February 10, 2026

Research Games Catalog

  • Created hidden `/research/games` page listing game prototypes with card-based layout
  • Battle Game listed with link, description, tech stack, and status badge
  • Dark mode support with explicit text color overrides
  • Site structure updated: Games nested under new Research folder, linking to catalog page
  • Added embedded game page at `/research/games/battle` with iframe wrapper
  • Catalog offers both "Play Embedded" (within site) and "Fullscreen" (standalone) options

Battle Game (Godot Export)

  • Added Godot HTML5 game export to `static/external_projects/battle_game/`
  • Added `.wasm` file tracking to `.gitattributes` for Git LFS
  • Linked game from the hidden `/site` structure page
February 8, 2026

Print Styles for Blog Posts

  • Added `@media print` rules to optimize blog posts for printing and PDF export
  • Hides header, footer, scroll-to-top, reading progress, share buttons, keyboard shortcuts, post navigation, table of contents, tags, reader button, back-to-blogs button, and hit counter
  • Removes background gradients and shadows for clean paper output
  • Expands content to full page width
  • Appends URLs after links so readers can see where links point (except for internal anchor links)

Active Page Highlighting in Navigation

  • Nav links now highlight the current page with white text, subtle background, and purple underline
  • Uses `$page.url.pathname` with prefix matching (e.g. blog sub-pages highlight "Blog")
  • Added `aria-current="page"` attribute for screen reader accessibility
  • Full dark mode support

Language Attribute on Blog Posts

  • Added `lang` attribute to blog post content wrapper using existing `language` frontmatter field
  • Posts now declare `lang="en"` or `lang="de"` for screen readers and browser translation tools
  • Added `inLanguage` field to JSON-LD structured data for search engine language detection
February 7, 2026

Code Syntax Highlighting

  • Added Shiki syntax highlighter for code blocks in blog posts via mdsvex highlight option
  • Dual theme support: `github-light` for light mode, `github-dark-dimmed` for dark mode
  • Theme switching uses CSS variables, matching the existing dark mode toggle
  • Runs entirely at build time — zero client-side JavaScript impact
  • Pre-loaded languages: JS, TS, Python, HTML, CSS, Bash, JSON, Markdown, Svelte, C++, C, Go, C#, Rust
  • Styled inline code with purple accent matching site theme
  • Code blocks have rounded corners, borders, and horizontal scroll for long lines
  • Added sample code blocks (C++, Go, Rust) to the first blog post

Accessibility Audit & Fixes (Lighthouse)

  • Ran Lighthouse accessibility audit on 6 key pages (scores: 90–100)
  • Fixed missing accessible name on Pac-Man link (home page) — added `aria-label`
  • Fixed color contrast on "site" link in WIP badge (dark mode) — light text on dark red
  • Fixed heading order on Renewable Energy page — changed h3 to h2
  • Added underlines to blog post inline links for distinguishability beyond color alone
  • Final scores after fixes: all pages 95–100

Lazy Loading for Images

  • Added `loading="lazy"` to the Lego display image on the Renewable Energy page
  • Added a rehype plugin (`rehypeLazyImages`) in mdsvex config that automatically sets `loading="lazy"` on all images in markdown blog posts
  • Above-the-fold profile photos (About Me, Contact) intentionally left eager for best perceived performance
  • Applies to all current and future blog post images automatically

SEO Improvements for Internet Awareness

  • Added structured data (JSON-LD `BlogPosting` schema) to blog posts for Google rich results
  • Added `<link rel="canonical">` to all pages via layout to consolidate search ranking signals
  • Added default Open Graph and Twitter meta tags in layout for non-blog pages
  • Upgraded Twitter card from `summary` to `summary_large_image` for larger social previews
  • All blog post metadata (title, date, summary, tags, image) feeds into structured data automatically
February 6, 2026

Mobile-Friendly Blog Header Layout

  • ToC, tags, and reader button stack vertically on small screens
  • Expanded ToC dropdown overlays content on mobile instead of being clipped
  • Minimum width on ToC dropdown for readability on narrow screens
  • Clicking a heading link auto-closes the ToC
  • Full dark mode support

Per-Blog Hit Counter

  • Added individual view counter for each blog post using Netlify Blobs
  • Displayed below "Published on" line as "This blog hits: X"
  • Each post tracked separately by slug
  • Local dev fallback with placeholder count

Blockquote Styling for Blog Posts

  • Added styled blockquotes for markdown content (`>` syntax)
  • Purple left border with subtle violet background
  • Rounded corners on the right side
  • Full dark mode support
February 5, 2026

Keyboard Shortcuts for Blog Posts

  • Arrow left/right to navigate between older/newer posts
  • `R` to toggle reader mode, `Escape` to exit reader mode
  • Subtle hint bar at bottom of screen showing available shortcuts
  • Hidden on touch-only devices (phones, tablets without keyboard) using `hover` media query
  • Guards against firing when typing in inputs or using modifier keys
  • Full dark mode support

Table of Contents for Blog Posts

  • Collapsible ToC at the top of blog posts using `<details>/<summary>`
  • Extracts h2 and h3 headings from raw markdown at build time
  • Uses github-slugger for IDs matching rehype-slug exactly
  • Placed inline with tags and reader button (left column of grid)
  • Arrow indicators on each link, indented h3 entries
  • Only shown for posts with 2+ headings, hidden in reader mode
  • Full dark mode support

Anchor Links on Headings

  • Activated rehype-slug and rehype-autolink-headings plugins
  • Headings in blog posts now have clickable `#` anchor links for deep-linking
  • Anchor appears on hover (appended after heading text) with purple accent
  • Focus state for keyboard accessibility
  • Full dark mode support

Previous/Next Post Navigation

  • Added older/newer post navigation cards at the bottom of blog posts
  • Two-column grid layout with chevron icons, stacks on mobile
  • Card-style links with purple hover accent
  • Posts sorted by date; all resolved at build time (zero runtime cost)
  • Full dark mode support

Reading Progress in Reader Mode

  • Reading progress bar now stays visible in reader mode

Blog Post Layout Improvements

  • Moved "Published on" date immediately below blog content for better proximity
  • Reordered bottom sections: published date → share buttons → post navigation → back button

Light Mode Contrast Improvements

  • Darkened text colors throughout the site for better readability in light mode
  • Added explicit light mode CSS rules for card sections
  • Fixed text contrast issues on mobile devices (iPhone)

About Me Page Redesign

  • Redesigned timeline/location section with flexbox layout
  • Bold dates with proper text wrapping alignment
  • Adjusted profile card spacing
February 4, 2026

Reading Progress Indicator

  • Horizontal progress bar at top of blog posts
  • Shows scroll position as percentage through the article
  • Purple gradient styling matching site theme
  • Smooth width transition for visual polish
  • Hidden in reader mode
  • Full dark mode support

Scroll-to-Top Button

  • Floating button appears after scrolling 300px down
  • Purple gradient styling matching site theme
  • Smooth scroll animation back to top
  • Fade-in animation when appearing
  • Hidden in reader mode to avoid conflict with exit button
  • Full dark mode support

Custom 404 Error Page

  • Redesigned error page with animated character theme
  • 404: Green dizzy chomper spinning next to broken link with bouncing question marks
  • Server errors: Ghost with stunned yellow chomper and twinkling stars
  • Shows the attempted URL for 404 errors
  • Added "Contact Me" button alongside "Back Home"
  • Full dark mode support

Social Sharing Buttons

  • Added share buttons at bottom of blog posts
  • Supports Copy link, Facebook, LinkedIn, BlueSky, and X/Twitter
  • Styled card matching blog content area
  • Opens share links in new browser tabs
  • Enhanced Open Graph meta tags for blog posts (og:image, og:type, og:site_name)
  • Posts can specify custom images via frontmatter, falls back to profile image
  • Fixed og:image rendering for Facebook/LinkedIn sharing previews

Site Structure Page Redesign

  • Replaced ASCII tree characters with emoji folder/page icons
  • Modern card-based styling with hover highlights
  • Hidden link to /site from "site" in WIP badge on home page

Retro Hit Counter

  • Added retro-style LED hit counter to footer
  • Green-on-black digit display with 12 digits grouped in threes
  • Counts all page views site-wide (not just home page)
  • Uses Netlify Blobs for persistent storage (requires environment variables)
  • Separator line above counter to distinguish from legal info
February 3, 2026

Sitemap for Search Engines

  • Added sitemap.xml at `/sitemap.xml` for search engine crawlers
  • Includes all static pages with priority and change frequency hints
  • Auto-discovers blog posts with last modification dates
  • Helps Google/Bing index new content faster

Blog Layout Improvements

  • Reduced spacing between paragraphs and following lists for tighter typography
  • Widened blog content area on desktop (576px → 896px)
February 2, 2026

Blog Rendering Improvements

  • Added spacing between paragraphs in markdown content
  • Added table styling with borders, padding, header backgrounds, and zebra striping
  • Added dark mode support for tables
  • Increased spacing before h2 and h3 headings for better readability
  • Reduced blog post title (h1) font size for better readability on mobile devices

Open Graph Meta Tags

  • Added Open Graph tags (og:title, og:description, og:image, og:url) for social sharing
  • Added Twitter Card meta tags for Twitter/X previews
  • Uses profile photo as default social image

RSS Feed

  • Added RSS feed at `/rss.xml` for blog subscribers
  • Feed includes all blog posts with title, summary, date, and link
  • Added autodiscovery link in HTML head for feed readers
  • Added "Subscribe via RSS" button at bottom of blog page

Footnote Support

  • Added remark-gfm and remark-footnotes@2 plugins for markdown footnotes
  • Footnote references ([^1]) now link to footnote definitions at bottom of post
  • Styled footnotes section with separator line and proper formatting
  • Added dark mode support for footnotes

Language Flags & Filter

  • Added graphical SVG flags (German, English) to blog post list next to reading time
  • Added language filter buttons with flag icons to filter posts by language
  • Language filter works in combination with existing tag filter
  • Added "Clear filters" button when any filter is active

Site Structure Page

  • Created `/site` hidden page showing website structure as tree view
  • Displays all pages organized by section with descriptions
  • Includes hidden pages (todo, history, site) with visual indicator
  • Uses monospace font with ASCII tree branches for file-system style display
January 30, 2026

Estimated Reading Time

  • Added reading time calculation for blog posts (200 words per minute)
  • Display "X min read" alongside date on blog list and detail pages

Hidden TODO Dashboard

  • Created `/todo` route as a hidden dashboard for improvement ideas
  • Page parses and displays TODO.md with styled checkboxes
  • Includes `noindex` meta tag to prevent search engine indexing

Hidden History Page

  • Created `/history` route showing the website changelog
  • Timeline design with date badges and feature cards
  • Parses HISTORY.md and displays it with styled UI
January 29, 2026

WIP Diagonal Banderole

  • Added orange/yellow "WIP" diagonal banner to research project card

Blog Timeline Improvement

  • Changed year badge to show full year instead of abbreviated

YouTube Links for Games

  • Added YouTube video links for multiple games in the games list
  • Created red YouTube button style

Mobile & Footer Fixes

  • Fixed blog banner overlapping headline on mobile devices
  • Added time to footer build timestamp
January 28, 2026

Site Branding & Error Page

  • Updated site branding elements
  • Improved error page styling

Build Timestamp

  • Added build timestamp to footer

WIP Badge Styling

  • Styled WIP badge with red colors and construction signs
  • Added animated bouncing exclamation marks

New Blog Post Banderole

  • Added diagonal "New Blog Post" banner on landing page
  • Purple/pink gradient style

Reader Mode

  • Added reader mode toggle for blog posts
  • Hides navigation for distraction-free reading

Blog Improvements

  • Added blog tagging system with filtering
  • Improved blog post layout with date, centered tags, and back button
  • Fixed dark mode styling for tag filter buttons
  • Added publication date to blog post pages
  • Added timeline design to blog page

Navigation

  • Added back buttons to About Me sub-pages
  • Combined party sections on politics page

Dark Mode Enhancements

  • Fixed dark mode across all pages
  • Added dark mode support for blog posts
  • Added light/dark mode support for clock component
  • Updated header/footer colors and welcome title for dark mode

Landing Page

  • Added Pac-Man and Wind Turbines interactive section
  • Added recent blog post section

Games List

  • Added Wikipedia links to more games
  • Added company era headers (Funatics, Blue Byte) to games timeline
  • Added partner company links to games
  • Added Asterix & Obelix: Heroes

Other Pages

  • Fixed contact page
  • Added main party link to politics page
  • Standardized section borders on game development page
  • Updated renewable energy page styling
  • Added two additional wind turbines
January 27, 2026

Dark Mode

  • Added dark mode toggle with localStorage persistence

Modern Design Overhaul

  • Modernized site design with gradient theme and glass-morphism effects
  • Fixed font consistency

Interactive Elements

  • Added animated ticking clock with date to landing page
  • Added interactive pills to Pac-Man animation
  • Added button-style links to games list
  • Added animated Pac-Man to Game Development page
  • Added animated wind turbine to Renewable Energy page

Page Transitions

  • Added page transition animations using View Transitions API
  • Added responsive font sizes to page headers

Games List

  • Created games list sub-page to Game Development section
  • Added Sacred 2 Remaster
  • Added Wikipedia links to games

Skills Section

  • Added comprehensive skills section to Software Engineer page

Header Navigation

  • Fixed header navigation display on small mobile screens
January 26, 2026

Major Framework Upgrade

  • Upgraded to Svelte 5, SvelteKit 2.x, and Tailwind CSS 4
  • Added .nvmrc to specify Node.js 20 for Netlify

New Pages

  • Added German legal pages (Impressum, Datenschutz)
  • Added Software Engineer page
  • Added Politics page
  • Added Game Development section
  • Added Renewable Energy section

Blog System

  • Refactored blog to use year-based directory structure
  • Formatted blog post dates in human-readable format
  • Reorganized blog posts

Design Updates

  • Restyled header and footer with dark grey theme
  • Added footer with Imprint and Contact links
  • Added 2026 edition note to home page

Social & Contact

  • Centralized contact information
  • Added profile image
  • Added social links (Facebook, BlueSky, Twitter/X)
August 2021

Initial Setup

  • Created initial Svelte app with TypeScript
  • Added navigation bar and layout
  • Added Tailwind CSS
  • Added error page
  • Added contact to navigation
  • Configured Netlify deployment (replaced GitLab CI)
  • Implemented markdown style imports
  • Added mdsvex for markdown processing