Reading progress lives in localStorage so sorting is done client-side. On page load, JS reads the reading_progress map, moves any matching book cards into a 'Continue reading' grid above the main grid, and reveals an 'Available' heading for the remainder. Books with no saved progress are unaffected and no server changes are required.
64 KiB
64 KiB