Reference documentation and lots of examples are available directly on the [website](http://p5js.org/).
Ranked in these QuestionsQuestion Ranking
Pro Outputs to canvas and SVG and JSON
When it comes to format compatibility, Fabric is the best, with the ability to output to Canvas, SVG, and JSON. SVG provides backwards compatibility for older browsers, and JSON allows you to store rendered output for later use.
Pro Vector focused API
Drawing objects in fabric are vector focused, so everything is easily transformable. It makes it easy to create complex pathed shapes, add gradients, or filters. Although fabric is great for vector rendering, it also has image support as well.
Pro Great interaction with SVG, excellent coding
If you are about to customize the library to your needs, this is the project of choice! Great programming work!
Pro Out of the box Node.js support
Fabric supports node.js, and has an npm package available for server side rendering with all the dependencies handled for you. This allows you to provide graceful degradation for image fallbacks to canvas or SVG content.
Pro Good support for SVG multi-line text
Allows creating multi-line text that can even be interactively edited by user interaction.
Pro Accessible documentation
Reference documentation and lots of examples are available directly on the website.
Pro Easiest to learn to obtain high grade results
In a few days any body can understand extremely complex figures in a few minutes.
Pro Great community
p5 users benefit from the Processing community's 15+ years of growth and discovery. Processing code can easily be converted to p5.
Pro A lot of YouTube tutorials
Pro General Programming Concepts
As a continuation of the Processing project, this frameworks helps in understanding the general programming concepts that goes beyond drawing (connecting electronics, using sounds or the webcam etc),
Con No front-end only version via Node
NPM package has major dependencies.
Con A little bit less support for Angular.js
Con No built-in rendering
If looking for something to build UIs with or similar, one might be disappointed by the lack of any pre-defined UI element objects and such in p5.js. One has to write all the rendering code for any objects one includes, integrating it appropriately with the loop.