Static HTML will often fit the bill
Static HTML will often fit the bill
Our current setup is using a static site generator (we're Rubyists on Middleman - https://middlemanapp.com/ - but take your pick here) to build the actual site. However, the content itself lives in a cloud-based CMS (we're on Contentful, but Prismic and Siteleaf are also good choices) - this is what the client has access to. During the build proc, the SSG polls the CMS and grabs all the latest content to package into the static site.
On publish of any piece of content in the CMS, a webhook hits our build proc (either Codeship or Netlify) which in turns fires a rebuild of the site (which in turns pulls down the latest content).
For us, the best part about the setup is that it's virtually impossible for the client to break the site. They could certainly make it look like hell - but they can't break it. On top of that, if they somehow, someway, manage to break the build by simply editing content, then the new site is simply never deployed.
Let me know if you have any more questions - I love talking about this stuff.