Rendering Engine (e.g. PHP-based)
Database (e.g. MySQL, Postgres)
Static content (Images, Videos, JS- and CSS files) and Caches
For many websites, dynamic page generation is entirely unnecessary and adds unwanted risks in terms of complexity, performance losses, and security issues. After all, the content of most websites changes, when the content authors make changes. Why the hell should a web page always be assembled on demand if there are no changes?
To be fair, most CMS are providing caching systems for web pages to prevent unnecessary creation processes. It is not easy to implement such a caching strategy, and in the very end, it adds the next level of complexity.
A static site generator takes a different approach and generates all the pages of the website upfront. That does not necessarily mean that a static website is always built from scratch. Modern generators support a so-called incremental build. When there are changes detected to the content, only selected pages are rebuild.
Server-side rendered (prepared) static content
Overall, statically build web pages having no moving parts in the deployed website. This results in browser-side caching only, the performance goes up, and static sites are far more secure because they build already and cannot be modified.
To find out what Open Source SSG are available today and their ranking in terms of popularity, go for Jamstack. You’ll find a comprehensive list of static site generators used today.
Check the most popular site generators available at the Jamstack site.