Grav CMS | Self-Hosted WordPress Alternatives Part 2

When I started the Self-Hosted WordPress Alternatives series in July with a review of Craft CMS, there were several comments asking what I thought of Grav – an open source flat-file CMS that also has a really cool looking website.

I had never heard of Grav before, but was immediately drawn to it for a few reasons. It’s open source, which is one of the things that I really love about WordPress since it enables a much larger community to work on the project. And since it’s a file-only CMS, there is no database to mess around with which in theory could make development and migrations easier in the long run.

All of this sounds great, so let’s see how it stacks up!

Installation

There are two versions of Grav that can be installed – a standalone version without a UI, and a version that includes an admin plugin that creates a user dashboard much like we’re used to in WordPress.

You can download both versions at getgrav.org. Once you’ve downloaded the .zip files, you just unzip them and drop them where needed on the server.

If you’re using the Grav + Admin version, you’ll also need to configure the .htaccess or NGINX config file (there are examples supplied in the webserver-configs directory), and visit the site to run the installer, which sets up your admin account.

Winner: Grav – without the need to create a database, it’s much simpler to set up Grav. You just download the files and drop them into your server’s webroot – it doesn’t get much easier than that.

Usage

The Grav + Admin bundle includes a neat-looking dashboard that lets you manage the website and create new pages without having to manually edit any files. If you’ve used any CMS dashboard before, you’ll feel right at home:

Grav CMS dashboard

Digging into it further reveals some areas where I think WordPress handles things just a bit better. The Configuration tab contains what seems like hundreds of settings, some of which are loosely organized and lacking explanation. By contrast, WordPress has relatively few settings available in the dashboard, and most have inline explanations which can help avoid a few trips to the documentation.

Another area where WordPress has the edge on Grav is in the Media Library. Since there’s no database with Grav, there’s also no media library or centralized place to view all of the files that have been added to a page or post.

Winner: WordPress. Maybe it’s because of Grav’s developer-focused nature, or the fact that WordPress has had longer to tweak itself, but WordPress feels more intuitive in most dashboard-related actions.

Core Architecture

Right off the bat, Grav requires PHP 5.5.9 or above, which means it can take advantage of many features of PHP that WordPress can’t, due to WordPress still supporting PHP 5.2.4.

This advantage really shows when looking through the Grav codebase as it takes full advantage of PHP namespaces, dependency injection, and event dispatchers. This doesn’t just affect Grav’s core – all of this can be utilized to build cleaner themes and plugins as well.

Winner: Grav. As a newer CMS, it hasn’t stood up to the test of time like WordPress, but there’s little doubt that it’s starting off on a better foot and has a much cleaner codebase.

Themes

Like WordPress, Grav has an integrated theme repository that is available straight from the Grav Admin dashboard:

Grav theme repository

WordPress definitely has the edge in the number of themes available, but like Craft CMS, Grav bundles the Twig templating engine to make creating templates faster and easier.

Winner: Tie. While WordPress obviously wins in regards to the amount of themes available, Grav wins in having a clean templating system.

Plugins

Grav has an integrated plugin repository, which makes finding and installing plugins as easy as it is in WordPress. However, much like with Grav themes, there are a limited number of plugins (only 210 at the time of writing), compared to over 50,000 WordPress plugins. This could be good or bad depending on your perspective and the number of plugins you need for your site.

Winner: WordPress. I think at this point it’s going to take a long time for any other CMS to catch up to the number of plugins that WordPress offers, and this will continue to be one of the main selling points of WordPress for years to come.

Custom Fields

The WordPress custom field system currently leaves something to be desired. By default you can only add text fields, or use other plugins to add other types of fields.

By contrast, Grav offers support for a wide range of custom fields by default. Custom fields are defined in Blueprints, YAML files that are placed in a theme or plugin that contain information about the available fields used for a given template.

Winner: Grav. Core support for multiple custom field types is something that I’d love to see in WordPress.

SEO

Both Grav and WordPress offer SEO-friendly permalinks right out of the box, but leave the rest up to either custom code or plugins. WordPress has several time-tested SEO plugins like Yoast SEO and All in One SEO Pack.

Grav offers a few SEO plugins as well, but since they are relatively new, they haven’t had as many eyes on them and are still adding new features.

Winner: WordPress. While both Grav and WordPress have some SEO plugins to help in this area, the older and more feature-rich plugins available for WordPress beats having to set everything up yourself or use a plugin that isn’t yet feature complete.

eCommerce

This is where I think WordPress really has the upper hand. With pre-made plugins like WooCommerce and Easy Digital Downloads, it’s dead simple to create a eCommerce website with WordPress.

