essaidi.me
Engineering work needed a public surface that could carry case studies, writing, and tools without looking like a template.
Loading
A little nostalgia project: a music player for Arabic anime theme songs from the 1990s and 2000s.
How the player works
Golden Generation (ggen)Catalog
Bundled JSON holds titles, artists, keywords, and media URLs—not audio files.
Player
React Context controls one HTMLAudioElement, with separate playback and progress updates.
Media
A dedicated CDN serves cover art and MP3s. The browser streams audio directly from its URLs.
Audio element → CDN → 206 Partial Content
Requests with a Range header bypass service-worker caching and stay on the browser’s native streaming path.
Full CDN GET → 200 response → Cache API
The service worker only handles CDN /songs/ and /images/ GETs, caching complete responses rather than partial audio.
Favorites & preferences → Zustand → localStorage
Playlists, recent songs, resume position, and player preferences stay in this browser.
I built Golden Generation for fun, as a place to revisit nostalgic Arabic anime themes. You can browse the songs, search in Arabic or English, save favorites, make playlists, and share a song with someone. It also gave me a chance to work on the small details of a music player, like keeping playback going while browsing and remembering where you left off.
Engineering work needed a public surface that could carry case studies, writing, and tools without looking like a template.