Everybody is talking about statically generated sites. The advantages of static sites are:
- Better perfomance
- Cheaper, easier scaling
- Higher security
- Better developer experience
For these reasons, we're going all-in.
Often, our bottlenecks come from trying to render dynamic content. But, as we've rethought our content model, we've been able to move away from most dynamic content and render flat files. By limiting CMS instances (to 0) and keeping our API server and site-generator off the static-site server, processes like Node or PHP are never running.
Cheaper, Easier Scaling
We currently host a few hundred sites across more than a dozen servers. Going forward, we think we can scale down to one or two load-balanced servers hosting 500 sites or more.
The only thing we are asking a server to do is to render some HTML. No databases, no API calls, nothing that can be exploited. When we do add dynamic content to a page, it's coming from the same server in the form of JSON - we never have to talk to anything outside of our static server.
Better Developer Experience
This seems like a fairly arbitrary, objective point of view. However, as we've built the Headless CMS -> API -> Site Generator infrastructure, we've been able to keep our work focused. Also, this infrastrucutre has caused us to build with an API-first mentality. In the future, we'll be able to manage content and trigger site builds from any number of sources.