Unreal Community Wiki
WebsiteSometime in 2020 I was working on some projects in Unreal Engine and needed to reference some documentation. The official documentation at this time was lacking a lot of critical information, often just being an auto-generated list of functions and classes with no context.
Thankfully, Epic maintained a wiki that members of the community were able to contribute to. Granted it had been locked at some point in the past couple years, it was still a valuable and relevant resource. Pulling up the wiki, I was instantly redirected to the forums.
That’s weird, I thought to myself. I went to Google, found a link to another post on the wiki and encountered another redirect to the same forum post. Pausing for a moment I took a closer look at the post and found that the wiki had been taken down indefinitely citing “security risks”.
# Wait, where am I supposed to find that information now?
People were understandably livid. The thread became a constant stream of frustrated users letting the poor community manager know how much of a setback this was.
Frustrated and needing to push forward on my project, I decided to focus my energy on a solution. My first approach took me to the Wayback Machine to see if I could start scraping data there.
As I managed to successfully find and salvage some articles, I set up a GitBook site to host the information. I shared a link to the site in a few different locations, including Reddit, hoping that it would be useful to others.
A group of folks looking to establish a new wiki reached out and asked if I wanted to combine efforts. I agreed and we started working to set up a new site. The initial version was a simple MediaWiki deployment to hold us over while I put together a custom solution.
# Version 1
The initial version was built using Laravel and PostgreSQL. It provided the foundation of the revision-based page system that is still being used today (granted with an entirely different set of technologies).
As I was working on the new build of the site, the other team members were working with the community manager to get an official dump of the old wiki’s contents. This was huge, and got us up and running with most of the original content.
# Getting an Epic MegaGrant to keep development going
The wiki was generating quite a bit of traffic and I knew that it was going to take some extra effort to keep it running smoothly (not to mention the cost of hosting). I decided to apply for an Epic MegaGrant to see if they would be willing to help out.
To my surprise, I was awarded a grant sometime during 2021. This was huge and allowed me to continue development on the site and on Catalyst Softworks projects for the remainder of the year without needing to take on client work.
# Version 2
Over time I found the Laravel+PostgreSQL site to be a bit cumbersome to work with. In 2021, I decided to rewrite the site using NextJS and MongoDB. This decision was made because I felt a lot more comfortable working with React and Typescript and wanted to take advantage of some MongoDB features that I felt would better fit a wiki.
With the shift in technology came a fresh coat of paint and a more minimal layout. There were… pros and cons to this change. While some complaints the community were resolved with this rebuild, new issues took their place.
# Version 3 (Current)
Something the community had been asking for was a way to contribute to the wiki. They really wanted it to be an open-source project that they could help maintain. I hadn’t really built the wiki in a way for it to be made open source and there were some things with the NextJS build that were quite hacky.
At this point I had been spenting a lot of time with SvelteKit and tRPC. I decided to rewrite the site one more time using these technologies with the same MongoDB backend. Once I had completed this effort, I open sourced the project on GitHub under the AGPL 3.0 license.
# My on-going involvement
I still maintain the site today, though my efforts are solely focused on bug fixes, reviewing site edits, and monitoring the related Discord server.