As with most visual JavaScript libraries there are two sides to the story: