I considered Lambda and similar, but keeping LilyPond running as a server allows for lower latency, which is important given how long it takes for LilyPond to start up.
I don't think I'd be able to have the kind of live reloading I implemented here with Lambda.
Hacklily is great! Obviously doing fine with the HN burst! I may just point people to yours at some point.
I wonder for a classroom setting, if many people compile similar scores, if there's any opportunity to say "the first half of all these scores are the same, compile it once and concatenate it with the unique pieces"...caching composition...I'm sure I'll play with it someday.
Caching sheet music rendering is a hard problem. For example, a note later in the score can affect the spacing of notes before it.
For example VexFlow (http://www.vexflow.com/) or, even with music, abcjs (https://abcjs.net/). Both of those use their own language.
A cursory look at the lilypond docs makes it seem like the language is pretty simple and straightforward... although, the source code looks nuts. How hard do you think a JS parser/vm for it would be?
Edit: been looking at some large lily projects from mutopiaproject linked below. Oof. There's more there than the docs let on. Still, would be a very interesting project...
I think one day, you'll be able to use emscripten or similar to run LilyPond in the browser. We are not there yet.
[1] See, for example, https://www.amazon.com/Behind-Bars-Definitive-Guide-Notation...