Skip to the developer guide
casset/Casset AppsDeveloper guide
Explore native AppsHeadless APISign in
Start hereBuild your first appCapabilitiesAvailabilityReference

Casset Apps · Starters

0.2.0-alpha.0

Choose a starter and run it locally.

Start with plain TypeScript, React, or a read-only Track experience. Each ZIP includes source, sample Casset data, tests, a valid manifest, the local SDK, and prompts for making something original. No credentials are required.

Download

Choose the smallest starter that proves your idea.

Minimal Profile AppDependency-light TypeScript + DOM. Reads artist and Catalog data supplied by Casset and handles every loading or unavailable state.Minimal · PROFILE_SURFACEReact Profile AppReact + TypeScript. Reads release/Track context and guards a host-approved PLAY_TRACK request.Intermediate · PROFILE_SURFACETrack ExperienceTypeScript + DOM. Builds one visual interaction from playback time supplied by Casset without playback control.Advanced · TRACK_RUNTIME

Run it

Start with the Minimal Profile App.

Terminalshell
curl -LO https://casset.fm/downloads/casset-apps/casset-minimal-profile-app-v0.2.0-alpha.0.zip
unzip casset-minimal-profile-app-v0.2.0-alpha.0.zip
cd casset-minimal-profile-app
pnpm install
pnpm test
pnpm dev

Building a website instead?

Use the Headless React starter when you own the frontend and only need public Artist and Catalog data.

Comparison

Match the runtime to the experience.

Casset App starter comparison
StarterStackPrimary lessonPlayback
Minimal Profile AppTypeScript + DOMCasset-supplied Catalog data, loading and unavailable states, and complete cleanup.No playback request.
React Profile AppReact + TypeScriptTyped release/Track selection and accepted/denied host decisions.Profile-only PLAY_TRACK with permission and capability guards.
Track ExperienceTypeScript + DOMA visual experience that responds correctly to pause, seek, completion, deactivate, and reactivate.Read-only playback time supplied by Casset.

Developer kit

Know what each archive proves before you install it.

Native and Headless starter facts
StarterDemonstratesRuns inCredential / dataVersionCommandsKnown limitation
Minimal Profile AppProfile identity, approved Catalog data, and loading or unavailable states.Local Native Profile fixture.No credential; mocked host context.0.2.0-alpha.0pnpm install · pnpm test · pnpm buildNo lockfile; install resolves current registry dependencies.
React Profile AppReact Profile context and a guarded PLAY_TRACK request.Local Native Profile fixture.No credential; mocked host context.0.2.0-alpha.0pnpm install · pnpm test · pnpm buildNo lockfile; a local accepted request is not production playback authority.
Track ExperienceRead-only visual synchronization to canonical Track time.Local Track Runtime fixture.No credential; mocked host context.0.2.0-alpha.0pnpm install · pnpm test · pnpm buildNo lockfile; it cannot control playback.
Headless React SitePublic Artist and Catalog UI, typed failures, and a server-only local proxy.Developer-owned Vite site outside Casset.Exact mocks by default; optional one-time local sandbox credential stays in Vite.0.2.0-alpha.0pnpm install · pnpm test · pnpm buildHas a lockfile. Public v1 is deployed but unsupported for production use and may fail closed with 503; no production credential exists.

Native lockfile limitation

The three Native starter archives intentionally contain no lockfile in this alpha. Their source and vendored SDK are versioned, but a fresh package install is not dependency-byte deterministic. The Headless React archive includes its own lockfile. No archive is changed by this documentation pass.

Open with Codex

Copy a bounded implementation prompt.

Codex prompttext
Read AGENTS.md, README.md, casset-app.json, and PROMPT.md completely.

Build an original Casset App from the starter without copying its visual composition. Preserve the declared permissions, host-owned playback, availability states, responsive behavior, and lifecycle cleanup. Do not add raw media, a local playback clock, global navigation, private API calls, or unsupported SDK fields.

Run pnpm test and pnpm build. Report the exact context fields, permissions, and host capabilities used.

Open with Claude Code

Copy the same contract in Claude's project language.

Claude Code prompttext
Read CLAUDE.md, README.md, casset-app.json, and PROMPT.md completely before editing.

Create a new emotionally coherent experience inside the starter's existing Casset context. Keep Casset as the only playback and lifecycle authority. Design loading, empty, permission-denied, unavailable, closed, mobile, keyboard, and reduced-motion states.

Validate with pnpm test and pnpm build, then list every SDK field and host request the experience uses.

Inside every ZIP

Agent context and validation travel with the code.

Starter file responsibilities
FileResponsibility
casset-app.jsonStrict public manifest parsed by @casset/apps at startup.
README.mdReal install, dev, test, and build commands plus integration boundaries.
AGENTS.md / CLAUDE.mdTool-specific constraints for permission handling, playback ownership, sparse states, mobile, and cleanup.
PROMPT.mdAn original build direction that explicitly rejects cloning the starter composition.
src/fixture.*Deterministic local host states with no production credentials or private artist records.
src/*.test.*Focused state, permission, seek, and lifecycle contracts.

Distribution remains curated

A successful local build is not an installation or review approval. Distribution remains curated, and no open third-party publishing flow exists.

Casset Apps · Build for musicians.

Native AppsHeadless APICasset reference docs