Hello! Deputy Webminister here. I’ve done a couple of “programming with Brighid” posts on my personal timeline and it’s been suggested that I share them more widely here with the Kingdom. The gist is I’ve been picking a random topic I want to talk about regarding the Midrealm tech stack and then try to explain it so that anyone can understand. So if something doesn’t make sense, tell me, and I’ll try to explain it better!
Now I know everyone is at Pennsic but I also know y’all have cellphones and plenty of free time in which to do dramatic readings in camp. So let’s talk about why the Kingdom sites are on WordPress.
First, a bit of background. There’s specializations in tech. I am a software developer, specifically what we call a “back-end” developer. What this means is that I write the code that makes the app do things. I don’t tend to touch the front-end, which is the code that makes the app display things on your screen, but I can work with it if I have to. So if you’ve ever wondered why some parts of our site look kind of meh, that’s why, it’s not my specialty.
Another important specialization is “DevOps” and those are the folks that make the servers and everything connected to them work. Think of a web app like a multi-tiered cake. Devops is the bottom layer upon which everything else is built. I have a little devops knowledge through a combination of mentoring, reading, and learning on the fly with my own personal servers/the Midrealm servers. (if that last one scares you, it’s okay, I’m scared too and that’s why we have really really good recovery mechanisms)
So why is devops important to an organization like us? Well, devops is what makes the server work.
Quick detour to define what a server is. A server is basically a specialized computer that runs internet apps like our website. A server has software installed on it that allows it to give webpages out to people that request them. Think of it like installing Windows and Word on your PC… except you’re installing the operating system that makes it capable of being a server and then the program that handles handing out webpages.
Devops also encompasses things like email, firewalls, DNS (I’ll talk about that some other day). I’d say that most of the work I do for the Midrealm is actually devops and considering I told you earlier that I’m not actually working in that field… there’s been a very steep learning curve. Everything is working right now because I picked the easiest and most standard setup I could. Something that could be maintained with a low level of devops knowledge.
Which brings us to WordPress. In the past, all the local groups had their own servers and could do what they wanted with that. If you were like me and knew how to write stuff, this was great! I could do whatever! But I learned some hard lessons from that as well – handing off custom stuff doesn’t always work in smaller groups. Additionally, someone was taking care of the devops work in the background to keep the servers up to date and running and that is not a small task.
Then we needed a new host. If you’re not sure what that means, imagine a landlord saying they’re not renewing your lease and now you need to move. It also meant that we could reimagine what we wanted our website to be built on. Maintaining a fleet of individual servers is quite frankly beyond the capabilities of our volunteer pool. I also feel that a full-fledged server is beyond the needs of most groups. (remember how I said a server has its own OS? you can install all sorts of things on servers) Heck, I think a lot of groups could get by with something like a one-page site like what cardd.co offers, but cardd.co doesn’t have multi-logins. (I asked. And I use cardd.co for a lot of my personal sites because it is cheap and so easy to use and I cannot recommend it enough if you need a webpage which is the only reason I’m bringing it up here)
While investigating our options, I found WordPress MultiSite. It is a single installation of WordPress (again, think of it like installing software on your personal PC) on a single server. We are only maintaining one server. All the patching, major version updates, firewall config, and other assorted devops work only happens on this one server.
(as an aside, there is a way to run miniature fake servers inside one server and I’ve done that on my personal servers, but it introduces Yet More Complexity and frankly a whole fleet of those is beyond my current skill level)
What MultiSite allows us to do, however, is have many many individual sites inside of it. We also have a control panel for all of those sites and a specialized user called Super Admin. A local group can have their own WordPress site with their own database tables and their own plugins and pages and users and everything you’d get out of a normal installation of WordPress. But we Super Admins can also go in there and access those sites in case something happens or the group needs additional help with getting something to work. Before the switch, I wasn’t able to access group servers. Now I and other Super Admins can go in and do whatever needs to be done if an individual group needs a hand. It also means we can share plugins, there’s a couple premium plugins that our licensing allows for use across the entire MultiSite. Updating WordPress is also done only once on the MultiSite, so that even if a group’s Webminister isn’t logging in on a weekly basis, I am, and I’m applying those updates for everyone on the MultiSite.
It is a loss of capability for groups, as groups are now restricted to just using WordPress. No more custom code or choice in CMS (content management system – the kind of tool WordPress is, basically) But it’s also a simplification of responsibility for the Issues Team and lowers the barriers for individual groups who might not have professionals willing to volunteer their time. You don’t need to be a programmer or have in-depth IT knowledge to be a Webminister now. You just need to be able to learn WordPress.
I’ll attach a screenshot here of what that super admin control panel looks like, to give you a better idea. But otherwise, that’s about all I wanted to talk about. Next time I’ll talk about something we get a lot of questions about: why you can’t edit your award recommendations anymore.
Anyway, bonus points if any of you did a dramatic reading of this post in camp on my behalf.
(note to the admins: so sorry for all the edits, it should not be this hard to format a post so it’s not a literal wall of text)