Starboard

Starboard

Starboard has changed a lot since I last talked about it, and it's scheduled to start on the 15th of January for it's longest run yet, 8 months.

With Starboard 2.0 there was a lot I wanted to change outside of just the UI update for the players.

Here's a (near) complete list of features new:

  • Live Updates: Rankings will be hot updated on all users with the page open
  • Toggleable Tasks: Tasks can be hidden or shown to the players
  • Shop: Players can use their hard-earned stars to buy cosmetics, totally non-functional
  • Tamper-Evident Messages: For tasks that are time-sensitive or can change, a Player can be given a 'Tamper-Evident Message' which will alert when it is opened.
  • Better Webhooks: Webhooks can now send messages when tasks are added and/or when a tamper-evident message is opened
  • Activity Log: You can now see when and why the ranking of a player has changed
  • Admin UI Improvmeents: Various UI and under-the-hood changes to make administrating Starboard easier
  • Improved CI/CD: Checks in PRs to ensure consistency

Some of these are pretty unexciting enhancements (The webhooks and task toggling, for example), but others are pretty interesting.

Wait, what do you MEAN there's a SHOP?

I'd always joked about adding a shop in Starboard where users could spend stars to buy things like 'Shields' or 'Knives' which would have gameplay benefits.

In Starboard 1.0, I noticed we had two leaderboards, The Leaderboard, and the Negative Leaderboard, where players would request negative stars after completing tasks. So I was going to add 'Negative Items' which did the opposite of the normal 'Positive Items', i.e. a Negative Shield would double any damage you took if you were damaged.

While gameplay modifying shop items are really cool, to properly implement them, I'd have needed to flesh out gameplay mechanics, both intended and opposite effects for every item and then manually them to users as users do not log into the Starboard.

It would've been a cool gameplay loop, but at the current workflow of Starboard, is simply not possible.

With Starboard 2.0 I came up with the idea of players buying functionless cosmetics, like hats, fonts, styles and animations for their card.

Here's a few examples:

Some cosmetics players can buy.

These carry no benefit to the player, and are just to flex. The amount you have spent on stars is not counted in your overall total, so players must balance looking cool with winning, it's a difficult decision to make which makes it even more interesting.

What about this 'Live Update' you were talking about?

Sometimes I run the main Starboard, or a one-off Starboard at parties I host or attend, originally I'd just put it on a screen with it set to refresh every 5 seconds to keep the leaderboard up to date, but this was annoying as if you were looking at the tasks during a refresh, you'd be sent back to the leaderboard.

With Live Updates (enabled by default), every time there is a change in the ranking, all clients are sent an update with the new details. This means that any time a player is added, removed or has their stars changed, they're given near-instant updates.

The Live Update dialog where you can enable or disable the Live Updating feature.

Players can choose to disable Live Updates, in which case the live data will be loaded with the data gathered on page-load.

This was done through the stunning [SvelteKit-SSE](https://github.com/razshare/sveltekit-sse) package by [Razshare](https://razshare.dev/) which makes implementation of Server-Sent Events trivial (Less than 50 lines of code for server production and client consumption!)

Currently Live Updates only apply to players, as tasks and cosmetics do not change frequently enough to necessitate Live Updates, but this may change as Starboard expands.

What's next for Starboard?

Starboard has changed so much in just over 2 weeks, when I rebuilt Starboard from the ground up. I talked about the automatic deployment system I have set up for it and my other projects [here](https://blog.rjm.ie/the-importance-of-being-a-sysadmin/).

I'm not dead-set on the next featureset for Starboard, but some things that come to mind are:

  • Faster deployment
  • Improve UI for Users (Faster loads, etc.)
  • Automatic posting to the Instagram for new Tasks & Cosmetics
  • Leaderboard history (Either a graph or it replaying the changes overtime)
  • Card animations for live updates (Glide instead of teleport)
  • Improved architecture to make it easier to maintain and expand
  • Improved documentation to make contributions and others hosting it easier
  • Fix some small UI bugs

Starboard just had its 2.3.0 release which contained the Live Updates, and there's no more major features required before it starts up.

Many bugs and feature requests will show up during the 8-month run where Starboard will be hit with high activity, so I can't wait to see where Starboard goes!