Songmark

Turned the tracks I kept losing across YouTube, Shazam and SoundCloud into Songmark, an iOS app designed and built with Claude Code. Share any link and it lands in one library, with crates to group it and previews to hear it.

Role
Design Engineer
Year
2026
Platform
iOS
Tools
Xcode, SwiftUI, SwiftData, Metal, Claude Code
Placeholder: a laptop showing wireframe sketches of a website.

It started as my own problem. The music I wanted to remember was scattered: sets and edits saved on YouTube, songs I’d caught with Shazam, tracks liked on SoundCloud. Each app kept its own list, none of them talked to each other, and going back to find something meant searching three places and usually giving up. I wanted one place that held all of it, whatever app a track came from.

Songmark lives in the share sheet, so saving happens right where the music is. Share or paste a YouTube, Shazam, SoundCloud or Spotify link and it fills in the title, artist and cover on its own, from public oEmbed and Open Graph data, with no accounts or API keys. A whole YouTube playlist can come in at once, skipping anything already saved.

Once everything sits in one library, crates give it shape: hand-picked collections like “Afro House” or “Sunset warm-up”, where a track can live in several at once. Each crate gets a cover, either a stack of its newest artwork, a gradient and icon, or a photo of your own. Search, sorting and filters by source or tag make any track easy to find again.

The first launch got the most craft. I explored three welcome screens: rows of artists and genres drifting past in opposite directions, which shipped as the default, and a vortex where album covers spiral out of a dark tunnel around the headline. For the vortex, a small Metal shader twists the whole layer as it arrives, then unwinds to leave the covers crisp; the covers blur with depth, all drawn in a single GPU pass, and one variant pulses them to a 120 BPM kick with a heavier downbeat. With Reduce Motion on, everything holds still.

I designed and built it in Xcode with SwiftUI and Claude Code, working in the running app rather than static mocks. The app and its share extension write to one SwiftData store, and Apple’s free 30-second previews let you hear a track before opening it anywhere else.

The three lists became one. Whatever app a track was saved in, it now lives in the same library, grouped the way I actually listen, and a preview is a tap away.

Full playback stays with the apps that own it: a track opens in Apple Music, YouTube or Shazam when you want the whole thing. Keeping it that way kept Songmark small and focused on its job, remembering music, not replacing the apps it comes from.

It was also my most complete end-to-end build so far: every interaction, empty state and edge case resolved in code, on the device, rather than left in a design file.

Next projectLuma