Always wanted to ask: Isn't google's diff-match-patch library suitable for the same thing? It can apply patches to altered input pretty nicely.<p>Is there a conceptual difference? Diffs support all types of operations - insert, remove, replace. I'm really curious about realtime collaboration, but can't decide which is the right tool for the job.