Modifications are markedly harder with a CMS like Grav and static-site generators, as virtually all settings are kept in templates and css. Whilst you could allow for a lot of variety through frontmatter, too much of it would be cluttered enough that you might as well teach them code or device an interface for it - essentially what full-fledged CMS like WordPress do.
My main arguments for using Grav on medium-to-large scale projects are the following:
- Reading and writing Markdown is incredibly easy for the end-user, and there is a plethora of editors which elegantly allow them to focus on writing, formatting, and proofreading. This takes a lot of unecessary complexity away from content-creation, and allowing them a variety of templates to display the content through is sufficient.
- Organizationally pages are well-structured and easy to understand for end-users. You write a
page-mdand place it in about and you'll get /about/ displayed with the page-template.
- To the degree that any end-user wants to make simple color customizations, tell them to use a gener ator like Coolors and apply that scheme in a specific css/scss file. Anything more than that and they will need to actually know css, or get customization help.
Scale is a different issue. If we imagine the amount of pages to be in the thousands, then the flat-file structure would be a more painful endeavor than a database. A database can easily be transferred as a single unit, whilst transferring thousands of folders and files takes more time. In an ideal world I would have the combination: For websites with pages exceeding 500, I would flat-file everything apart from blog-like posts. They are better handled in a server-less database-like file (single, not plural).