Hard-coded track→room mapping: Move the track-to-room mapping in trackToRoomElements() out of js/utils.js and into _config.yml (under a tracks key). This will make it easier for organizers to update room assignments for new conference years without touching JavaScript.
Sponsor Tier Logic in HTML: Refactor _includes/sponsors.html to be purely data-driven. Move column sizes (col-lg-3, etc.) and CSS classes for each tier directly into _data/sponsors.yml so the template becomes a simple, logic-free loop.
Consolidate Dynamic “Add Speaker Card” logic:js/schedule.js and js/speakers.js still share code for building the actual speaker cards (headshots and ribbons). Extract this into a shared createSpeakerCard() utility in js/utils.js.
Content & Backlog Fixes
Image Optimization: Document the workflow for resizing and compressing images to .webp format and add a helper script for automated optimization.
Dockerized Build: Switch the local development environment to a Docker container that pins the Ruby and Jekyll versions to match GitHub Pages exactly.