Samgeet

Open-source Android music player ·Creator · design, app, backend

An open-source, ad-free music player for Android: up to 320 kbps streaming, offline downloads, mood-matched autoplay, on-device taste learning and a library that syncs across phones.

Flutter Dart PHP MySQL Android
Architecture of Samgeet

01 — What I built

02 — Why I built it

I wanted a music player without ads that still felt smart: good recommendations, a library on every phone I use and sound I could tune. Samgeet is that app, built end to end and released as open source under the MIT licence.

03 — How it is put together

The Flutter app is split into four layers: data (API client, models, library store, account sync, share links), engine (taste profile, a pure ranking recommender and candidate gathering), player (queue, autoplay refills, sleep timer, error recovery, equalizer) and UI. Keeping the recommender a pure function made it easy to unit-test offline.

04 — Privacy and accounts

Signing in needs only an email and a password. The password never leaves the phone: PBKDF2 with 150,000 rounds turns it into the account key and the server stores only a hash. Every API request is signed with a key built into release builds, so the server only answers the app, and each account can only reach its own data.

05 — Details that took the longest

Background playback had to survive the app being swiped away, with working lock-screen controls on Android 13+. A release-only bug, where the resource shrinker deleted the notification icons the audio plugin loads by name, was fixed with an explicit keep rule. The layout switches from a bottom bar to a side rail at 720 dp and was verified on phones and tablets in both orientations.

Next step

Building something similar?

Open to full-stack & backend engineering roles, remote or on-site. I usually reply within a day.

More case studies