Eliora Tanzania is a project initiated by my girlfriend and a few other people. Since every project needs a website and a domain I am helping out there.
In the beginning, I did create a static site with Hugo, used the wowchemy theme, and did the hosting with GitHub Pages. This works great but I had a few reasons to switch:
Adding content is not easy for nontechnical folks. I can fully relate to that. I have moved my blog from Hugo to Ghost as well. Why? Because less friction leads to more blog posts for me personally. I can not imagine how hard it must be for my girlfriend to just write something. For markdown, you need to know how links work, and where to put images on the Hugo project. I even thought her a little bit of git, so that post will get published via a GitHub Action pipeline.
Despite having a static site, updating the wowchemy theme is kind of a pain. They are moving fast. I have to update and secure a Ghost instance already. So one more does not hurt much. And we are just sticking to the default Casper theme. Not much work on that side.
The membership function from Ghost could be a potential income for their donation system. (Need to play with that first.)
You can also let your Ghost blog be hosted by Ghost itself. As you can see self-hosting is not easy. They will take care of hosting, mails, updating, backups, and more. Concentrate on content and let the support team help you out when in need.
First I just did set up a test instance for my girlfriend to migrate the content and explain to her how Ghost works. The visual editor makes things so much easier!
Do move was easy. The test instance was located at a test domain. After moving content I just had to change DNS entries and the Ghost URL in the docker container. A new Mailgun domain was also needed for mailing passwords but I think this counts as DNS as well.
Setting up redirects
After the content was moved (wasn't that much) I checked the sitemap of the old page, and what redirects I have to set up. The site did not get much traffic, but I do not want to break links, which people might have shared.
With the Hugo setup blog posts were located at /blog/$postname, but with Ghost, I wanted to stick with the default behavior of /$postname.
Ghost has its own way of creating a redirect file which you then can simply upload via the admin interface. Here is the Ghost documentation about Implementing redirects in Ghost.
Here is my redirects.yaml:
You can upload this file under the Labs section at this moment. I did not create all redirects since not all of the content was moved.