Good News!

First of all, if you haven't seen me around the site or on the forums, Hello! My name is Will and I'm one of the engineers working on Giant Bomb. We have some good news about the wiki I’d like to share with you all. As I’m sure you know the current wiki is a bit buggy… well, maybe more than a bit… The code base for the wiki is old and was originally developed within very strict time constraints. As a result it’s complex, tightly coupled together, and really hard to fix. It's also really inefficient and slow, (have you ever tried to edit Mario?) That’s really why the wiki has been so stagnant for so long, it’s a giant monolith that is very resistant to change, fixing problems is a lot like replacing one piece of an increasing complex house of cards.

Fixing Bugs in the Current Wiki

So we’ve decided to brush that mess aside, start fresh, and build it from the ground up. We're taking lessons we learned from the existing wiki and input from the community to build it better this time. This blog will be a very technical explanation of what we’re doing. We want to be as transparent as possible during this whole process and keep you all involved along the way. At the bottom of this blog you’ll find a signup form for our wiki email list, if you sign up we’ll send you updates as we progress towards our beta, and you’ll be the first access to the new wiki beta site to test and give your feedback.

Please keep in mind that we are bringing you all in very early in the process, because of that the interfaces will be ugly, code may be buggy, and there’ll be a lot of talk about technical stuff. We want you to see our thought process as we develop this thing and give your feedback along the way. With all those disclaimers out of the way let's talk technical stuff (If you're more interested in seeing a preview of the interface skip down to the video below.)

Building in Layers

We are building this new wiki from the ground up with the future in mind. We don’t want the new wiki to be as coupled together as the current one. Currently almost every piece of the wiki relies on each other piece, they can’t be pulled apart and improved upon. The new wiki on the other hand will be built in layers, each layer doing its set of tasks and knowing as little about the other layers as possible. This will allow us to switch layers out, add new interfaces on top of other layers, and generally keep things sane and expandable. So, here’s a quick diagram of where we are with the current wiki and where we’re going with the new one:

As you can see, the new system has a lot more layers which allows us to focus each piece on a single responsibility. It allows us to upgrade individual pieces and fix bugs without the whole thing tumbling down. And as I'll talk about in the next section, the web service based architecture will allow us to open the API up to other developers later on.

Web Services

At the core of our new design is a set of REST web services that handle ALL interactions with the wiki data through simple service calls. This means that our system is easy to interface with and opens up the potential for all kinds of custom interfaces and even the potential for third party apps using our services directly (It will be a while before we’re able to open our services up to third parties, but the potential is there.) The REST services are pretty close to ready for prime time, they can already handle all wiki interactions (viewing, editing, moderation, etc.) In fact we already have detailed documentation for them which will come in handy when we open the services up for outside developers:

New Edit Interface! ***Warning VERY Ugly Prototype Ahead***

Finally let's get to the part you really care about, the new and improved (and working) edit interface. We're trying some new things with the interface this time around, our focus is on speed and reliability (faster editing and less chance of your work getting lost)

Now, the easiest way for me to explain the new interface is to just show you (This example uses the Comic Vine Wiki because it is the biggest wiki with the largest objects, we are using it as our base for development because it it works there it'll work even better on Giant Bomb):

What's Next?

As I said above, we are still pretty early in the process and looking for feedback. Please post any thoughts you have about the plan and the interface. If you want to sign up for early access to the beta as well as email updates throughout the development process enter your email address here: http://goo.gl/forms/p0gHXlKEfY

The beta will use the Comic Vine database but Giant Bomb users are welcome to sign for the beta too.

I'll also be posting regular updates on the development process here on my blog so be sure to check back here.

We'd love to hear what you think, and I'll be happy to answer any questions in the comments below.

Thanks for reading!

-Will