Grav is a modern open-source flat-file CMS
getgrav.org
getgrav.org
Plus the product itself is incredibly good and it’s getting better and better over time.
https://devboard.gitsense.com/getkirby/kirby
https://devboard.gitsense.com/getgrav/grav
Historically speaking, grav is more popular as it had over 2000 contributors, compared to kirby which is about 500.
Full Disclosure: This is my tool
So looking at git activity is not really all that useful.
I do want to make it clear that Kirby is a very healthy project, if anybody is misinterpreting the data.
I'm lightly looking into alternatives to WordPress. Obviously CraftCMS come up, but being a paid product - nothing work with that per se - does limit its appeal for some projects / client. So maybe there's a place for Kirby?
I'm also still waiting for RTL support for languages in the CMS and multi-site permissions which has probably been on the roadmap for over a year but keeps getting delayed. I've submitted many ideas and bug reports on how to improve the multilingual experience but I don't think it's a priority for the team.
> So how does SPIEGEL do it?
> Curious about how SPIEGEL’s stack works? Here’s their high level approach, keeping in mind this is running on v2. Upgrading to v3 streamlines even more of their stack.
> A huge flat file content store organized with each entry inside its own subdirectory (you can’t have more than 10k files inside a single directory, an operating system limitation)
> The content store is using a cloud storage solution.
> Statamic’s control panel pushes entries into the content store, and then into an ElasticSearch instance via message queue.
> ElasticSearch runs as a content API with blazing fast response times and is consumed by the control panel and front-end
> The front-end is built in Go.
> User accounts are connected with an Office 365 Active Directory integration with OAuth.
Haven't used it since, but I'm glad it still exists.
I personally still use and love it even now, a good six years later.
This is my most out-there example: an ongoing synesthesia art project, running on Grav with Turbolinks: https://testfixture.presteign.com/
- It is not purely Flat File based, but rather a specific Folder structure with specifically named and marked up Files in them
- URL Routing is implicit in your folder structure; however
+ URL Routing has some special cases wherein:
a. Folders named starting with digits and a dot (i.e. "04.") will be "ordered"
b. Folders named starting with digits and a dot (i.e. "04.") will be "included in the navigation menu"
c. Folders named starting with digits and a dot (i.e. "04.") will be have the digits and dot removed in the URLs
d. It is unclear what "unordered" pages mean
e. It is unclear how to escape the starting numbers and dot so that they are included, but maybe just doubling "04.04." would work
- Page metadata such as HTML Meta Title and special CSS classes are included in a special header of the Markdown content
- Page template is determined by the actual filename within the URL routed folder rather than in the Page metadataPersonally, I would prefer a simpler "flat file" format that simply mapped folders and files to URLs in a more naive manner. Metadata being in the page is fine and can totally include the Template that I want to use for that content. Metadata within a page could also include the "ordering" and "menu" information.
That said, I'd possibly prefer a declarative mapping somewhere of my templates to folder and file patterns and a declarative mapping of my menus to specific files rather than including that data within the content file.
Maybe I should start a side project.
Its always: Step 1, Step 2.... (jump) Step 10, your blog is running! And Im stucj at step 4 which isn't even documented.
Compared to Wordpress, all these alternatives are almost impossible to even get started with.
BTW I would be interested in a static site generator / CMS that extracts data from flat files (which are the source of truth) and puts them into a database that can be queried in interesting ways during page generation.
Frameworks need to die, just give the fuck core libraries to work across frameworks, or you get "vendor locked-in" sooner or later.
Headless is pointless for the vast majority of use cases, so I don't really understand why Node.js developers keep making them.
It's funny how CMSs follow the same design patterns based on the language. PHP CMSs are generally the same, Node.js CMSs are generally the same.
All the pros of a tiny, static website and all the pros of a cms system and dynamic content.
Scale to millions of visitors for a couple of dollars.
Maybe in a utopian future, there will be a universal seamless ABI for most dynamic and static languages such that rewriting will be both unnecessary and undesirable.
I think there’s room for a solution that offers all this in a single package.
From what my view as an outsider, it seems that there just isn't as much conglomeration around big projects as there is in PHP/Ruby/etc, or there are many more projects and there haven't been a "sacred few" as winners yet outside of frontend frameworks.
In PHP, I can reliably stick myself in a Laravel/Symfony/Wordpress camp and the framework will either have most of what I need, or the ecosystem will have packages for it that get the job done. In JS, the projects that accomplish the same either don't have much publicity or there's some other blocker.
In other words, where is Wordpress.js? Solve an entire problem for an end user, not just a fellow developer who can operate a terminal.
Kettle, met pot lmfao.
JS succeeded PHP language as "the first language most developers will most likely experience" and it came with a lot of newbies reinventing wheels with it.
In case people were wondering: https://en.wikipedia.org/wiki/Headless_content_management_sy...
Most small shops and individuals want an integrated CMS that has an admin interface AND serves the content while handling content versioning, storage, and publication. If a site grew, then it might be worth revisiting which components should be separated.
> Grav Premium is an exclusive collection of plugins and themes the Grav team has built to enhance your site by providing additional functionality beyond the scope of Grav itself.
Premium plugins include Cloudflare integration, Algolia search, a premium theme.... etc
How many CMSs are there now? How come people are still making more? Why isn't this a boring, fairly stable commodity category the way web servers or something are?
You know, like dos-on-dope -
Probably too many [1].
> How come people are still making more?
To show they (or their new tech stack) can, to avoid licensing issues, or to have a system tied to their needs.
> Why isn't this a boring, fairly stable commodity category the way web servers or something are?
For what it's worth, it is... the market is uttery dominated by Wordpress (~43% of all websites, and 63% of all websites using a known CMS), followed by "WYSIWYG builder systems" (Shopify, Wix, Squarespace), Joomla and Drupal. The "large enterprise" market seems to be firmly in the hands of Adobe AEM which is an utter PITA.
[1] https://en.wikipedia.org/wiki/List_of_content_management_sys...
Sometimes these files are being kept in memory by the server to offer very fast read access.
This is used to keep a stack simple and it makes your data easily versionable.