Changelog

Compact list of all changes. See release announcements for detailed writeups.

Build 39dfe1a on May 25, 2026

v0.38.0 May 25, 2026

  • fix Resolved Eleventy templateContent timing error that prevented collection landing pages from rendering post previews
  • new Laptop Size filter for screen size categories (13", 14", 15", 16")
  • new Laptop Access filter for access method (internal, external, none)

v0.37.2 March 30, 2026 📄

  • fix Search results no longer show duplicate collection entries
  • fix Empty dataset headers no longer appear in search dropdown
  • fix Changelog now correctly orders releases by date then version
  • fix Pinned posts appear first in all listings
  • fix Pinned tag now displays in all post display modes
  • chg Search activates after 3 characters instead of 4
  • chg Search input is more responsive on listing pages
  • internal Simplified search dropdown code structure
  • internal Added unit tests for search index generation

v0.37.1 March 29, 2026

  • fix Search results no longer show duplicate collection entries
  • fix Empty dataset headers no longer appear in search dropdown
  • chg Search activates after 3 characters instead of 4
  • internal Simplified search dropdown code structure
  • internal Added unit tests for search index generation

v0.37.0 March 28, 2026 📄

  • new Global search across all datasets, posts, and pages
  • new Search results grouped by collection with current context prioritized
  • new Current dataset results shown first when searching from dataset pages
  • new Keyboard navigation (↑/↓/Enter) through search results
  • improved Datasets without detail pages link to filtered listing instead
  • internal Inverted index with bitfield encoding for compact search index

v0.36.2 March 27, 2026

  • internal Enabled ESLint with flat config for JavaScript linting
  • internal Added Knip for detecting unused dependencies and code
  • fix Fixed regex escape patterns in context URL matching
  • fix Corrected top-level await usage in build scripts
  • internal Removed dead imports and unused variable assignments

v0.36.1 March 27, 2026

  • new Collection cards now have info icons linking to landing pages
  • fix Dataset card info icons now show tooltips explaining the link
  • fix Back button now returns to previous page instead of cycling through anchor positions
  • internal Guard against undefined identity during initialization

v0.36.0 March 26, 2026 📄

  • new Datasets display "Updated X days ago" with color-coded freshness status
  • internal Freshness computed at build time from configurable date columns

v0.35.0 March 25, 2026 📄

  • new Gallery navigation with swipe gestures and arrow buttons on detail pages
  • new Image counter showing current position in gallery (e.g., "2/4")
  • new Keyboard arrow navigation (←/→) for gallery images
  • internal Gallery image preloading for instant navigation

v0.34.1 March 23, 2026 📄

  • fix Card grids now use more consistent responsive sizing across vertical, horizontal, and compact layouts
  • fix Horizontal cards now keep uniform widths, including in single-column layouts
  • fix Favorite and compare actions stay visible on touch devices across compact and list views
  • internal Deduplicated shared card action visibility rules between core and finder CSS

