Wouldn’t it be easier to just build the page once?
Let’s talk about a website, say a simple blog such as this very page you are reading right now. It has a logo, menu, title, each blog entry has its own title, some images, date of creation and some text. All this content is usually stored in a database and each time somebody visits, the server gathers all this content, builds the page and serves it to the visitor.
With enduro.js, the page is built only on content change. When visitors come and request the page it’s already in a form of a prebuilt .html page and ready to be served.
The static website can be served by a very simple and cheap server, in some cases even for free(such as github pages).
Having ready-made .html pages means there is no processing needed to serve the page. It’s just a matter of requesting a file and sending the file. Moreover, the file can be located on a CDN network for even faster delivery.
By not using any of the server’s resources there is less chance of a lag on the server causing inconsistent delivery times. Random traffic peak can cause many users to have to wait for your page to be delivered.
Building the page each time somebody requests it allows errors to creep in anytime. When you pre-build the page you know each user will always receive this exact page. Every time.
Obviously this approach works only for websites that should serve the same thing to all users, such as this one you are reading right now.
In most cases, javascript can be used to add personalized content or content that is dependant on something dynamic. Enduro.js can and is used to make web-apps that load dynamic content after the initial page load, which is still pregenerated. When users can log into a website, using one-page web apps such as gmail is a modern way to approach this anyways.
Enduro.js is built on top of node.js and express. It is absolutely ok and easy to build a dynamic page with enduro. This way, enduro.js allows you to mix static and dynamic pages to achieve maximum efficiency.
Most of the speed penalty dynamic serving causes can be mitigated by using caching. For example, for WordPress there is a [cache plugin].(https://wordpress.org/plugins/w3-total-cache/). This however adds complexity by having a dynamically built pages and then adding a layer that is trying to save the pages instead of just pre-building the pages in the first place.
Noah Veltman explains static vs dynamic serving as a vending machine vs a restaurant. Very clever, read it here: http://noahveltman.com/static-dynamic/