Running the Nexus sites
Posted 07 July 2010 - 05:40 PM
Let me start by saying that the Nexus Sites have to be run as a business. There's no other way you can run a stable operation like this without the sites having their own bank account and in order to do that you need to be a registered company. There's quite a lot of admin and bureaucracy that comes with this; I need to balance the cheque book, keep up with my accounts and submit these to an accountant who then needs to file them with Companies House, the government. As a business there is both revenue and expenses. Revenue comes in the form of advertising and premium memberships and expenses come in the form of server bills, bandwidth bills, accounting fees, legal fees, software purchases (such as the forum license) and all those unforeseen circumstances that might require me to pay for a server admin at a high premium. Oh, and tax.
There's quite a history to the Nexus sites, starting back in 2001 when I was 15. The sites weathered many troubles and I was lucky enough to get a helping hand from Dalin over at Morrowind Summit. Many of the great sites around me (Morrowind Files, Morrowind Mods, etc.) didn't manage to stay afloat and as a result many great files were lost forever or put into a state of "permission limbo". Having seen the demise of many good sites for Morrowind the ongoing aim of the site was not just to become popular and an asset to the community but a permanent asset to the community; one that is self-sustaining and financially sound; not only able to support itself but also to be able to support growth when it is needed. New hardware, new servers and new bandwidth pipes are all required on a regular basis. That's because the sites aren't stagnating; they're growing.
To assure there's money to support the sites and future growth I need to constantly monitor and adapt my advertising inventory to get the best rates. The Nexus Sites are very much international; only 30% of the site's traffic comes from the United States and the majority of internet advertising is focused on the US market. US traffic is the sought after traffic by advertisers and traffic from other countries rarely yields rates above 25% of that of US traffic. As a result I need to optimise my advertisers to assure I'm sending US traffic to the highest paying agencies and sending international traffic to the best agencies for specific countries. One advertiser might have the best campaigns one week and the worst the next so I need to be constantly shifting my inventory about based on the rates going. This obviously requires quite a bit of research, and often some guess work, but I tend to get it right most of the time.
I also try to look after my Premium Members as much as possible; these are the folks that really fund the sites and without them all would be lost. If Premium Members have a problem I normally drop everything to sort it out for them if I can.
With the financial aspect of the sites secured and up-to-date I then need to make sure the hardware is performing adequately. There's not much point to a site that only works half-the-time. I'm permanently tweaking the server configuration files, monitoring bandwidth and server resources and tweaking the behind-the-scenes code for better performance, especially on Sundays when the traffic is at its highest.
I have to work out if the servers are coping, and if they aren't I need to establish where the bottleneck or problem is (which is often the hardest part) and then try to find a solution.
Recently the sites have been getting a lot of MySQL errors. They're often random and don't stop the site from loading, they'll just stop a particular aspect of the site from showing and instead show a big error instead. Something I've been working on recently is logging the errors better and trying to get the code to fix the issue on-the-fly without the user even realising a problem has occurred. Does the page sometimes take a few seconds to load when you're browsing the site? It's probably because the site threw up an error and the code is trying to sort it out for you without making you reload the page. My logs show that MySQL errors are now down by 300% because of this change, and I bet you didn't even notice, did you?
On a normal day I'll receive about 30 - 50 emails and 5 - 10 private messages from people who need help. A large majority of these are people who have forgotten their login details or didn't activate their account in time. These need to be dealt with (or ignored).
I'm constantly checking the forums every day and browsing the day's active content for any topic titles that might require a response from me. I'm not very active in many parts of the forums because I just don't have the time for it, but anything in the Feedback forum is bound to get my attention, even if I don't fix the problem straight away.
I sing their praises a lot but the moderation team on the Nexus sites is second to none. I'll safely and proudly say there isn't a better one out there. LHammonds, Buddah, AlienSlof, Bben46, Myrmaad and Vagrant0 do a great job every day keeping the riff-raff out and keeping the sites and forums clear of the stuff none of us want so that I don't have to; so that I have the time to do all the other stuff.
On a popular network like the Nexus where 1,600 new people register and 2,400 new posts get put up every day it's a daunting task and the sites could quickly fall in to anarchy if left unchecked. I'd have no time for anything else if I had to moderate the sites myself so the moderation team here are a very valuable asset. We run a tight ship with some firm rules and many people simply sign up for sites and act like they would on 4chan or Something Awful. That's not how we operate and people who do this tend to get shown the door very quickly by our moderation staff, often with the help of astute members of the community who report trouble-makers. We couldn't do it without them either.
From time-to-time a high-profile case will come up that will require my attention but for the most part the staff operate autonomously and their judgement is almost always in line with my own. That's a real asset. They'll chime in on plans I have for features on the site and bring up any issues, be it with moderation or with the site for me to take a closer look at.
On the rare occasion I actually get to dabble in the site code it's often to fix some stuff or make some minor tweaks to the site.
I'm definitely not a professional coder. I'm self-taught and I'm not good. You might think I'm being modest but if a proper PHP coder were to take a look at the code for the Nexus sites he would laugh loud and hard and then cry. All the code is written from scratch, all by me, and I have thought in the past to throw some money at a proper programmer to make it in to a water-tight, better performing site. I've no doubt the sites could run on less powerful (and ergo cheaper) hardware if it was coded better. The inherent problem with this is that I like to add new features and update old ones at will and I can't follow proper PHP code well. I can only really follow my own. For example if I crack open the forums and take a look at the code I can't tell you what's going on or how they did what they did. It's almost impossible for me to backwards engineer it because it's so far above me. I don't want this to be the case with my own sites.
Each new feature I add to the site adds to the server's load, straining it's resources. I have to analyse the state of the servers from my time monitoring them and ascertain whether the feature is actually feasible. I could code a feature on the site that told you each time a file you had downloaded had been updated, like on Facebook when someone posts on your wall and a little red marker shows you there's been an update, but then the site would slow to a horrible crawl before keeling over and dying a horrible death. I don't have a massive server farm to support the site unfortunately.
Once I've worked out the server's can cope with the added load from the feature I then have to design and implement the system. This normally doesn't actually take that long. While professional or high-exposure sites like Amazon or Facebook have to put their updates through rigorous testing that takes up a lot of development time I tend to make sure it works and then get you guys to test it for me. If it breaks I'll fix it on-the-fly, normally after someone has told me it's broken via email or in the Feedback forum and then wait for the next problem to crop up. This isn't professional but thankfully you folks don't seem to mind too much if the site hiccups every now and again just so long as it comes back.
Once the feature is in place and working it's back to the maintenance of the site, monitoring the server resources and graphs to make sure the server is handling the new updates alright.
Personally I find it important I actually maintain a keen liking for the games my sites support as well as gaming in general. The day I stop enjoying playing video games is the day the Nexus is doomed. It's been a long while since I played Oblivion but I try to install it and give it a play through once a year with the latest mods to keep my interest up. Dragon Age I completed a few times after release and the same with Fallout 3, albeit I need to do more exploring in Fallout 3 but with New Vegas so close around the corner I'll hold out for that.
My gaming playlist has been rather stagnant of late. I've got quite a back log of games I'd like to play but never get around to doing it. Games like Mass Effect (1 and 2) and Mount and Blade are installed on my PC but I've yet to play them. I'm a big fan of multiplayer games including Heroes of Newerth, Counter-Strike, Day of Defeat, Pirates, Vikings and Knights 2 and HL2: Deathmatch. Four of my five housemates also enjoy video games that often means Left 4 Dead 2 and Heroes of Newerth matchups happen almost every night if we're not being lazy in the living room. The inherent problem with multiplayer games is that they prevent you from completing single-player games. Why start a new game of Mass Effect when I can send my killer parrot off to maul a Viking in PVK2? That single-player game will always be there, but that full server on HL2:DM might not have the same good players on again. Similarly that XBox 360 in my bedroom means I've swapped a bed-time story for Assassins Creed 2 right now.
The Nexus sites take a lot of work to keep up and running. Lots of that work isn't clear or apparent but needs to be done none-the-less. So now you hopefully have a clue about where I am and what I'm doing most of the time.
Posted 07 July 2010 - 08:04 PM
My gaming playlist has been rather stagnant of late. I've got quite a back log of games I'd like to play but never get around to doing it.
I have this problem myself Dark0ne. I've got several unplayed titles that I own as well.
Just wait till you have kids, then time really gets limited.
Anyways, thanks for all the great work you and your team does. This site rocks because of what you guys do.
Posted 07 July 2010 - 08:54 PM
You do a great job though Dark0ne. I don't even know a lick of PHP, though I did dabble in ASP several years ago.
Posted 07 July 2010 - 09:56 PM
(I know, impossible scenario. Then I do the math and realize that amounts to more than about 70 million dollars.)
Posted 07 July 2010 - 10:05 PM
You're doing great work here Dark0ne, thanks for doing so for almost 10 years.
Posted 08 July 2010 - 07:55 AM
The entire task of constructing a site, keeping it running and moderated, keeping it monetarily sustainable and keeping it interesting sounds very daunting...
A fine job you do Dark0ne.
Posted 08 July 2010 - 10:10 AM
I'm curious.. If everyone on the Nexus (Including users who never post, and just download) paid to become a premium member, would that generate as much revenue as the ads do?
If every member paid for one month's premium membership I'd have £4,000,000 at which point I'd be too busy making a killing on oil shares to run the site. I'd just pay someone else to do it! Haha.
Posted 08 July 2010 - 02:17 PM
I know, I know....I've been watching the True Blood series for far too long.
Posted 08 July 2010 - 04:47 PM
Great set of sites -- long may they last.
Posted 08 July 2010 - 05:46 PM
I'm seriously thinking of buying that premium membership considering I'm starting my new job tomorrow and I'm saving for a lifetime membership to. I tryed before, but Paypal didn't liked my credit card for some reason and no, it wasn't empty.
So I guess it's thanks instead of cheers,