Swayzio
An AI-native asset management platform for producers, artists, A&Rs, and publishers. GPU models tag every track, and an agent runs your catalog but asks before it changes anything.

- Next.js
- Postgres + pgvector
- GKE GPUs
- AI SDK
Swayzio is an AI-native asset management platform for producers, artists, A&Rs, and publishers: a Dropbox built for music files. It handles the massive, messy metadata and rights questions that come with a real catalog, and agent-powered search and analytics make all of it usable.
The platform is home to over 100,000 songs across every global music market. We’re an official partner of Audiomack and backed by Growth Factory Ventures.
- Songs on the platform
- 100K+
- Sync Money community
- 90K+
- Data points per track
- 80+
- Commits in v2
- 947
Why it exists
Professional music lives in folders, email threads, and spreadsheets. A producer has thousands of bounces named final_v7_REAL.wav, a manager has split sheets in a Google Doc, and a label has no idea which tracks were sent to whom.
With Swayzio you drag in audio and get back a searchable catalog. Every track is analyzed for key, BPM, genre, mood, and instrumentation, separated into stems, transcribed for lyrics, and embedded so you can search by how something sounds. On top sit split sheets, shareable packs with analytics, and an AI agent that can do real work in your catalog but has to ask before it changes anything.
The current version was rebuilt from the ground up. I designed and built all of it: the product, the API, the GPU pipeline, and the design system. I also moved existing users off the legacy stack and onto the new one.
What happens to a track
Upload
Drag in audio. Swayzio stores the original and starts analysis in the background, so you can keep working while it runs.
Analyze on GPUs
A job fans out to three model services: tags, key, BPM, and fingerprints; stem separation and Whisper lyrics; and two kinds of audio embeddings for “sounds like” search.
Organize
Tracks land in a catalog with filters for everything the models found, plus libraries, versions, and structured split sheets that also render as PDFs.
Share
Curated packs go out as short links. Every play and click comes back as analytics by geography and device.
Ask
The agent searches, tags, builds packs, and flags missing rights metadata, using the same permissioned API as the app.
An agent that asks first
Letting an LLM loose on someone’s unreleased music and ownership splits is a trust problem before it’s a model problem. Every one of the 31 agent tools declares its access level, whether it reads or writes, its limits, and what it must redact. The agent never sees a raw storage URL or another user’s data.
Writes need a server-issued approval bound to the user, the tool, and a hash of the exact input. If the model tries to change one character after you click “Add to pack,” the approval no longer matches and the call is refused.
Sync Money
Alongside the product we run @SyncMoney, a community of 90,000+ producers, songwriters, and artists. It’s where we teach how licensing works across the music industry and bring artists sync opportunities directly, without a middleman.
Built on trust and transparency, it has landed major brand licensing deals for its members, including Coors Light, Tommy Hilfiger, and many TV and film placements. Along the way we’ve built close relationships with music supervisors and media companies across North America and Europe.
- 01Instagram
Education
Teaching how licensing works across the music industry, in public.
- 0290K+ members
Direct opportunities
Sync opportunities go to artists directly, with the middleman layer removed.
- 03NA + Europe
Brand and screen placements
Coors Light, Tommy Hilfiger, and many TV and film spots for community members.
Architecture
- API routes
- 89
- Agent tools
- 31
- Test cases
- 984
- Migrations
- 43
- WebVercel
- Next.js
- React
- Clerk auth
- Design-system linter in CI
- Core API89 routes, one contract
- Zod schemas
- OpenAPI 3.1
- Agent tools
- Stripe entitlements
- Trigger.dev jobs
- DataA database branch per preview
- Neon Postgres
- pgvector (HNSW)
- pg_trgm
- Cloud Storage
- Media intelligenceGKE Autopilot
- Orchestrator
- Essentia tags · L4
- RoFormer stems + Whisper · A100
- MuQ embeddings · L4
Engineering details I’m proud of
- 01cosine 1.00000
Moved the GPU runtime with nothing else changing
Swapped serverless GPUs for a Kubernetes cluster by reusing the exact model packages. A 20-track parity run matched on both stacks, and rollback is one environment variable.
- 02spot A100
Spot GPUs that survive interruption
Stem separation runs on cheap preemptible A100s. When one is reclaimed mid-job, the orchestrator requeues the work; stuck jobs get retried on a schedule and expire after 24 hours.
- 03per-branch DB
A real database for every branch
Every git branch gets its own copy-on-write Postgres branch and test auth instance, so previews are full end-to-end environments, not mocks.
- 0443 migrations
Migrations that can’t drift
The migration runner checksums every applied file and refuses to run if history was edited. All 43 migrations are append-only.
- 053 gates
Design rules that fail the build
A design-doc linter, ast-grep rules, and ESLint run before every deploy, so a hard-coded color or off-system spacing never reaches production.
- 0654 operations
Docs generated from the code
One set of Zod schemas validates requests, types the client, and generates the OpenAPI spec behind the public developer docs.
Developer platform
Everything the app does goes through the same API, and that API is documented for outside developers. The docs stay in sync because they are generated from the same schemas the server validates with.