SUNOLINK · AI MUSIC · DAW WORKFLOWS
Suno can generate a track in under a minute — getting that track into a session took longer. The friction wasn't the AI; it was everything between the browser and the DAW. SunoLink is the bridge I designed and built solo: a native macOS app paired with a plugin that captures, organizes, and hands off audio, so the momentum never leaves the session.

01 / THE PROBLEM
After more than 10,000 generations on Suno, I kept hitting the same wall: the music was done in seconds, but landing it in a session meant bouncing between browser tabs, a downloads folder, and drag-and-drop exports — every single time. The problems were always the same three:
Producers live inside their DAWs. Bring generation into that space, and you get faster iteration, deeper experimentation — entirely new workflows.

02 / THE ORIGINAL APPROACH
The obvious architecture, too: a lightweight VST embedding Suno directly inside the DAW — browse generations, manage downloads, drag audio straight into the session. I built the webview, the download system, and the plugin workflows… then hit the wall.
The wall: JUCE/VST plugins can't reliably support native drag-and-drop into DAWs — the exact interaction everything hinged on. Forcing it meant shipping something brittle.

03 / THE PIVOT
Instead of forcing the limitation, I split the product around it: a native macOS app paired with a plugin bridge. The SwiftUI app embeds and automates the key Suno interactions; the JUCE plugin captures host audio and hands it back as validated WAV — the two connected by a versioned protocol:
04 / WHAT I BUILT
In about six weeks I shipped every layer myself — desktop UX, plugin internals, the protocol between them, and signed release packaging:
~29 commits · ~25.8k insertions · single primary contributor.