


Most configuration information is coded in YAML at the beginning of either markdown files or dedicated text-based configuration files. Files with content are in markdown format with optional extensions, and additional plugins can also add support for more advanced features like WordPress-style shortcodes. It’s open source, super fast and extensible, with modern features like templating, switchable themes, form support, and caching for images at multiple sizes.īecause it’s flat file, it stores everything as files within its central directory, even configurations.

So if you you’re not already familiar with it, let me introduce you to Grav, one of the most popular of the new wave of flat file web content platforms. So when a request is received, the CMS will just need to locate the right pieces in the file system, convert (and cache) them to HTML, and then hand them off to the web server. Of course that has connotations of the limitations of the early days of the internet, but times have progressed, and I want to show you a modern refresh with a more well thought out approach.Ī flat file system stores each web page as a file, whether standard pages or blog entries, or even as more than one file that are then stitched together as directed by a template or some convention. Another way is to use a flat file system. The WordPress model of storing every blog article in a DB table isn’t the only way CMS’s have to work. If you don’t even turn on *SQL in the first place, it can’t be used against you as an attack surface. In addition to adding complexity, databases are one of the significant drivers of insecure websites (in fact, if you type “SQL” into Google, the first autocompletion these days is “SQL injection”). If you’re using a popular CMS like WordPress, you’re using a database like MySQL even if you don’t know it. Of course if you need it, it will be there for you, but let’s try to get by without it. In particular, in this article I want you to question whether you really, really need a database like MySQL to run a basic website. So today let’s try to question your assumptions. But being simpler usually means being minimal, so given something that can get really complicated quickly, it’s best to throw out anything you don’t fundamentally need. I’m talking about a full WAMP stack here, so I don’t mean you’ll have to cut any corners. Suppose you need to set up or maintain a simple but professional looking website on Windows (maybe even on a budget), be able to develop using tools like PHP, have it all work even when you don’t have web access, and then once you’re done, wouldn’t it be great if you didn’t have to compile, you could just copy your files and be done with it? 2021 Charles Callaway Development, PHP A Dead Simple CMS/WAMP Development Environment
