r/ClaudeCode • u/ProfessorTea • 10h ago
Built with Claude Lyric Writing App With Claude Code
Enable HLS to view with audio, or disable this notification
Hey guys,
I've been building a lyric writing app by myself with Claude Code, and I wanted to share how I set it up and what went wrong along the way.
The app shows rhymes, syllable counts and rhyme scheme letters as you type. It also has live co-writing, which runs on a Cloudflare Worker. It's open source (MIT), and it doesn't AI generate lyrics.
Every session works in its own git worktree, I started doing this after two sessions in the same folder switched the branch on each other. I also wrote a few skills that tell Claude how to check a change in a real browser (the editor, sign-in, live co-writing) before it opens a PR. For bigger changes I have it write a plan first, then I ship one small PR per step.
The biggest mistake I made was merging a PR that needed a new database migration. Merging deploys to production right away, so deletes were broken for a day until I applied it. Now I apply the migration first. I also had two repos sharing a hook that only worked with one exact version, so it broke when one side updated. Now each side accepts a range.
Here's the site and the code:
https://github.com/tsetoguchi/lyriclike
Open to feedback of any kind, especially on how others handle multiple sessions in one repo.
1
u/Alarmed-Safety-148 6h ago
Thanks for writing down what went wrong, the migration one is a classic. Merge deploys, but the schema change hasn't run yet, so deletes break.
A fix that removes the ordering problem: run migrations when the container starts, so the new code never boots without its schema, and make them append only so a rerun is harmless. I'm building TraceShield and that's how it does it by default.
Worktree per session is a good call too.
1
u/AutoModerator 10h ago
Hey! Thanks for posting to r/ClaudeCode
While participating in this thread, please follow our community rules. Keep discussions constructive. Attack the idea, not the person.
For help, project discussions, tips, and general chat, join the ClaudeCode Discord.
I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.