FounderBRANDPRODUCTLAUNCH· Jan 2026 – Present

Casset

Founded and shipped a live music platform, solo and end to end

Casset gives artists a home for their music identity - founded, designed, and built solo. Artists claim a handle and get a profile world: songs, atmosphere, and release context in one place. Every track carries an authored 30-second hook - a window with synced lyrics and visuals that fans can export as vertical video for TikTok, so even unfinished songs can see the light of day. Fans collect with one tap of Apple Pay and artists keep roughly 90% through Stripe Connect. As music gets easier to generate, the scarce layer is authored identity - Casset is built around preserving it. It began as a way for artists to launch coins on Base - hence the name Casset (crypto asset) - before I pivoted to the simpler, broader product that’s live today at casset.fm.

YearJan 2026 – Present
RoleFounder - solo design & engineering
DeliverablesBrand Identity, Product Design, Full-stack Development, Commerce System

Live Demo

This is the actual product running live.

Profile

Open

Feed

Open

Store

Open

01

Origin - Base Network MVP

Where it started: launching artist coins through the Flaunch API on Base Sepolia, with Coinbase Wallet and Sign In with Base. I killed this direction in favor of a simpler, broader product - but it named the company.

Base Network MVP
The full UX/UI of the Base-network version (Sept 2025) - site, gate, artist card, player, onboarding, token launch, and purchase flows - the system before the pivot.

02

Create a casset - live

The most recent version, running, with the whole creation flow in the frame below; claim a name and walk it yourself on mobile. End to end: (1) Claim a handle on the landing and your artist world is built instantly (a profile with Hooks, Tracks, and a Room) before any sign-up. (2) Edit sets the avatar, cover, and bio and flips a one-tap Paid access toggle (fans pay once to unlock, or listen free). (3) Add track uploads your music - which stays yours, never used to train generative AI. (4) Design controls the surface fans see while hooks play: the track's own beat-reactive visuals, or a cover photo. (5) Continue with Apple or sign up with email saves and publishes it - signup is deliberately deferred until after you've already built something.

casset.fm - create your artist world, live on mobile
casset.fm - claim a handle to start creating.Live ↗

03

Creating a casset

The current flow, as a static screen since the live frame doesn't follow you onto mobile: claiming a handle is the whole onboarding - “build your first world.” Continue with Apple or Instagram, or email and password, and your artist world is created; the handle you pick becomes the link you share.

“Claim the link” - the current create-a-casset flow on casset.fm.

04

A closer look - inside the app

The shipped product, screen by screen - the artist profile, the hook player, and one-tap collecting.

The artist profile - hook player, releases, and atmosphere in one world.
Collecting straight from the profile.

05

Audio-reactive hooks & the collect gate

Every hook drives beat-reactive visuals off a shared playback clock; collecting unlocks the full track behind a per-stream entitlement check.

A hook running with its beat-reactive visual.
The collect gate - unlock the full track.

06

Visual Studio & packs

Artists compose beat-reactive shaders in an in-browser Visual Studio, then price and sell them as visual packs from their profile.

The in-browser Visual Studio - composing shaders.
Visual packs - composed, priced, and sold per artist.

07

Synced lyrics

Lyrics are cued in real time off the same playback clock that drives the hook and its visuals.

Adding and timing lyrics to the playback clock.

08

Context for artists

Every profile now carries four context shelves around the music itself - aliases, visuals, samples, and Room - rendered as a switcher right next to the player. Discovery moves from algorithm to story; the world stays the artist’s, not the platform’s.

casset.fm artist context, live - aliases, visuals, samples, Room
Tap to scroll the live profile - the aliases · visuals · samples · Room switcher sits right under the player.Live ↗

09

Room - chat with the artist

Every casset has a Room - an AI-shaped chat that lives on the artist’s profile and answers in their voice, grounded in their own writing, demos, and notes. Conversation, not just consumption.

casset.fm Room - chat with the artist, live
Open the live profile and tap Room - the same chat fans walk into.Live ↗

10

Mine / AI - generative as a labeled surface

Generative work shouldn’t replace an artist - it should sit alongside them, behind a labeled toggle the fan controls. Every casset now has two shelves under one handle: Mine (the artist’s own work) and AI (a generative alter ego rendered from their voice and demos). Same player, same Room, same fans - completely different catalogue, plainly labeled.

