We wanted a tool that would generate a web site that is extremely optimized with little to no extra configuration that should be compatible with webpack but not dependent upon it and perform extremely well on pagespeed insights.

If you have configured your plugins correctly and your server is compressing files you should be able to achieve 100% on pagespeed insights very easily.

You can can see the results for this website are typically 100%, sometimes it drops to 99% when we invalidate the cloudfront cache ;)

There are too many good reasons to list them all but if you have ever wanted to have a static website tool with a modular plugin architecture that knows about your website structure and resources then makestatic is for you.

Knowing this information enables writing plugins that can easily fingerprint resources or generate a complete sitemap.

Some other reasons are that it uses abstract syntax trees so it becomes trivial to do cool things like verify external links or if you want full markdown support with powerful HTML templating features combined look no further.

The makestatic tool is well suited for single page applications and small to medium sized websites.

If you are building a website with many thousands of pages you may prefer to use an alternative system.

It is in the roadmap to create deployment providers for SFTP and other cloud services but for the moment the amazon s3 and github pages deployment providers should suffice.

Feel free to create a plugin and submit a PR if you need an alternative deployment provider urgently.

Primarily because we don’t have access to Windows machines. See the source code page for more information.

Due to babel-loader having not yet updated it’s usage of loader-utils, see babel-loader#392 and babel-loader#391.

Due to babel-loader using peerDependencies when we resolve loaders relative to the current project, see babel-loader#408.

This is due to browsersync depending upon weinre for remote debugging which in turn uses dependencies that are locked to very old versions of express/connect. For the moment you should be fine if you ensure your browsersync port is not exposed to the outside world. If we cannot find a good solution soon we will fork browsersync/weinre to fix the issue.