I Built a Real-Time Collaborative Sheet Music Editor — Here's What MusicXML and CRDTs Taught Me A developer built ScoreTail, a browser-based real-time collaborative sheet music editor, using MusicXML and CRDTs. The project relied heavily on AI-assisted coding, with Claude Code writing about 90% of the code, and a round-trip test harness of 250 real-world scores to catch regressions. The developer highlighted the challenges of MusicXML's backup/forward elements and the complexity of applying CRDTs to musical scores. I wanted a "Google Docs for sheet music": open a browser tab, start writing notation, share a URL, and have someone else edit the same score with you in real time. Nothing like that existed. MuseScore, Finale, and Sibelius are all excellent, but they're desktop apps built for people who already know notation software inside out. So I built ScoreTail https://scoretail.com , a browser-based score editor, mostly alone, with a lot of AI-assisted development. This post is about the parts that turned out to be genuinely hard: the MusicXML format, real-time collaborative editing over CRDTs, and rendering performance. MusicXML is a huge spec — pitch, duration, voices, staves, backup/forward, divisions, ties, slurs, ornaments, tuplets, lyrics, chord symbols, dynamics, repeat structures. Implementing all of it solo, the traditional way, is a multi-year project. Late last year I made a bet: let AI Claude Code, ~90% of the code; Antigravity, ~10% write most of the implementation, while I focused on defining what "correct" means — architecture decisions and test cases — rather than typing every line myself. The thing that made this workable wasn't the AI, though, it was the test harness: I collected around 250 real-world scores Bach, Beethoven, Chopin, Brahms, Debussy, plus the LilyPond regression test corpus and ran them through an import → export → re-import round-trip. Any structural drift between the first and second import is a bug. AI writes code, the round-trip suite catches regressions, AI fixes them, repeat. Humans stayed in the loop for the judgment calls; the AI did the volume work. The single hardest part of MusicXML to get right is