Grav doesn’t have any major pre-made eCommerce solutions as of yet, so you’re left to create your own solution or integrate with something like Shopify. While this may be no problem for smaller stores that just have a few products, most eCommerce websites will likely want to go with WordPress.

Winner: WordPress. I think most eCommerce stores will prefer a time-tested solution like WooCommerce, and will likely shy away from Grav for this reason.

Documentation

The documentation is one area where Grav really shines. It’s intuitive to navigate, and everything is organized well. Like WordPress, it has both regular documentation and code documentation.

Grav CMS documentation

Winner: Grav. Having the documentation so well-organized goes a long way, and it’s super easy to find anything you need. By comparison the WordPress documentation feels kind of all over the place.

Pricing and Licensing

Grav and WordPress are both open-source, with Grav using the MIT license and WordPress using GPL. Both content management systems are also free, although Grav plans to create a paid version of the admin plugin.

While I couldn’t find any hard info on the price of the pro version or a potential release date, it will be interesting to see how the pro version of the Grav Admin plugin enhances the Grav experience.

Winner: Tie. Both WordPress and Grav are open-source, which is just awesome in my book.

Conclusion

Even though I’ve only spent a few hours with it, I love Grav. I love that it’s open-source, I love that it is a file-only CMS, I love the clean codebase, the design, and almost everything else about it. There’s no doubt that it will be a strong contender to WordPress, and I look forward to seeing where it goes in the future.

While it may not be right for everyone (especially eCommerce sites), if you’re looking for a solid alternative to WordPress, I highly recommend that you check out Grav.

Have you tried out Grav or used it for any projects? If so, what did you think of it? Let us know in the comments.

About the Author

Matt Shaw

