From Hugo to WordPress

There are a million and one blog posts for “move from WordPress to Hugo!” out there. This is the opposite of that.

Hugo is good

I like Hugo a lot. If you need a static site generator I’d recommend it without reservation! Once I had it going it worked very well. I loved how fast Hugo could build the entire site and it required almost no server resources. Turns out, you don’t need that much raw computing power to serving static files to a handful of folks every day.

Posting though

But…posting was far more complex than I wanted it to be. In the end I was syncing a folder via dropbox, committing my code to a repo, pushing it to a repo on the server. From there a git hook would run to build the site and then move the files to a folder. Extremely cool and extremely obtuse. If I had just one computer it wouldn’t have been that big of a deal to continue on; however, because I’m a glutton for complication, I bounce between 5 different devices (3 macs, 2 iOS devices) within the course of a week.

Having a web interface to log into matches my mental model of “I am writing and publishing” much better. I also dearly appreciate having drag and drop image support as well as WYSIWYG formatting options. Hugo’s support for non-text media is lacking. That’s totally okay! But, I was finding that I was avoiding publishing certain kinds of posts because I was lacking easy tools to do so.

WordPress and Gutenberg

What finally pushed me to make this change was a recent experience building a new website for Workantile. During that redesign we relied on the Gutenberg editor for formatting our pages. I was impressed! You can create fairly complex pages quickly with blocks in a way that just wasn’t easily doable a few years ago without diving deep into theme files. We’re in a bit of a rough transition point going from the classic editor to Gutenberg (and more importantly the concept of Blocks). It’s getting better all the time though!

Problems

The move went pretty well for the most part. Some technical issues I ran into:

RSS Importer

The RSS importer that is built into wordpress needs some serious attention. The biggest issue is that it fails because it’s calling a deprecated PHP function. The fix for this for me was to comment out the offending line. This StackOverflow post was helpful:

php – Call to undefined function set_magic_quotes_runtime() – Stack Overflow

I just found line 72 in the importer and commented it out. I wouldn’t rely on this edit for an import where you didn’t control all of the content, or as an importer you run more than once. It’s a brittle fix to say the least. Here’s the error and stack trace:

An error of type E_ERROR was caused in line 72 of the file /var/www/beta.chrissalzman.com/wp-content/plugins/rss-importer/rss-importer.php. Error message: Uncaught Error: Call to undefined function set_magic_quotes_runtime() in /var/www/beta.chrissalzman.com/wp-content/plugins/rss-importer/rss-importer.php:72
Stack trace:
#0 /var/www/beta.chrissalzman.com/wp-content/plugins/rss-importer/rss-importer.php(178): RSS_Import->get_posts()
#1 /var/www/beta.chrissalzman.com/wp-content/plugins/rss-importer/rss-importer.php(204): RSS_Import->import()
#2 /var/www/beta.chrissalzman.com/wp-admin/admin.php(344): RSS_Import->dispatch()
#3 {main}
  thrown

Hugo’s RSS Implementation

And on the Hugo end of things: Hugo’s built-in RSS generator doesn’t include the full text of the posts. It also doesn’t include categories. I happen to be the sort of person who likes adding categories, so this was a problem! Here’s a gist of my RSS theme file that has the full text and categories:

Hugo RSS Implementation with Categories · GitHub

This looks for the categories set in the frontmatter of your markdown files. If there are none it skips it and nothing is added to the feed for that post.

RSS Redirect

I wanted to make sure anyone who subscribed to my old RSS feed continues to get the new one. To do so I set up a 301 redirect using this plugin:

Simple 301 Redirect

Keeping it around since it’s always nice to have this in a readily accessible place.

Images

Moving images over to the new site involved making sure they were uploaded appropriately to WordPress’ Media library. I toyed with the idea of doing one big import and going through and fixing individual images. Then I found this plugin that just did it for me. Installed it and then Edited all of my posts and resaved them. It ran through and copied everything over and updated the src tags for me:

