As already mentioned, I've lately been working on migrating my Website from Wordpress to Grav - first out of curiosity, later on because I became more and more convinced, this would be the better Option in the long term, due to the unique Features of Grav (and, admitted, I was also partly pissed off by the current Development Direction WP has taken, as well as the attitude of their staff - at least, those I had to deal with in the Process of Plugin Approval).
Of course, this was not just a quick task, but implied a substantial amount of work, since I had customized my Wordpress Site over the years, not only with regard to Theming, but also via Plugins, part of them adapted to my needs or even written from scratch by myself.
So, the first big Task was to somehow import the Content (Blog, Pages) from Wordpress, which turned out to be less work than expected, due to this Import Plugin (which required a bit of Adaption, though).
Then, I had to identify, which Grav Plugins could replace those I had been using for Wordpress, namely:
- Cookie Consent
- Custom Auto Excerpt
- Folder Gallery
- Google Sitemaps
- Icalendar Widget
- Mail Address Encoder
- Mail SMTP
- Ninja Motd
- Open Street Map
- Simple Hits Counter
- Simple Yearly Archive
- ICS Calendar
Which is quite an impressive List .
Luckily, I could just omit those Plugins which were dedicated to Database repair/migration/maintainance as Grav does not rely on any Database whatsoever ...
Of course, my first Approach was to just find and evaluate existing Grav Plugins, which could replace any of the above mentioned - so here is a List of what I found (and currently use) in the form of a Table:
|Akismet||Comments||ReCaptcha built in|
|Cookie Consent||Cookies Notice|
|Custom Auto Excerpt||-||Built in (Grav)!|
|Mail SMTP||Grav Core|
|Mail Address Encoder||Grav Core|
|Open Street Map||Map Marker Leaflet|
|Simple Yearly Archive||Archive Plus||Still needs some Adaption...|
So, what's left from the initial List ? - Basically this:
My very own Solution for automatically syncing my public CalDav Calendar to my Website, wp-caldav2ics, cannot be directly ported to Grav, as this does (currently) not have a built-in Task Scheduler like WP-Cron.
But, not a big Problem for me, as my Webhoster (Netcup) offers ssh access as well as native cron Jobs, so, all I had to do was to create a simple PHP Script out of the WP Plugin without any User Interface which works just fine . Of course, this does not help anyone who is running their Website on a restricted Hosting without ssh/cron...
As for the Icalendar Widget, I just finished a new Grav Plugin: Icalendar which does just what I need: provide a short List of Upcoming Events in the sidebar, no more, no less.
And, finally, I wrote a simple Replacement for the Hits Counter: Ipcount which, admitted, still lacks a History, including graphic Presentation, so, I might add that at some point in the Future (if I feel the need...).
Of course, there are still some Improvements to be done, e.g. a full featured Multi-ICS Calendar, the still rudimentary Blog Archive and so on, so stay tuned.
As a summary, I'd like to state that, despite all the work, this was a pleasant experience, and well worth the effort. I learned a lot in this process, and the outcome is more than satisfying, as Grav offers some outstanding features, that Wordpress does not have, namely:
- modern Template System (Twig)
- Installing and maintaining 3rd Party additions via composer
- Plugin Development is much easier and straightforward
- easy Plugin / Template / Page Configuration via Frontmatter / Twig (no endless clicking-around in inconsistent Widgets)
- no Database hassle
- no more and more messed up Backend / Content Editor
- no increasingly spammed Backend by Plugin Ads
- easy to move Website around (e.g. to Subdomain or different Folder) or make Copys on another host
- much easier local Content Creation, then just Upload to Production Site (via sitecopy or even git)
- super easy Foto Gallerys: just put Image Files in corresponding Folder (Blog or Page) and you're done !
- friendly community
And a last note about the mentioned local content creation (e.g. on a staging site, before push on live site): especially to make this even easier, I created an extra crafted Docker Image for this task - it contains all you need for Grav development - grab your copy at GitHub.