Grav vs Metalsmith
When comparing Grav vs Metalsmith, the Slant community recommends Metalsmith for most people. In the question“What are the best static site generators?” Metalsmith is ranked 13th while Grav is ranked 17th. The most important reason people chose Metalsmith is:
Because metalsmith is at its core focused on transforming directories of files, it can be used for more than just static site generation, and could be used as a build tool, a documentation generator, or any use that requires file transformations.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Can be hosted with any provider
Since Grav is built with PHP, it can be hosted on almost all web hosting providers. If the provider supports Wordpress, they also support Grav.
Pro Easy creation of templates and content
Supports Twig for templating with Parsedown for fast Markdown and Markdown Extra support.
Pro Easy to use admin panel
Well designed, easily usable and modern admin panel is a boost as it lets Clients edit the content easily.
Pro Custom fields for content
YAML-based page headers allow you easily add custom dynamic fields to your content.
Pro Open-source and free
Pro Extensive Documentation
Documentation is not an afterthought! Grav has a dedicated documentation site plus loads of tutorials and guides.
Pro Extensive documentation
Documentation is not an afterthought. Grav has a dedicated documentation site plus loads of tutorials and guides.
Pro Built-in package manager
Pro CLI Tools
Command line tools such as dependency installation, cache clearing, user creation, and backups.
Pro Flexible beyond a static site generator
Because metalsmith is at its core focused on transforming directories of files, it can be used for more than just static site generation, and could be used as a build tool, a documentation generator, or any use that requires file transformations.
Pro Designed around plugins
Everything in metalsmith is a plugin, and it is designed to make it easy to write new ones.
Pro Chaining API
Metalsmith uses a chaining API that's consistent and simple to use:
Metalsmith(__dirname)
.use(markdown)
.use(templates('handlebars'))
.build();
Cons
Con Small community
The Metalsmith community is still fairly small compared to the more popular options. This results in a lack of learning resources and difficulty finding support from experienced users. However, a slack group has recently been started.
Con Not client enabled API chaining
According to the spec on API chaining, the API request/response need to associate an API object to an corresponding controller/action/uri to be able to validate and handle the request/response and the datasets.
Without that, the consuming client service cannot properly validate or relate the datasets from one to the other. Links have no relational value and the api object creates the relationship between the datasets while maintaining an api/dataset relationship with the corresponding controller/action/uri
As such, the current methodology supported would not be able to be called by the client not supported by the client in a RESTFUL manner