Why it matters

Imagine you have a blog that you post to once a week. You could write you website in plain HTML, CSS and Javascript, but nobody wants to have to worry about wrapping each paragraph in a

tag while writing their content. Writing lots of content in HTML is painful. To address this, Content Management Systems (CMS)’s like wordpress are extremely popular as they allow you to write your posts directly into an editor and publish them as a webpage. They allow even nontechnical people to publish to the web, which is why a quarter of all websites are made with one.

However, Content Management Systems have their own sets of disadvantages. Wordpress stores your posts in a database, which means you need to have a running server to host the site. These moving parts make managing your site more difficult, as you have to worry about annoying things like updating the wordpress runtime to address security vulnerabilities.

Static websites, or sites that are made of just static files and no database, are much easier to maintain and scale because they can simply be uploaded to a static host or CDN with FTP, or directly hosted with something like github pages.

SSG’s fill the niche between the two. You can build your own page with HTML and CSS, and then write your content in a simpler markup language like markdown. Then, you run the SSG to convert your text and code into a finished static site ready to be deployed. As a developer, they are probably the best option for building your own content-based site, like a personal blog.

Since static sites are so much simpler to maintain than sites with a complex backend runtime and database, static sites and thus SSGs are rising in popularity even for complex web apps. See JAM Stack.