Folk Lovers

Since 1961

Changelog

All notable changes to Folk Lovers are documented here.

December 24, 2025
Added
  • Custom favicon with guitar icon on brown background (PWA-ready with all sizes)
  • New "Add a cover" flow: search existing songs or create new ones in a single form
  • Song search autocomplete for faster song selection
  • Matomo analytics tracking (privacy-friendly)
  • Community dropdown in header with What's New, Roadmap, and Feedback links
  • Public Roadmap page showing planned features (/roadmap)
  • Feedback page for bug reports and feature requests (/feedback)
  • Database-backed feedback system: users must be authenticated, feedbacks stored in database
  • Admin feedback management: view, filter by status, update status, delete feedbacks
Fixed
  • YouTube URL normalization: youtu.be links and tracking parameters now handled correctly
  • Delete actions in admin panel no longer show false errors
Changed
  • Year is now optional when creating songs (useful for traditional folk songs)
  • "Suggest song" button renamed to "Add a cover" with simplified flow
  • Renamed "Blog" to "Articles" throughout the site (route changed from /blog to /articles)
December 20, 2025
Added
  • Song sorting: alphabetical (A-Z, Z-A), by year, by date added
  • Admin tables now sortable by clicking column headers (songs, covers, users)
  • CLAUDE.md with project instructions for Claude Code
  • `prod:delete` task for removing songs from production
  • `prod:create_article` task for publishing articles to production
  • Blog feature with full article management (Articles with markdown content, draft/published status, cover images, and tags) (Admin article editor with live markdown preview toggle) (Public blog pages at /blog with tag filtering and pagination) (First article: "What is Folk Music?")
  • Cover image credit field on articles (displays as figcaption)
  • Mobile responsive menu (hamburger) in header with navigation, auth links, and user profile
  • YouTube thumbnails on song cards in /songs listing
  • Auth dialog when voting: unauthenticated users see sign-in dialog, vote executes automatically after login
  • Tailwind Typography plugin for proper prose styling
Improved
  • Clearer sort labels: "Recently added" vs "Year (newest)" to avoid confusion
  • DEPLOY.md updated with GHCR deployment architecture (CI builds images, server pulls)
  • Article page typography: proper heading hierarchy, spacing, and reading width
  • Google Sign-In button now responsive (adapts to container width, max 400px)
  • Utility functions `getYouTubeVideoId()` and `getYouTubeThumbnail()` for thumbnail URLs
Changed
  • Logo icon changed from Music to Guitar across all pages (header, footer, home, login, register)
December 19, 2025
Added
  • Persistent audio player bar (plays across page navigation, like France Inter)
  • Play queue with add-to-queue functionality on covers
  • Original version now displayed as first "cover" with distinctive amber badge
  • Custom 404 page with vinyl record illustration
  • Custom 500 error page with scratched record theme
  • Changelog page (/changelog)
Changed
  • Unified data model: original song version is now a cover with original flag
  • Song detail page renamed "Covers" section to "Versions"
  • Thumbnails now served directly from API instead of client-side extraction
Improved
  • Cover cards now show play/pause state and queue controls on hover
  • Original versions always appear first, regardless of vote count
  • Faster deployments: images built in CI, server just pulls (~30s vs ~5min)
December 18, 2025
Added
  • Users can submit new songs via /songs/new form (requires authentication)
  • Users can add covers to existing songs with YouTube URL
  • Playable cover cards on homepage (top covers section)
  • Admin user management interface (/admin/users) with role editing
  • Search and pagination on songs listing page
  • Admin dashboard counters (songs, covers, users)
  • Filter covers by song in admin panel
Changed
  • Translated entire site from French to English (UI and seed data)
  • Wait for database migrations before starting frontend in deployment
December 17, 2025
Improved
  • Lighthouse performance: moved Google Fonts from @import to preconnect + link tags
  • Lighthouse performance: TanStack Devtools now conditionally loaded only in development
  • Lighthouse CLS: added explicit width/height dimensions to YouTube thumbnail images
Added
  • Google OAuth authentication (Sign in with Google)
  • Google Sign-In button on login and register pages
  • Tests for Google auth endpoint and service
Fixed
  • Votes +1/-1: user vote state now persists after page reload
Changed
  • Renamed "Folklovers" to "Folk Lovers" everywhere
  • Reduced deployment downtime with rolling restart
December 17, 2025Initial Release
Added
  • Folk Lovers website launch
  • Browse and discover folk song covers
  • Vote on covers (upvote/downvote, Stack Overflow-style)
  • Song pages with embedded YouTube players
  • Cover rankings by community votes
  • User authentication (email/password registration and login)
  • Responsive design inspired by 1960s Greenwich Village folk scene
  • Admin panel for content management (songs, covers)
  • Docker-based deployment with Traefik reverse proxy
  • CI/CD pipeline with GitHub Actions