Auto Upload Images – WordPress plugin | WordPress.org

Inserting images in Hugo was one of the reasons I wanted to get away from it so this was nice to have it just work. After I ran this I turned it off.

Conclusion

So far, so good. I’m happy with this and this post was fully written and edited in the WordPress editor. It’s nice to have “my website” compartmentalized to something I go to on the internet to edit, although I will miss how much posting a blog post made me look like I was attempting to hack the planet.

Ypsi-Arbor D&D Gazette Issue 1 Recap And Announcement

TL;DR: It went well and there’s a big announcement about Issue 2 (spoiler: get ready, the rest of Michigan, it’s your time to shine)!

Go read the Ypsi-Arbor D&D Gazette Issue 1!

Want to make sure you hear about any news about the zine? Sign up here to get updates:



Issue 1 only happened because of people (like you!) submitting their excellent D&D stories and artwork! It was great seeing the D&D Gazette go from half-baked thought to a group coming together to make a thing.

The Numbers

Before publication, there were some soft numbers for what I’d consider a success for submissions and people actually reading it. All told, we hit them, which is heartening! The big banner number was “will 100 people read stories from Ypsilanti and Ann Arbor D&D players?” It looks like the answer is yes! In fact, we reached twice as many readers.

For actual traffic to the zine itself we got a big boost due to timely retweets by friends and by local sportswriter @mgoblog who said the nicest thing about it: “a new challenger for Most Ann Arbor Thing appears… “

Here’s the traffic pattern from May 7th-15th, which was about the only time there was active “marketing.” As soon as I stopped actively pushing it the traffic disappeared:

Note: For those of you who know about analytics I have high confidence that this is mostly legit traffic due to how the URL was shared.

Additional Note: Page value is $0.00. That should read “there is no greater reward than the friends we made along the way (and also pageviews).”

What went wrong?

Oh, so much. Mostly, though, it all comes down to getting the word out. There’s so much happening all the time. In addition to the country burning down, there are a million and one other creative things to pay attention to. Rising above that, even for a minute, is a gift.

The “marketing plan” consisted of a hastily constructed email list, a handful of blog posts, and a few tweets. An anemic plan at best. I did, however, want to see how far it could go with just that, and it went a lot further than expected. When it came time to “release” I did a catastrophically bad job of putting the tweets together. As I noted in the tweet that ended up actually getting shared around, I didn’t even attach the cover image to my initial tweet. So then the one that got shared contained an apology about the cover image. Not the best look.

Issue 2 Will Be Issue 1

Many, many people responded positively to the first issue and that is amazing! One submission has already come in for the next issue, and Hannah Davis reached out volunteering to copy-edit, which is so sorely needed! After launch there were a number of typos that were brought to my attention.

It’s really fun to go from an idea to finished and shipped work. It’s also very hard because when it’s not bringing in money and is entirely a non-mandatory side project, your other options for how to spend your time are “literally anything else.” But, collaborating and making something like this is tremendously fun. We’re going to give it another shot. I believe in me, and I believe in you. Together we can make this happen. Go Team!

So, without further ado: for the second issue we’re going to expand our geographic reach to the rest of the state with the:

Michigan D&D Gazette!

If you seek a pleasant peninsula, look about you, and roll initiative, because it was absolutely a trap.

I toyed with the idea of calling it “Ypsi-Arbor D&D Gazette Issue 2: The Michigan Edition,” but as funny as that is, it’s a mouthful. “Michigan D&D Gazette” will work.

Tell all of your friends across this great state that their stories, artwork, DM notes, one-liners, and ephemera are needed. If you have a submission already, send it on over to my email at csalzman@gmail.com. A more formal call will go out in a few weeks.

Thank you so much for following along so far! Sign up for more news, or watch this blog!



See you in in the Michigan D&D Gazette!