SongFlip – Zero-Click Music Link Redirector & Universal Playlist Engine

Inspiration

Music is one of the most personal things we share with friends, family, and communities. Yet, music sharing across different platforms has been frustratingly broken for over a decade.

We’ve all experienced it: a friend sends a Spotify playlist in WhatsApp, but you subscribe to YouTube Music. Your partner sends an Apple Music album, but you’re on Tidal for Hi-Fi audio. Tapping that link breaks your listening experience completely—you’re thrust into a web browser preview, prompted to create an unwanted free account, or forced to manually search for each song.

We asked a simple question: Why can't our phones simply play songs and playlists in the music app we already pay for and love—with zero extra clicks?

That frustration sparked the creation of SongFlip.


What it does

SongFlip is an open-source, zero-click music link redirector, playlist converter, and universal sharing suite for Android and iOS:

  1. Zero-Click Interception: When you tap a supported link (Spotify, Apple Music, YouTube Music, Deezer, Tidal, Amazon Music) in any messaging app, SongFlip intercepts it under the hood and opens it in your chosen player in under 30 milliseconds.
  2. Full Playlist & Album Conversion: Converts entire multi-track playlists across platforms in seconds, directly opening or queueing them in your destination streaming service.
  3. True Offline-First Resolver: Songs and resolved links are cached locally on your device in a persistent L1 storage layer. Even without an active internet connection, previously resolved tracks play instantly.
  4. Universal Smart Share Pages (songflip.link/s/): Generates a single universal link with rich social previews (OpenGraph) that lets each recipient choose their preferred music service.
  5. Predictive Clipboard Smart-Banner: Automatically detects copied music links in the background and presents a floating 1-tap launcher.
  6. SongFlip PRO (Powered by RevenueCat): Unlocks full playlist conversions, global cloud caching (<10ms resolution), unlimited history, and customized per-service routing rules.

How we built it & RevenueCat Integration

We architected SongFlip as a high-performance cross-platform system with a modern monetization backend:

  • Monetization Engine (RevenueCat):
    • Integrated the RevenueCat Purchases SDK on Android & iOS to power dynamic paywalls, monthly passes, and lifetime PRO access.
    • Leveraged RevenueCat's dynamic Offerings to test pricing models on the fly without app updates.
    • Built an atomic voucher & promo engine using Firebase Cloud Functions connected to the RevenueCat REST API, enabling secure device-bound promotions and instant entitlement granting.
  • Shared Core Engine:
    • Built with Kotlin Multiplatform (KMP) and Ktor, sharing 100% of URL parsing, playlist batching, regex heuristics, and telemetry between Android and iOS.
  • Modern Mobile UIs:
    • Android: 100% native Jetpack Compose, Material You dynamic theming, and Android 13+ Per-App Language support.
    • iOS: Native SwiftUI, iOS Share Sheet Extension, Action Button / Shortcuts App Intents, and App Group storage.
  • Multi-Tier Caching & Offline Pipeline:
    • L1 Cache (Offline): Ultra-fast local SQLite/in-memory LRU cache (<5ms) for true offline capability.
    • L2 Cache (Cloud): Server-side Cloud Firestore cache (l2_song_cache) deployed in Frankfurt (europe-west3) with automated TTL pruning.
    • Multi-Source Resolver: Direct Odesli/Songlink extraction combined with iTunes Search, Deezer API, and YouTube scrapers with dead-link oEmbed guards.
  • Privacy-First Analytics: Completely anonymous, 100% GDPR-compliant telemetry using self-hosted Aptabase and Umami.

Challenges we ran into

  1. High-Speed Playlist Batching & Rate Limits: Parsing and resolving 50+ tracks simultaneously without hitting downstream API rate limits or degrading UI responsiveness. We solved this with a reactive concurrency pipeline in Kotlin Coroutines that chunks requests and leverages L1/L2 caches before querying upstream resolvers.
  2. OS-Level Link Ownership (Android 12+ & iOS Universal Links): Modern operating systems enforce strict domain verification (Digital Asset Links and AASA). We engineered frictionless entry points: instant Share Sheet (ACTION_SEND) deep linking, quick tile shortcuts, and clipboard prefetching.
  3. Dead-Link Traps & Regional Metadata: Matching rare tracks or regional releases often returned fan covers or YouTube Shorts. We created automated oEmbed validation guards and regex cleaners that discard invalid media before caching.

Accomplishments that we are proud of

  • First Paying Customers from Day 1: Thanks to RevenueCat's frictionless checkout and paywall architecture, we converted our first beta users into paying PRO subscribers within hours of launch.
  • Full Playlist Conversion: Scaled from single-track redirection to multi-platform playlist transfers with zero audio interruptions.
  • Instant Offline Execution (<5ms): Offline-first architecture ensures cached tracks launch instantly even in airplane mode.
  • Full 24-Language Parity: Translated every string across Android & iOS into 24 native languages (including RTL Arabic and East Asian locales).
  • Rock-Solid Reliability: Over 60 automated unit tests verifying multi-platform links, playlist edge cases, and regional domain variants.

What we learned

  • RevenueCat eliminates monetization friction: Integrating in-app purchases natively across two platforms is notoriously painful. RevenueCat allowed us to focus 100% on core product UX while giving us enterprise-grade receipt validation, cross-platform entitlement sync, and real-time subscription analytics out of the box.
  • Zero-click UX requires defensive parsing: Streaming services have dozens of domain variations (music.amazon.de, geo.music.apple.com, open.spotify.com/intl-de/). Multi-tier heuristic fallbacks are crucial for 99.9% resolution success.
  • Offline-first builds user trust: Users don't care about API latency; they expect their music to open instantly. Caching aggressive resolution hashes locally made the app feel like a native OS feature.

What is next for SongFlip

  • Fuzzy Smart Playlist Matching: Smarter acoustic fingerprinting for live versions, acoustic covers, and unreleased bonus tracks.
  • much more

Built With

Share this project:

Updates

Submission history