I love modern static websites, especially when paired with source control and continuous integration / deployment systems. Why? Because they’re super easy (and free, with GitLab or GitHub pages!) to host, but they still provide a lot of advantages that you get with a database-driven content management system, all wrapped in a simpler to understand package. Middleman is my static site generator tool of choice at the moment, and I’m a big fan of GitLab's workflow for source control and CI/CD tooling.
Branch, Merge Request, and Approval Workflow
The workflow provided by source control tools like GitLab or GitHub is super helpful for managing change for lots of things, including your website. The idea’s fairly simple - make a copy of the website as it is, make your changes, submit your changes for review by the rest of the group, incorporate feedback, and merge your changes into the real site once everyone’s happy with your changes. When combined with something like GitLab’s code owner mechanism, we can also make rules about who needs to approve changes - like your lead designer has to sign off on any changes to the site layout, or the CEO has to approve any changes to the home page before they get merged and deployed.
Enforcing a Design System
Let’s be honest, most web designers generally don’t like the idea of giving end-user content authors complete control over what a page looks like. People like changing font sizes… and fonts… and colors… and generally don’t think about things like branding standards, best practices, accessibility, or responsiveness. But, most of your content authors aren’t going to be HTML experts, either. This is why I use Markdown or, more often now, ASCIIDoc to actually write web content - it gives users the power to write structured content while providing fewer opportunities for them to shoot themselves in the foot design-wise.
This is usually doable in traditional web-based content management systems, but it usually feels clunky and requires additional plugins to work well. Static site generators do this out of the box - and it’s just as straightforward as adding any other content, even from inside of ASCIIDoc or Markdown. This also ties in very nicely with…
The ability to create & reference structured data is one of my favorite features of Middleman, and may other static site generator tools have similar capabilities. I can create JSON or YAML files as part of a site and reference that data inside of page content - or build entire pages or components around it. You can also usually attach arbitrary data to individual pages as well, and make use that data on the page, in layouts, or on other pages.
Ease of Migration
Both coming to a static site structure and going to a different generator tool or a traditional content management system is pretty easy. Static site generators just assemble and modify HTML - so migrating off of another platform can be as simple as grabbing the HTML source of your pages and doing some copying & pasting. These tools tend to work fairly similarly, so changing tools may be as simple as renaming some folders and adding a new configuration file.