andymadge.github.io Development Guidelines

Auto-generated from all feature plans. Last updated: 2025-11-25

Active Technologies

Project Structure

_djmixes/          # Jekyll collection: one .md file per mix
_layouts/          # mix.html, mix-index.html
_includes/         # audio-player.html, tracklist.html, mix-cover.html, mix-image.html, wavesurfer-loader.html
_sass/             # music-player.scss
assets/js/         # audio-player.js, playback-persistence.js, track-highlighter.js
assets/djmixes/    # per-mix waveform .dat files
scripts/           # add-mix.sh, generate-waveforms.sh

Commands

Development server (native Ruby — preferred):

bundle install             # first time or after Gemfile changes
bundle exec jekyll serve --livereload  # start dev server at http://localhost:4000

Development server (Docker — alternative):

docker compose up          # start dev server at http://localhost:4000
docker compose up --build  # rebuild image first (after Gemfile changes)
docker compose down        # stop

Build only (native):

bundle exec jekyll build

Build only (Docker):

docker compose run --rm jekyll bundle exec jekyll build

Code Style

Ruby (Jekyll 3.9+), JavaScript ES6+, Liquid, SCSS: follow standard conventions for each language

Recent Changes