Matt is a WordPress plugin developer located near Philadelphia, PA. He loves to create awesome new tools with PHP, Javascript, and whatever else he happens to get his hands on.

  • mantap!

  • Chris

    Really great timing. I saw a tweet about Grav last week comparing it to WordPress and I started having a look. Pretty impressed so far and seems quite powerful.

  • growdigital

    I think static site generators are the way to go for lots of use cases. Netlify have made a React admin frontend https://www.netlifycms.org/ – should work with many different flavours of static CMSes (I’m using Metalsmith).

    • Khürt L. Williams

      I like the simplicity and security of static site generators and the fact that most use Markdown. But the learning curve is a bit steep. I can build a WordPress web site and with simple documentation my clients can create pages and posts etc. quite easily. I can even install a WYSIWYG plugin to help them. None of my clients want to learn Markdown.

      • rick gregory

        This is the other criterion that’s really important to me – can my clients use it without a lot of training and with high confidence to manage their content? They aren’t going to use Markdown – they’re marketing coordinators, analysts and the like. Even though it’s pretty easy, normal people are use to WYSYWIG interfaces. It’s bad enough that the posting UI in WP doesn’t show them the site as it will appear on the front end.

  • richalt2

    Regarding media support, even WordPress is quite hopeless. We have 1000s of photos loaded and finding what you want is nearly impossible. I find WP completely disorganized here. I need a plugin which shows and supports creating some reasonable directory structure.

    • Mary-Ann Zykin

      Have you checked out the Media Library Assistant plugin?

    • Brian Meyer

      rich, there are solutions. It’s definitely not hopeless. It’s not disorganized at all, and it has a basic meta-data system. What’s the purpose of a directory structure, when you’re using a database?

    • Khürt L. Williams

      richalt2, how is a directory structure that contains no meta data better than a database that has all the image attributes? Oh, and WordPress does have a media directory structure as well.

      By default, WordPress stores images and media uploads in /wp-content/uploads/ folder on the server. All uploads are organized in a month and year based folders.

      For example, all media files uploaded in in August 2017 will be stored in:

      /wp-content/uploads/2017/08/

      When I upload images to WordPress I add titles, descriptions and alt tags. That makes for excellent SEO and ease of finding later. I also name my files properly before uploading. So photos for a post about a family vacation to the Bahamas would be named something like family_vacation_bahamas_2017_1.jpg family_vacation_bahamas_2017_2.jpg etc.

      No CMS can make up for poor taxonomy.

  • Cool review. I tried grab some time ago and the only problem I had was about theming. Another promising CMS is Pagekit.

    • Dan Knauss

      Pagekit is another spinoff from the Joomla and WordPress communities. Like Andy Miller, their core developers are a Joomla firm that branched into support of other platforms as well, including WordPress. However, with Pagekit you can really see the blend of influences from both Joomla and WP.

    • Matt Shaw

      Yep, Pagekit is on my list!

  • rick gregory

    I think you should evaluate this from the perspective of a client too. How’s the editing experience for a non-technical person, can they easily do basic formatting, etc. Grav “…natively support Markdown content, but you can use plain HTML or even a mix if you wish.” Yeah, that’s going to work with the marketing coordinator who updates the site.

    Also, I don’t regard the number of plugins as an inherent positive. Once a CMS has good choices for the most common things there’s little advantage to adding more – no one really needs any substantial fraction of WordPress’ 50k plugins. While that breadth pretty much ensure that there’s a plugin even for niche requirements, it’s incredibly hard to use WP’s builtin search to find them. I was looking for a plugin I’d used that revealed style in Gravity forms. Searching for ‘gravity forms styles’ brought up dozens of results, most of which had nothing to do with GF much less its styles. So how easy it is for a user to find the right plugin is key, also.

    • Matt Shaw

      Yep, I agree that the large number of plugins can sometimes hurt as much as help. And the WordPress plugin directory could definitely use some improvements. But as you said, there’s pretty much guaranteed to be a plugin for anything with WordPress.

      I think it really depends on what you’re after and the size of the site you’re developing.

      • rick gregory

        I look at it this way – does a CMS have plugins (or builtin features) for the X core features (SEO, contact forms, etc)? Are there at least some alternatives for each core function since requirements vary?

        Once that’s there it clears the viability bar for me. But what I was trying to get at above is that sheer number of plugins hits a point of very quickly diminishing returns. 50,000 plugins likely don’t bring anything to the platform that 5000 didn’t.

  • Tropical Server

    Grav is a flat cms with only 2 years old. It was created by Andy Miller “Rhuk”, one of the Joomla! founders. He designed all Joomla! pages and he is the Rockettheme CEO.

    Grav it’s awesome! I don’t think it can compare with WordPress.

    I have developed a new website based in Grav CMS. If you want to view it:

    https://webless.com

    • Nice website design.

      • Tropical Server

        Thanks

    • Khürt L. Williams

      I would have expected your Grav site to load faster given it’s not executing any code. It felt slow.

      • Tropical Server

        Hello Khürt, the site it’s no finished, I’m testing now some server configurations to make the site faster (CDN, cache’s, PageSpeed filters, etc.) I’m playing with them now and for that reason can load slowly…

        • Khürt L. Williams

          Understood. The site looks great even thought it’s not finished. I’ve messed with Jekyll on Netlify. Load times were fast but that could be their server config. I guess I’ll have to build out my own servers with Jekyll and Grav to see for myself.

    • Matt Shaw

      Looks good!

  • Luke Cavanagh
  • Hugo Avila

    This comparation is tedious, GRAV is a CMS for developers, when a developer uses GRAV will deliver a website with a customized admin for client needs, and the exact required html output in frontend. In counterpart wordpress is for website creators who want just to create a website like a lego bricks. Real website developers actually does not need what wordpress offers and non-developers actually dont understand what GRAV can do.

    • Khürt L. Williams

      Agreed!

  • Hsiang Lee

    Grav is awesome, the only complain is I wish they release more Grav admin theme, I am not that fan of material color.

  • Jallopsys

    WordPress and Grav and other WordPress alternatives are good choices as website building platforms that allows an average person to create a nice website free of charge. But…

    Many, if not most, people who want a website really want a web BUSINESS –they want to make money with their site. Yet while putting up a site is easy (as the “cheap-quick-easy” marketing hype promises), knowing how to build an online business is another story.

    Neither WordPress nor Grav nor other WordPress alternatives “as is” will build an online business which you get if you know how to do SEO and build traffic. They ALL are missing a do-able start-to-finish BUSINESS process.

    The reality is that most sites never get more than a handful of visitors. And without traffic, income is hard to come by. In other words, No traffic = No profits.

    Surely, you can slog through the mountains of business building advice and tools that are out there. But for most WordPress users and those using these alternatives it all ends up being too much.

    So, despite the dazzling display of WordPress/WordPress alternatives features (even SEO gadgets), the reality for most (non-tech) people who want to create a web business with WordPress or its alternatives is that they need to adhere to an easy-to-follow, all-in-one, proven, ethical webbusiness-building system (not a get rich quick scheme), tailored to say the WordPress platform, to get (1) a significant amount of traffic and get (2) targeted traffic (example of such a system: WealthPrinciples dot net).

    Otherwise… you’ll end up having (and building) only a WordPress/Name of WordPress Alternative webSITE (or BLOG) but not a webBUSINESS.