I build SongUp AI, an AI song maker. People type a few lines about someone, pick a voice and a mood, and get a song back. One of the most common reasons to open it is a gift for a parent, and the "song for dad" flow has taught me more about input design than any dashboard I have built. These are the notes I wish I had before writing the first form.
The first version of the gift form had a box that said, more or less, "Describe him". People answered with adjectives: kind, funny, hard-working, the best. A language model can write a verse from that, and the verse is fine, and it fits every father on earth. Nobody cries at "you were always there for me".
What works is the opposite of a description: small true details. So the prompts now ask for things like:
The last one does most of the work. It is also the on-screen hook of the short video we made for the page: "Write what you never say out loud". A question that is slightly uncomfortable to answer gives you the line the whole song hangs on.
The general lesson for any generative product: the quality of the output is capped by how specific the input is, and users do not volunteer specifics unless the form asks for them one at a time.
A gift song has one word that must be right: the name. Text models spell it fine; singing voices do not always pronounce it the way the family does, and "Dad" itself is Papa, Baba, Abba, Appa or Tata depending on the house. We sing in 76 languages, so this comes up daily.
Two things helped. First, treating the name as its own piece of input instead of something buried in a paragraph. Second, a pronunciation hint: a place to write the name the way it sounds. It is a tiny field, and it removed a class of "the song is lovely but that is not his name" messages.
If your product reads user text aloud, in any voice, give names their own handling early. It is cheaper than apologising later. People who write to their fathers write a lot. Some paste a full page. A song has a length, so something has to give. Quietly trimming the text is the worst option: the user notices the missing verse, which is always the one that mattered.
Now, when the lyrics run past roughly 1,700 characters, the Create step asks what to do: split it into parts, shorten it, or go ahead anyway. One extra question, asked only when needed, and the choice stays with the person who wrote the words.
The piece of the flow I would defend hardest is the order: you hear the first 30 seconds of your own lyrics, sung, before paying anything. One full song is then $2.99.
For a gift this matters more than usual. The buyer is not judging audio quality in the abstract; they are checking one thing, "does this sound like it is about my dad?" No landing page copy answers that. Thirty seconds of their own words does. It also keeps us honest: if the preview is not good, nobody has paid for it. None of this is specific to music. It applies to any tool where a model turns a few lines from a person into something that is supposed to feel personal.
If you want to see the flow as a user would, it is here: [a song for dad, in your own words](https://www.songupai.com/song-for-dad).
P.S. The 28-second version of the idea: [https://youtube.com/shorts/Fvye5ikx-Ck](https://youtube.com/shorts/Fvye5ikx-Ck)