Refrakt Audio

A platform agnostic music-sharing tool

Refrakt Audio music sharing tool
  •  

    Personal Projects

  •  

    User Experience

  •  

    Product Design

  •  

    Vibe Coding

I built Refrakt to fix a simple group chat problem: one music link should work for everyone. I used AI-assisted vibe coding to turn that idea into a shareable bundle of platform links you can paste into a text.

TL;DR

  • Sharing music across friends on different services is annoying. Refrakt turns one link into a clean bundle you can paste into a text.
  • Real testing surfaced the hard parts: Qobuz coverage, 15-platform overload, and Spotify’s share UI.
  • The roadmap became clear: web as the power tool, shortcuts as a bridge, native share extension for true “share from anywhere.”

Refrakt Audio takes a single music link and generates a clean, text-message-ready bundle of platform links so recipients can tap the service they already use. It’s designed to keep people in the conversation and eliminate the re-searching step that happens every time a link comes from the “wrong” platform.

This started as a group chat problem. Someone shares a Spotify link. Someone else is on Apple Music. Another person uses YouTube Music. Now everyone does the same annoying dance: jump apps, re-search, and sometimes land on the wrong version. I wanted a paste-once tool that turns one music link into a share bundle that’s ready to text, so the group can keep moving.

The Problem / Challenge

Music sharing only feels effortless when you’re sharing with someone on the same platform. Otherwise it turns into homework. You get a link you can’t open, you bounce between apps, you re-search, and half the time you’re not even sure you found the same version. From there it gets worse, because sharing is designed to happen inside mobile apps. Even the external share functions are designed to end up back in the same app that orignated the link.

Constraints

This project was stateless by design: no accounts, no saved history, no user profiles. Analytics were allowed, but only in anonymous form (funnel and reliability tracking without identity). The output had to be the product: a share bundle formatted for SMS/iMessage/DM. Entry points mattered too—people share from inside Spotify, Apple Music, and YouTube Music, not from a landing page. The system supports track, album, and artist links, and the platform scope grew to 16 services total (15 automatic via API plus one best-effort add-on).

Product Development and Brainstorming

Before building anything, I leveraged an AI-assisted product workflow as a way to move fast from idea to prototype. The first step was getting crystal clear on the output. The product isn’t a destination page or a single hub link. The product is a clean, copy/paste bundle of platform links, ready for text messaging.

  • Defined the core user journey and success criteria
  • Researched music APIs and discovered Song.Link
  • Chose a lightweight delivery format (website + browser extension) for usable-anywhere access for Phase 1.
  • Set privacy guardrails early (no profiles), and no personal data collection
  • Established the visual direction (Dark Prism Glass) so the tool felt like a product, not a utility page.
  • Explored naming around refraction/splitting rather than generic link or music language.

This early brainstorming phase produced requirements, journey insights, constraints, and design guidelines that could be handed directly to a coding agent.

What I built (and how it evolved)

I shipped the first version as a lightweight web tool: paste a music link, resolve it via Song.link/Odesli, and copy a clean share bundle into a text. From there, real constraints reshaped the product fast.

First, testing exposed a coverage gap. One tester used Qobuz, which wasn’t supported by the API. A “Qobuz search link” fallback didn’t meet the goal because it still forced re-searching. I added a best-effort Qobuz metadata lookup so Qobuz links could generate the same cross-platform bundle instead of a degraded experience.

Next, scale became a UX problem. Once the resolver returned 15 platforms, the bundle got harder to scan. More coverage made the message worse. In the web UI, I added platform selection so senders could choose which services to include and keep the share bundle readable in real text threads.

On mobile, I explored a near-native entry point with iOS Shortcuts. The Shortcut accepts a shared/copied link and calls the same backend endpoints as the web app, returning the same share bundle. It’s convenient, but less customizable and doesn’t support link shortening. It also surfaced a discoverability issue: on iOS it’s often buried behind “More,” and apps like Spotify use custom share menus that hide shortcuts as immediate options. The flow works, but you have to remember it exists and know where to find it.

Next, I’m exploring two paths to make the entry point truly native and consistent: (1) React Native share-sheet/extension packages for cross-platform support, and (2) a fully integrated native iOS app + Share Extension for the most reliable “share from anywhere” experience.

Key UX Decisions

  1. The share bundle is the product. The destination is the message thread.
  2. Primary pattern is Copy/Paste the link first, search second. Links are higher-intent and more reliable.
  3. Web prioritizes control + cleanliness. Customization and shortening improve readability for heavy sharers.
  4. Shortcuts prioritize convenience with tradeoffs. Closer to native, but constrained and less flexible.
  5. Platform constraints are product requirements. Spotify share behavior directly shaped the roadmap.
  6. Custom integrations must fail gracefully. Best-effort Qobuz support improves reach while acknowledging fragility.
  7. One backend, many clients. Web app, shortcut, and mobile track all share Express endpoints.

Testing + Validation

I ran informal testing with seven friends across mixed streaming platforms. They generated and shared bundles from multiple source apps, and recipients opened the same content without re-searching.

Outcomes / Impact

Refrakt Audio delivers an end-to-end flow: paste/search → resolve → copy/paste share bundle. It supports 16 platforms, including Qobuz as a best-effort extension. Sharing is cleaner through formatted share text and URL shortening on the web. The roadmap shifted early based on real distribution constraints, and the core experience was validated in real message threads with mixed-platform users.

What I Learned

The hardest part wasn’t any single feature. It was staying oriented while the build path kept changing. As the product bumped into real constraints, I had to move between environments and approaches without losing the thread of what the experience was supposed to do. The win was keeping the product goal stable while the technical plan shifted under it.

  • Keep the web version as the power tool (customization + tidy output).
  • Ship browser-extension access for anywhere use.
  • Build native iOS Share Extension for reliable share-sheet entry.
  • Use anonymous analytics to track coverage, speed, and failure points as platform behavior evolves.

I also learned that the idea isn’t as niche as it sounds, but execution and discoverability are everything. After multiple iterations on my own, I randomly stumbled on a TIDAL feature that can generate other-platform links. It was there, but not readily apparent. That reinforced the core need Refrakt is solving: make cross-platform sharing obvious at the moment someone hits Share, and format the output so it’s actually useful in a text thread.

How I used A.I.

I used AI as a speed layer, not a decision maker. It helped me move quickly through setup, boilerplate, and repetitive integration work so I could focus on the share experience. I treated AI outputs as drafts, validated everything in context (especially on iPhone), and kept product judgment and taste with me. My workflow stayed simple: generate a first pass fast, test it in context, then revise until it behaves reliably.