AI - same artist, generative alter ego. Every track carries an Origins reveal so fans can hold to hear the source.

11

Origins & Samples - attribution as interaction

Every generative track ships with an Origins reveal - hold to hear the original demo or sample the AI was conditioned on. Attribution as an interaction, not a footnote. The new Samples shelf surfaces the raw building blocks an artist works from, playable in casset and openable as instruments in Toolpa.

Origins - hold to hear the original demo or sample behind any generative track.
Samples - the raw stems and takes an artist works from, playable in casset, openable as instruments in Toolpa.

12

Feed, store & social

The discovery and social layer around every drop - a trending feed, a store of featured cassets, and direct messages.

Feed - trending hooks.
Store - featured cassets.
Direct messages between fans and artists.
Shared links carry 30-day referral attribution, tracked in an append-only credit ledger.

13

On the web

Casset on the desktop web.

Casset on the desktop web.
The web experience.
Casset merch - the brand off-screen.

14

Early brand exploration

Landing directions for the casset brand - the iridescent disc mark explored across light, cream, and dark treatments, with the wordmark scaled from a quiet lockup to a full-bleed graphic. Different bets on tone (“create a casset with exclusive content and tracks · earn money”) before the identity settled.

Six early landing directions for the casset identity.

15

casset.fm - live today

Where it landed - the current landing page: claim a handle, build an artist world, drop differently. Underneath the cinematic surface sits a canonical, machine-readable layer - releases, manifests, permissions, and provenance - built on Next.js, Postgres, blob storage, Stripe, and Redis.

casset.fm - the live landing page
Casset Recording Studios - a retro brand world moment from the landing page

Under the Hood

Casset is a single Next.js application, designed, built, and operated by one person since January 2026. It spans authenticated audio streaming, Stripe Connect payments, realtime social systems, and a machine-readable release layer. The architecture is documented publicly at casset.fm/docs.

829
commits since January 2026
226
API routes across audio, payments, social & cron
119
screens in the app router
67
database models · 45 migrations
321
unit tests across 38 suites
17
public architecture chapters at casset.fm/docs

Product status

  • Solo-built, from scratch to finish
  • Live creator profiles
  • Stripe Connect payments active
  • AI visual generation & campaign intelligence active
  • Mobile web + PWA
  • Artist onboarding underway

Architecture

Streaming pipeline

Tokenized audio behind a byte-range proxy with per-request entitlement checks. Preview windows are computed server-side from bitrate estimation; no public file URLs exist.

Payments

Stripe Connect direct charges with Apple Pay and guest checkout. Webhooks across six event types are idempotent on every write path; refunds and chargebacks revoke access immediately.

Campaign engine

Autonomous promotional drops with fraud screening. Payouts settle only when the ledger reconciles to the prize pool exactly, behind four independent idempotency layers.

AI layer

Claude-backed visual generation and campaign intelligence: sanitized inputs, Redis cost caps, bounded structured output, deterministic fallbacks.

Realtime systems

Redis presence and server-sent events behind comments, follows, activity, and an append-only referral ledger.

Visual runtime

Audio-reactive visualizers and themed players driven by a shared playback clock; per-artist OG images; offline-capable PWA with tiered caching.

Engineering challenges

Instagram's in-app browser

Half of traffic arrives here. Storage, autoplay, and viewport constraints shaped auth, playback, and checkout.

iOS Safari playback

Suspended audio contexts, NaN durations before play resolves, background-tab garbage collection - the player recovers from each.

Route-persistent audio

A single audio element owned above the router. Playback survives every navigation and powers lock-screen controls.

Tokenized streaming

Every stream passes entitlement validation, served with the 206 range semantics iOS requires for seeking.

Preview-window playback

30-second hooks enforced server-side and looped client-side with a ~50ms micro-fade.

Stripe Connect marketplace flows

Direct charges to artist accounts, merchant-of-record duties, and dispute-driven access revocation.

Realtime on serverless

Presence and SSE where connection lifetime is the constraint, with Redis as shared state.

2026 CONNOR LEE

LOS ANGELES, CA