What it does
A prompt goes in. Lyrics come back, then a music prompt derived from them, then rendered audio, then cover art with its own prompt. Every song keeps its versions, so a change is never a one-way door.
The decision that mattered
The composition plan is built only from the explicit section labels in the lyrics. Verse, chorus, bridge, written down as labels.
The tempting alternative is to infer structure from the prose, which works most of the time and then produces a song with two bridges and no chorus, for reasons nobody can reconstruct afterwards. Reading only the labels means the structure that gets sung is the structure that was actually asked for.
Under it
Next.js front to back with Supabase for auth, database and audio storage. Generation degrades gracefully rather than failing hard when a provider plan does not include a capability, because a half-finished song is more useful than an error.

