blog master mode
back to index

The new oskstatus is here!

by osk at 2023/06/24 (Sat) 8:41:23 pm (edited)PERSONALUPDATEOSKWARE

If you've ever looked at before, you might have noticed it's not very good. That changes today! I've rewritten it from the ground up, as a proper site as opposed to a hacky PHP script. Go and check it out!

This has been in the works for quite a while! I originally started working on it last year, around late August, but simply didn't manage to get it off the ground. A recent multi-hour outage that should've been totally preventable (...I was asleep, I just had to restart MongoDB) spurred me on to get back to work on it, to solve the problems that led up to it.

I've always hated the way the modern status page works, and this is also represented in my previous status page. Modern status pages (Discord's status page is a prime example) aren't actually status pages, they're PR tools. In fact, Atlassian Statuspage (the most popular status page software, the one Discord also uses) expressly tells people not to automate their statuspage. Atlassian themselves say they're "big believers in maintaining a human touch with incident communication". However, that undermines the main purpose of a statuspage, to answer the question: Is the site broken?

The previous statuspage did just the bare minimum to answer that question, the one I deem most important. Quite literally, it just showed "ONLINE" or "OUTAGE". All automated. And with that, it's already better than whatever Statuspage is doing. In the new statuspage, I highly increased the amount of information, as there's a lot of nuance that a single boolean can't show. For example, I show the amount of players online, so if suddenly an entire continent has problems connecting, it'll be visible even if the statuspage server can still reach the game.

However, there's one more followup question that users tend to have if something ends up being broken: how long will this last? The new statuspage lets me write incident reports, so as soon as I notice something's up, I can write a reason why, and give insight on how long I expect things to take. To add credibility to those insights, you will be able to see all past incidents. That way, instead of creating trust by lying to customers with a blog disguised as a status page, I hope to create trust by showing the real situation, and explaining it where needed.

In addition, I added the ability to schedule maintenance on it. That way, if longer maintenance is coming, you'll be prepared. Of course, I'll still also post notifications about such maintenance on Twitter and Discord.

Of course, these aren't "new" concepts, but it seems like the concept of an honest statuspage that shows real data as opposed to a glorified blog has fallen out of style. I hope you won't need to look at it often, but if you ever do, I hope you'll appreciate the attempt at creating a realistic, honest statuspage!

12 comments sorted by star rate

Miyauchi Mimori

at 2023/06/24 (Sat) 9:31:21 pm

I myself had the idea of making some kind of vitals framework to make a statuspage for my current and future services as my service building gets better with time Additionally can I say that the page looks fucking METAL - PSI

Sakoda Ichiko

at 2023/07/25 (Tue) 3:44:03 pm

You just did something better than a quadrillion couldn't accomplish

Masuwaka Hinako

at 2023/06/24 (Sat) 10:11:11 pm

Everything you make just looks so damn awesome! You inspire me to try making some actual web design!


at 2023/06/25 (Sun) 2:56:19 pm

i'm glad to hear it!!

Chihaya Kotori

at 2023/06/24 (Sat) 9:41:48 pm

i like the departure board style flipping that some of the text does, it really needs a sound


at 2023/06/25 (Sun) 3:01:53 pm

it's my main inspiration, I love the aesthetic of those

Matsuda Kazue

at 2023/06/24 (Sat) 8:53:25 pm


Mashima Mari

at 2023/07/04 (Tue) 9:38:17 pm

I love your web design. The shapes, the colors, the animations, the font selection... You're such an inspiration, I'll toast for you someday. You convinced me to start working on some projects and to make my own alias with its kinda "branding" too, I'm still working on that. Cheers ♪(´▽`)

Shibasaki Yumeko

at 2023/06/25 (Sun) 4:09:42 am

> "a proper site as opposed to a hacky PHP script" So are you still using PHP for the site? The main still lists [ PHP ] under, and I'm not sure if that's intentional or not. I know the request endpoints no longer end in .php and return JSON, but I doubt that's conclusive evidence.


at 2023/06/25 (Sun) 3:01:24 pm

oop, i didn't update that yet! should be fixed now it uses a standalone NodeJS service now, built around Tabi, a little inhouse webserver for Node (based around µWebSockets), the same thing TETR.IO runs on. I do like using PHP for smaller projects since it requires no setup or scaffolding, since I already have a PHP server lying around. But, for things like this a bespoke service is definitely better.

Fujioka Futaba

at 2023/07/01 (Sat) 9:14:44 pm

How do you fail gracefully in case a server is being DDoSed and you can't pull the data about active players or load? I imagine outputting this data would at least slow down the page until a timeout is hit?


at 2023/07/02 (Sun) 3:18:38 pm

The status checks are done in the background by the server, not on the client, so once a request to the server times out the service will immediately trip into the "Outage" state.