v0.34.0 March 23, 2026 📄

  • new Section headings on detail pages now have anchor links (#) for direct sharing
  • fix Fixed mobile scroll offset when navigating to section anchors
  • fix Fixed header and footer width misalignment on tablet viewports (576-1023px)
  • chg Removed /tags/ index page (individual tag pages still work)

v0.33.1 March 19, 2026

  • chg Multi-value fields now use a cleaner separator across cards, tables, and detail pages
  • chg Default card tags and compact stats now use a lighter bordered style
  • fix Multi-value card fields keep their labels while displaying cleaner values
  • internal Removed the segmented-pill implementation and simplified formatting through existing display helpers

v0.33.0 March 19, 2026 📄

  • new Detail pages now support image galleries with multiple views per item
  • new Table view displays thumbnail images for visual scanning
  • new Navigate gallery images with left/right arrow keys
  • chg Image thumbnails in table view can be toggled on/off via settings menu
  • internal Image manifest upgraded to v2 format supporting multiple images per item

v0.32.0 March 18, 2026 📄

  • new Banner image style for datasets with rectangular/wide images (e.g., airline logos)
  • new Tags and categories now display on posts and link to filtered listings
  • new New /tags/ page shows all tags and categories with post counts
  • fix Anchor links now scroll correctly below the sticky header
  • fix Horizontal card layout now displays cards with equal widths
  • chg Banner images include background color for transparent images in dark mode

v0.31.1 March 16, 2026

  • chg Changelog now generated from release post frontmatter
  • new Release posts support `changes:` array in frontmatter for structured changelog entries
  • internal Release stubs (frontmatter-only) excluded from /posts/ listing via `has_article` flag

v0.31.0 March 16, 2026 📄

  • new Detail sections can now link tags to other datasets or filtered views using `link_template`
  • new Internal columns can be filtered via URL parameters without appearing in the sidebar
  • fix "View all mentions" links on detail pages now preserve collection context
  • internal Filter registry now processes all filterable columns for URL-based filtering

v0.29.0 March 15, 2026

  • fix Back navigation from posts now correctly returns to the previous page with accurate labels ("Back to collection", "Back to dataset", "Back to articles")
  • fix Collection context (?c=) now preserved when navigating to posts and article listings
  • fix Articles link in header dropdown no longer causes console error
  • internal Simplified posts navigation using browser history instead of URL parameters

v0.28.2 March 15, 2026

  • chg Dataset tag in posts now links to dataset articles instead of finder
  • fix Back navigation preserves collection context through posts
  • internal Simplified posts.js, removed unused collections

v0.28.1 March 15, 2026

  • new Dataset-specific article listings at /posts/{dataset}/
  • new Articles icon on collection landing cards and dataset taglines
  • new Articles menu item in dataset settings dropdown
  • fix Remove broken category listing template

v0.27.0 March 15, 2026

  • new Dataset and collection-specific blog support
  • new Automatic aggregation of dataset posts into collection pages
  • new Sticky posts for main, dataset, and collection views
  • chg Improved dataset descriptions with article counts and direct links
  • chg Post previews now show scope tags (dataset, collection, release)

v0.28.0 March 11, 2026 📄

  • new Improved SEO with full meta descriptions, sitemap, and Open Graph tags
  • chg Cleaner, faster CSS with modular structure and per-page bundles
  • chg Mobile usability improvements, including filter access and layout fixes
  • fix Accessibility improvements for screen readers and keyboard navigation
  • internal Refactored and consolidated CSS utilities

v0.26.0 March 7, 2026 📄

  • new Click table column headers to sort-indicators show current sort column and direction
  • new Full-width toggle expands listings to use entire browser width
  • chg Sort controls hidden from sidebar when viewing tables (use column headers instead)
  • chg Smart sort defaults: numbers sort highest-first, text sorts alphabetically
  • fix Table header no longer shows content beneath when hovering on scrolled tables

v0.25.0 March 6, 2026 📄

  • new Full-width toggle expands listings to use entire browser width (desktop/tablet)
  • new Card titles and images can link to external URLs for datasets without detail pages
  • new View Source button in settings menu links to dataset spreadsheet
  • new Airlines dataset with carrier logos and baggage limits
  • fix Consistent theme colors across homepage and dataset pages
  • fix Checklist items with values like "3" or "foam" now show checkmarks correctly
  • internal Image scanning no longer requires source URL column configuration

v0.24.0 March 1, 2026 📄

  • new Visual range sliders for numeric filters with dual handles
  • new Threshold filter slider for ordered options (Excellent → Poor)
  • new Search dropdown auto-opens on focus showing first 8 options
  • new Bookmark ribbons on cards for favorites (gold) and compare list (blue)
  • new Compare page highlights best enum values among compared items
  • chg Range sliders update bounds when switching units or currency
  • chg Compare page header: logo and title now single clickable link
  • fix Multi-value columns now use configured separator for display
  • fix Compare page shows ✗ for false booleans instead of –
  • fix Detail sections support label:null to hide headers
  • fix Detail hero respects image:false config
  • fix Icon mode detail pages use smaller image column

v0.23.0 February 24, 2026 📄

  • new Linux Distros dataset - compare 38+ distributions by features, philosophy, and use case
  • new Quick filter presets: beginner-friendly, gaming, rolling, systemd-free, immutable
  • new Multi-value column support - filter columns with multiple comma-separated values
  • new Image style system - hero (full bleed) or icon (contained) per dataset
  • fix Filter chips now display correctly for all enum columns
  • fix Image caching works for datasets with direct name columns
  • fix Dataset page templates no longer trigger build errors
  • internal Unified filter options format ({value, label} objects)
  • internal Added dataset initialization documentation

v0.22.0 February 22, 2026 📄

  • new Detail pages now show key stats beside the image for quick scanning
  • new Item titles link directly to vendor/manufacturer pages
  • new Aside sections support subgroups for organized stat display
  • chg Favorite and compare buttons now overlay the image consistently
  • chg Navigation actions (back, report) moved to top-right for cleaner layout
  • fix Highlight badges (Top 10, etc.) now display correctly on detail pages
  • internal Aside sections reuse existing section rendering with position attribute

v0.21.0 February 20, 2026 📄

  • new Profile identicon - each visitor gets a unique, colorful avatar generated from a persistent anonymous ID
  • new Split header menus - profile button for personal preferences, kebab for page actions
  • chg Theme, units, and currency settings now accessed via profile identicon button
  • internal New identicon generator using seeded PRNG for deterministic SVG output
  • internal Identity UUID stored alongside theme in qaya-prefs localStorage

v0.20.0 February 18, 2026 📄

  • new Feedback system: report data corrections and suggest new items directly from the site
  • new "Report Issue" button on detail pages with item pre-selected
  • new Item search in feedback modal on listing pages
  • new Name field remembered across sessions for attribution
  • internal Per-dataset feedback control via config

v0.21.1 February 15, 2026

  • new New Identity button - generate a fresh avatar anytime from the profile menu

v0.20.1 February 15, 2026

  • fix Images now display correctly on detail pages, related items, and compare pages
  • new Datasets can reference images from other datasets (e.g., Mentions using Onebag images)
  • internal Consolidated image URL logic into shared utility
  • internal Refactored feedback system to use store pattern
  • internal Moved feedback config to standard site config location

v0.19.0 February 15, 2026

  • new Multi-term search: press Enter after each term for independent AND matching
  • new Each search term shown as a separate pill with individual removal
  • new Build commit hash shown on releases page
  • chg Search input clears after each committed term, ready for the next
  • chg Search terms persist in URL as separate `?q=` parameters
  • fix Second search term now correctly applies on Enter
  • fix Search input no longer shows stale terms on page reload
  • fix Cards render at equal height within grid rows
  • internal Config pipeline uses spread pattern - new config fields flow automatically
  • internal Setup restructured into 4 explicit phases (context, config, state, effects)
  • internal `$prefs` Alpine magic eliminates duplicated preference access pattern
  • internal Source columns inferred from `sheet_column`/`compute` presence
  • internal FILTER_TYPES removed from window global, uses direct module import
  • internal Compact card template extracted to separate partial

v0.18.1 February 15, 2026

  • internal View toggle (Cards/Table) now config-driven per dataset
  • internal Datasets can restrict available views via `display.views`

v0.17.1 February 15, 2026

  • new Collapsible chip filters - long filter lists now collapse with "Show more"
  • new Filter count visible at top of mobile sidebar
  • internal Remove legacy search section filtering

v0.14.0 February 15, 2026

  • new Nav search now shows visual feedback: magnifying glass icon, dropdown arrow, and keyboard navigation highlighting
  • new Keyboard navigation in nav search: use ↑/↓ arrows to cycle through results, Enter to select
  • chg Dataset auto-discovery: new datasets no longer need individual entry files, just add to `site.yaml`
  • chg Shared dataset page data: `d.11tydata.js` handles pageTagline/pageDescription for all datasets
  • fix Consistent clear buttons across all search inputs (cross-browser compatibility)
  • fix Removed Pico's focus glow from all form inputs for cleaner UI
  • internal Consolidated duplicate search styling, removed unused CSS
  • internal Simplified `init-dataset` script: no urlPath parameter, creates minimal files

v0.13.0 February 15, 2026

  • chg **Major config consolidation:** Simplified and standardized configuration structure across all files
  • chg Dataset identity: `slug` renamed to `id`, `name` renamed to `title` for clarity
  • chg Datasets now own their metadata: `hue`, `tagline`, and `description` moved from nav to dataset config
  • chg Navigation auto-generated from collections and dataset configs (removed redundant `nav` array)
  • chg Preferences unified: all defaults now in `preferences.*.default` structure
  • chg Image config grouped under `images.*` section (moved from scattered `card.image*` fields)
  • chg UI strings namespaced under `ui.labels` and `ui.icons`
  • chg Sidebar simplified: flattened from `sidebar.sections` to direct `sidebar` array
  • fix Collection context (`?c=`) now preserved across navigation, filtering, and compare actions
  • fix Compare store reactivity: add/remove actions now update UI immediately
  • internal Cleaner config structure reduces duplication and makes data ownership explicit

v0.12.0 February 15, 2026

  • new Navigation search input always visible in header
  • new Current location shown in search input (collection › dataset)
  • new Home page with featured collections, features, and how it works
  • new All collections page at /collections/
  • new Blog listing page at /blog/
  • chg Search dropdown opens on input focus instead of button click
  • chg Search dropdown aligned left below input
  • chg "All Collections" links to /collections/ instead of home
  • chg Single-column pages constrained to 900px width
  • fix Remove Pico focus shadow on nav search input

v0.18.0 February 12, 2026 📄

  • new Card layout switcher - choose between Grid, List, and Compact views
  • new Compact mode shows 5-6 items per screen with thumbnail, title, price, and key stats
  • new Mobile auto-defaults to Compact view for faster browsing
  • new Layout preference saved per dataset and shareable via URL
  • chg Settings dropdown now shows two-tier toggle: View (Cards/Table) then Layout
  • chg Column selector hidden in Compact mode (columns are curated per dataset)

v0.17.0 February 11, 2026 📄

  • new Unified search bar with context pill in header
  • new Search items directly from header (syncs with sidebar)
  • new Multi-term search: press Enter to add terms
  • chg Context pill shows collection › dataset, × to clear temporarily
  • chg Navigation dropdown appears when search input is empty
  • internal Event-based communication between header and finder

v0.16.0 February 9, 2026 📄

  • new Touch support for resizing table columns on mobile
  • chg Full-width layout on tablets for maximum data visibility
  • chg Locked columns shrink on small screens to show more data
  • chg Cards now display in 4-column grid on wide screens
  • chg Sidebar collapses at larger screen width (1024px) for better table viewing
  • fix Filters now persist across page reload (range, threshold, checkbox)
  • fix Card and table columns now display correctly
  • fix Column reorder modal now works in both views
  • fix Reset button now clears custom column widths in table view
  • internal CSS consolidation (~200 lines reduced)
  • internal Simplified navigation template

v0.15.0 February 5, 2026 📄

  • new Table column resizing: drag column edges to adjust width, with persistent storage
  • new Visual resize indicators on table headers with hover states
  • new Column link target configuration: `new_tab: false` option for URL columns
  • fix Sticky columns on mobile: locked columns now position correctly based on actual widths
  • fix Cross-dataset links now open in same tab when configured, fixing "back to mentions" navigation

v0.11.0 February 4, 2026 📄

  • new Unified navigation dropdown replaces separate desktop/mobile navs
  • new Quick search in navigation for collections and datasets
  • new Search matches collection titles and dataset labels
  • new Search results show dataset collection context
  • new Full keyboard navigation in dropdown (↑↓ Enter Escape)
  • new Orphan datasets shown in "Other" group
  • chg Navigation shows dataset name when accessed without collection
  • chg Active dataset only highlighted within collection context
  • chg Removed desktop static nav and breadcrumb pattern
  • fix Opening nav/settings dropdown now closes sidebar

v0.10.0 February 3, 2026 📄

  • new Collections organize related datasets into curated entry points
  • new Collection landing pages at /c/{collection}/ with dataset cards
  • new Collection context (?c= parameter) preserved through navigation
  • new Fixed filters automatically scope dataset views by collection
  • new Filter options limited to collection scope for enum filters
  • new Collection-aware header navigation with dataset tabs
  • chg URL structure changed to /d/{dataset}/ for all datasets
  • chg Dataset renamed from "bags" to "onebag"
  • chg Direct dataset access (/d/{dataset}/) shows all items without collection filters
  • fix Filter state initialization now consistent across page loads
  • fix Back navigation preserves collection context
  • internal Collection theming via data-collection attribute

v0.9.0 January 31, 2026 📄

  • new Drag-and-drop column reordering in column selector
  • new Reorder panel slides out from right when "Reorder" clicked
  • new Columns grouped by card section with reordering constrained within sections
  • new Visual feedback for invalid cross-section drag attempts
  • chg Card columns now render by layout type (inline/block) rather than specific display type
  • chg New column types automatically render inline unless explicitly marked block
  • fix Column selections persist correctly across reloads
  • fix Tag whitespace rendering in dev builds
  • fix Sectioned columns respect user-defined order

v0.8.1 January 28, 2026 📄

  • new Distribution bars show percentage breakdowns on card stats
  • new Reddit mentions show sentiment distribution (positive/neutral/negative)
  • new Airline compliance shows tier breakdown (personal item vs carry-on)
  • chg Replaced compliance progress bar with segmented distribution bar
  • chg Tooltips combine highlight labels with distribution details
  • fix Share link now copies to clipboard correctly

v0.8.0 January 28, 2026 📄

  • new Unified Settings menu combines dataset options and global preferences
  • new Mobile filter toggle moved to header, stays visible when sidebar open
  • new Sticky columns and headers in table view for easier scanning
  • new Sticky item names in compare view when scrolling
  • new Fixed footer on blog and about pages
  • chg Mobile header shows logo icon with dataset colors
  • chg Expanded compare sections include all meaningful columns
  • chg Table view displays 12 default columns (was 7)
  • fix Table pagination correctly uses max_rows setting
  • fix Compare section headers maintain sticky column

v0.7.4 January 25, 2026 📄

  • new Detail page list sections can link to filtered external dataset when overflow occurs
  • new Configure `max_inline` to limit items shown inline before showing overflow link
  • new Template syntax `{{column}}` in `overflow_url` for dynamic URL generation
  • internal Detail section config now spreads all properties for easier extension

v0.7.0 January 24, 2026 📄

  • new View mode (cards/table) persists per-dataset across sessions
  • new Sort column and direction persist per-dataset across sessions
  • new Table column order persists per-dataset across sessions
  • new Filters and search persist within browser session
  • new URL reflects stored preferences on page load
  • fix Table column reorder preserved across page reload
  • fix Sidebar sort selector shows correct value after navigation

v0.6.2 January 23, 2026 📄

  • new Grouped stats on cards organize related columns into sections
  • chg Favorites and compare icons hidden when feature disabled
  • chg Glossary link hidden when no column descriptions exist

v0.6.1 January 22, 2026 📄

  • new Precision setting for number columns controls decimal places
  • fix Weight and volume display consistent decimals in table view
  • fix Detail pages respect column precision settings

v0.6.0 January 21, 2026 📄

  • new Reddit Mentions dataset showing bag discussions across Reddit
  • new Mentions link to original Reddit posts and bag detail pages
  • new Currency switching works across all datasets (USD, EUR, GBP)
  • new Filter mentions by manufacturer, sentiment, and subreddit
  • new Date display for mention verification timestamps
  • fix Column selections reset when new columns are added
  • fix Currency preference applies consistently across pages
  • chg Improved build performance with dataset caching

v0.5.0 January 20, 2026 📄

  • chg Search and sort moved to sidebar in single collapsible section
  • chg Toolbar eliminated - options dropdown now in filter summary bar
  • chg Filter toggle button mobile-only (desktop has persistent sidebar)
  • chg Config-driven title and hero columns (was hardcoded 'name' and 'price')
  • chg Detail page SEO descriptions now fully config-driven
  • new Static detail pages with pre-rendered content
  • fix Detail page size reduced from 85KB to 30KB
  • fix Filter summary layout: filters wrap left, actions stay right-aligned
  • fix No layout shift when adding/removing filters
  • fix Favorite and compare icons now highlight correctly on detail pages

v0.7.3 January 15, 2026

  • new Sources accept arrays to combine data from multiple files
  • new Automatic deduplication by `_key` when merging sources
  • new Combined r/onebag and r/heronebag data in mentions dataset
  • internal Multi-source support works for JSON, CSV, and Google Sheets
  • internal Parallel fetch with merge logic in source dispatcher

v0.7.2 January 15, 2026

  • new Subreddit displays as `r/onebag`, author as `u/username`
  • new `options_format: titlecase` config for explicit label formatting
  • fix Enum options no longer auto-apply titleCase to labels
  • fix Enum card display respects `display: labeled` setting
  • internal Add `prefix` compute function for prepending values
  • internal Self-referencing compute transforms now supported

v0.7.1 January 15, 2026

  • fix Reddit mentions on detail pages display post details correctly
  • fix Google Sheets dates display as formatted dates instead of `Date(2024,6,3)`
  • fix Detail page date fields show proper locale formatting
  • internal Nested enrichment pattern for array field items
  • internal Google Sheets date parsing converts to ISO strings at source

v0.4.1 January 15, 2026

  • new Static detail pages for faster loading and better SEO
  • fix Related items now display images correctly
  • fix Favorites and compare state restore after back navigation
  • fix Detail page config loads correctly on all pages
  • chg Consolidated store event handlers for cleaner code

v0.4.0 January 15, 2026 📄

  • new Reddit mentions on bag detail pages with sentiment tags
  • new Filter and sort by Reddit mention count
  • new Currency switching: USD, EUR, GBP
  • new Price highlights work in all currencies
  • new Collapsible mention list with "Show all" toggle
  • fix Price sorting works correctly with currency switching
  • fix Unit and currency preferences persist across sessions
  • chg Display values pre-computed at build time for faster rendering
  • chg Simplified related items display (name and image only)

v0.3.0 January 15, 2026

  • new About and Releases pages with sidebar footer links
  • new Toggle switch style for Show Discontinued filter
  • fix Discontinued toggle now correctly shows/hides items
  • fix Theme and unit preferences persist across all pages
  • fix Favorite and compare icons visible on detail page
  • chg Progress bars moved above text on cards
  • chg Softer compliance bar colors

v0.2.0 January 9, 2026 📄

  • new Airlines dataset with carry-on and personal item limits for 100+ airlines
  • new Dedicated compare page with shareable URLs
  • new Filter by specific airlines with searchable dropdown
  • new External links to vendor sites on cards and tables
  • new Markdown support in dataset descriptions
  • new Text display type for notes and feature summaries
  • fix Saved presets now include search terms
  • fix Compare bar updates after browser back navigation
  • fix Mobile navigation links visible in header
  • chg Sort options now saved with presets
  • chg Lighter main font for improved readability
  • chg Rounded filter chips in sidebar

v0.1.1 December 15, 2025

  • new Highlight badges for top 10 values (price, weight, mentions)
  • new Column help tooltips on filter labels
  • new Filter summary chips with one-click removal
  • new Drag to reorder table columns
  • new Keyboard navigation in airline search dropdown
  • new Table view row limit with filter prompt
  • fix Airline names display instead of codes
  • fix Dimension columns display correctly on cards
  • fix Column selector only shows when columns available
  • chg Cards and tables sort independently
  • chg Dataset description expandable in header
  • chg Sidebar sections remember open/closed state

v0.1.0 December 15, 2025 📄

  • new Onebag dataset with 380+ travel bags
  • new Filter by size, weight, features, and airline compliance
  • new Airline fit threshold filter (Personal Item → Any Size)
  • new Card and table view options
  • new Select which columns to display
  • new Compare up to 4 bags side-by-side
  • new Save favorites locally
  • new Save and name custom filter presets
  • new Quick filter presets (Underseat, Ultralight, Popular, Budget)
  • new Item detail pages with related bags
  • new Light/dark theme with auto-detect
  • new Metric/imperial unit switching
  • new Shareable filter URLs
  • new Pagination with load more

Column Glossary