Tuna Radio
A worldwide radio app: 50,000+ live stations from an open directory, a spinning globe for discovery, a passport of countries you’ve listened to and a shareable Wrapped.



Radio, with a reason to travel the dial.
Problem
Radio apps are either endless station lists or ad-heavy players. Tuna had to make discovering live radio from other countries feel playful without giving up a fast, reliable player.
Approach
React Native for iOS and Android with a persistent mini player, background and lock-screen playback, a sleep timer and alarms. Station data comes from the open Radio Browser directory; Firebase handles sign-in and syncs favourites and stats. Discovery is gamified with Spin the Globe, World Passport badges and Tuna Wrapped, and a live chat with reactions and song requests runs on my own server. The interface ships in ten languages with dark and light themes.
Result
Store listing, screenshots, review notes, privacy policy and terms are ready in ten languages; the app is in its App Store release phase.
What’s inside
- 50,000+ live stations, browsable by country and genre
- Spin the Globe random discovery
- World Passport badges and listening stats
- Live chat, emoji reactions and song requests
- Ten languages, dark and light themes
Stack
Under the hood
The code layer of this project — modules and moving parts.
app React Native · Expo → iOS & Android audio background playback · lock screen · sleep timer · alarms data Radio Browser directory · Firebase Auth · Firestore sync social live chat · emoji reactions · song requests (own Node backend) billing RevenueCat · weekly plan with free trial i18n en es pt fr de it tr ru ar ja