[{"data":1,"prerenderedAt":122},["ShallowReactive",2],{"project:cloud-player":3,"project-index":51},{"id":4,"title":5,"aTitle":6,"body":7,"categories":27,"description":30,"extension":31,"image":32,"images":33,"link":32,"meta":34,"navigation":35,"order":36,"path":37,"role":38,"seo":40,"slug":41,"stem":42,"summary":43,"tags":44,"team":49,"thumb":32,"__hash__":50},"projects\u002Fprojects\u002F1021_cloud_player.md","Cloud Player - Imraan","Cloud Player",{"type":8,"value":9,"toc":23},"minimark",[10,14,17,20],[11,12,13],"p",{},"A personal project, and the one I actually use. Cloud Player is an audiobook player that runs on the desktop — Next.js wrapped in Electron — and on the phone, as a React Native app. Both talk to the same Firebase backend, which holds the library and playback state.",[11,15,16],{},"It exists because audiobooks are how I get through most of my reading, and the players I tried treated a twelve-hour book like a long song — losing position between devices, or scattering a series across a library designed for three-minute tracks. The interesting problems in an audiobook client are all about resumption: remembering exactly where you were, keeping that in sync when you move between machines, and making a large library navigable when every item is hours long.",[11,18,19],{},"Having both a desktop and a mobile client is the whole point rather than a bonus. Listening moves between a laptop in the evening and a phone on the way to work, so position has to survive the handover — which makes playback state something the backend owns, not something either client keeps to itself.",[11,21,22],{},"Building the desktop side as an application rather than a web page was also deliberate: local playback, offline access to downloaded files, and a window that behaves like an app rather than a tab. It is small, it is mine, and it is where I try things that would be reckless to try on a client's system.",{"title":24,"searchDepth":25,"depth":25,"links":26},"",2,[],[28,29],"Desktop app","Mobile app","A desktop and mobile audiobook player backed by cloud storage, built with Next.js, Electron and React Native","md",null,[],{},true,1021,"\u002Fprojects\u002F1021_cloud_player",[39],"Fullstack developer",{"title":5,"description":30},"cloud-player","projects\u002F1021_cloud_player","A desktop and mobile audiobook player backed by cloud storage",[45,46,47,48],"Next.js","Electron","React Native","Firebase",[],"m4nggMe-IUxKR7MzHT8h1-7cj_w6oPW0J2CnEC1TPEI",[52,55,58,61,64,65,68,71,74,77,80,83,86,89,92,95,98,101,104,107,110,113,116,119],{"slug":53,"aTitle":54},"wc2026-predictions","ADK Synergy World Cup 2026 predictions",{"slug":56,"aTitle":57},"pabx-cdr-analysis","PABX call record analysis",{"slug":59,"aTitle":60},"postgres-ha","PostgreSQL high availability platform",{"slug":62,"aTitle":63},"ai-narration","AI narration and text-to-speech platform",{"slug":41,"aTitle":6},{"slug":66,"aTitle":67},"brainspine-app","Maldives BrainSpine conference app",{"slug":69,"aTitle":70},"adk-token-display","ADK Hospital doctors room token display",{"slug":72,"aTitle":73},"adk-signage","ADK Hospital signage TV app",{"slug":75,"aTitle":76},"adk-qms","ADK Hospital queue management system",{"slug":78,"aTitle":79},"adk-hbot","ADK Hospital Hyperbaric Oxygen Therapy",{"slug":81,"aTitle":82},"clinical-incident-report-portal","ADK Hospital clinical incidents portal",{"slug":84,"aTitle":85},"porter-app","ADK Hospital porter app",{"slug":87,"aTitle":88},"majeedi-run","Majeedi Run portal",{"slug":90,"aTitle":91},"cmca-website","China Maldivian Cultural Association website",{"slug":93,"aTitle":94},"brainspine23","Brain & Spine conference 2023 website",{"slug":96,"aTitle":97},"sih-e-library","Shafi’a Institute of Health e-library",{"slug":99,"aTitle":100},"adk-lucky-draw","ADK Hospital lucky draw app",{"slug":102,"aTitle":103},"acc-cms","Anti-Corruption Commission Case Management System",{"slug":105,"aTitle":106},"brainspine22","Brain & Spine conference 2022 website",{"slug":108,"aTitle":109},"icom-tours","iCom Tours website and portal",{"slug":111,"aTitle":112},"dhuvaahithun-app","Dhuvaahithun app",{"slug":114,"aTitle":115},"jsc-cms","Judicial Service Commission Case Management System",{"slug":117,"aTitle":118},"motca","Ministry of Transport and Civil Aviation website",{"slug":120,"aTitle":121},"aonews","AO News",1786359403263]