Towards a new SpriteClub
#1
I'd like to talk a bit today about whats in store for the future of SpriteClub, and I'd like to start by talking a bit about the past and my motivations. You see, I'm a programmer that really likes nice and clean code. Bosses no doubt hate me, because I'm more concerned about the code than it doing what they want it to do.
Now how does this tie in to SpriteClub? Well, I do SpriteClub for fun, and even if I'm not around in chat as often, trust me when I say I do have a lot of fun running this place for everyone. But the issue is, some parts, I'm not having fun with. One of these things has been the website's backend code.

About 6 years ago, SpriteClub's development was started while I was still a Bachelor student. I had a strong desire to make SpriteClub work, and for the website I just went with PHP because "that's the stuff most websites run on". It frankly took me a while to get anything functional at all, but eventually, through sheer determination, I made things work.
The problem is, it's not pretty. It's really, really not pretty. I was inexperienced, I just focused on making work what I wanted to work, and ignored important things. Generally, I made a hellscape for myself later on. As a result, it's now hard for me to develop new features, hard to debug existing things, and overall I just detest PHP and the way the site fits together. This, more than anything, has been the thing preventing me from adding features to the website over the past few years. Just a strong desire to not want to look at the code.

A few months ago I did some preliminary work to set up further development on the website, try and force myself over that mental blockade, but frankly, I feel it hasn't worked. I still don't want to work on the website, but I also really don't want to just leave it as-is.
Trying to find a solution for this, a while ago I decided to look into some extreme alternatives. After weighing various options, doing some prototypes, and setting up some basic stuff... I feel like I've come up with something concrete that I can really turn into a reality, and that will provide me with the motivation and ability to deliver a much better product.

The new SpriteClub
I've decided that I will be recreating the website from scratch in ASP.NET/Blazor. This has various benefits to me. I'm well acquainted with ASP.NET, it offers tons of tools to make development easier and faster, I love to work with C#. It's what the runner is also written in, meaning I can share code between the two applications and save myself work. Blazor also makes it easy to perform live updates while browsing, natively and automatically handling the behaviour that I was manually implementing with socket.io in the past.
Serious development into this began a few weeks ago, and I'm happy to say that it's moving along nicely. I have tons of ideas for the new website, and I'm really motivated to throw out that old code and make something amazing. But make no mistake about the scale of this project. The website initially took me several months to make. I'll be able to develop this version faster, but I'm also no longer a student with tons of free time. The new website will come, but be prepared for some waiting.

Goals
First of all, let me just say that I want to keep everyone updated on this over the coming months. For now, I will try to provide you all with a development update every month or so. Right now though, I don't have much to say about the current state of things. I've only really worked on backend stuff: authentication, database management, a bit of general layout, and setting up some services for features further down the line. There's been good progress, but there's nothing I can show besides an unfinished login page.

So instead of that, I want to talk about goals, and provide opportunity for input from viewers. For now, the general goals of the website are:
  • All data will be retained.
  • Basic layout will be the same, as well as types of pages offered (e.g. character page, match page, etc.).
  • Various pages will be redesigned. At the very least, pages must become mobile friendly.
  • This includes the main page for the stream/bets. For this one in particular, the mobile and desktop version will likely work completely differently.
  • There will be much better support for live updating of data and settings, as there is a built-in connection to the server (a lot more & better settings).
  • For those interested in getting data from the website, the current files such as state.json and stats.json will no longer exist. However, I will be looking to open up an API to access data. This will not be a goal for release, but ideally not long after. I'd also like to motivate the continuation of things like https://mugen.sanso.moe/SpriteclubDatabase/ by making it easy to get the data from the new website.
There's a bunch of more specific things I have in mind, but this post is pretty long already, and honestly I'm more interested in your suggestions than my own ideas for specific features. To this end, a Discord channel #website-rework has been set up for open discussion (and maybe some progress updates). You can also use this thread or the feedback/bug report section. Finally, I'll see about setting up a thread that aggregates some of the popular suggestions, either in a few days by myself or when someone volunteers to do it for me.

So, what kind of features would you guys want? What kind of settings? Is there some (live updated) behaviour you'd like to see from the new website? What kind of data would you like to know about your account, characters, matches, etc?
Please feel free to give whatever suggestion you have. Of course I cannot guarantee it'll be included, but there has never been a better time for me to take your feedback into account, so I'm happy to read whatever suggestion you have.


Lastly, I'd just like to thank everyone for their love and support for the website. This redesign has been on my mind in various forms for the longest time, and seeing the continued interest in the site is really what motivated me to push for this redesign despite the major investment required. I really want to give you all a website that I'm actually happy with, happy to continue working on, and most of all that you all deserve.

P.S.: Character update next weekend. I got sidetracked for obvious reasons, but it is still coming.
Reply
#2
I'll try and collect ideas from the #website-rework channel here in their shortest possible form. This is a fifo list so 1st entry is the oldest. I'm not judging these entries. I just collect them here so they're not lost in the discord channel.

New feature:
  • Custom notifications (via sound) for certain characters/authors/modes/tournament type/rating range (maybe different sounds for different matches?)
  • Mouseover preview for stages/chars when making exhibs
  • Templates for exhibs (examples: save stage/song and a rating range)
  • Badges ... because why not?
  • Public profile page (/user/sanso - make this optional and don't have any required fields!)
  • Add ways to spent the SC currency
  • Allow to bet automatically for loyalty chars (under certain conditions, eg exhibs excluded and spent currency to buy additional slots, start with 3?)
  • Bookmark Follow Stalk characters that you like, see their last matches and get notified (email? discord DM? ¯\_(ツ)_/¯ )

Quickwin:
  • Add a "banned" and "duplicated" link to the characters
  • Find a name for our currency
  • Add default amounts to the bet buttons
  • Multiple clicks on one of the set amounts adds that amount to the current one instead of overwriting the amount (make this optional and/or mobile only!)
  • Show palettes column to a match (Display palettes per individual match (spriteclub.tv))
  • Show where exhibs end on the exhibs page (make sure to show thats a "mabye" as people can activate theirs last Show which exhibs won't run (spriteclub.tv) )
  • Add og-tags (so chat programs and Google n stuff can show snippets of the page)
  • Fix the Forums button to open in a new window
Change:
  • Add API (REST?) to query more information - static json like the all.json but extended would suffice(?)
  • Add "Author" to the stage search
  • Add a possibility to search two fields at once (author/char) or make results searchable (search for author first, then for a char from that author)
  • Add additional column to the matches to show the VOD with according timestamp
  • Allow for color changes of the username in the betlist and profile (see new features also)
  • Make the accounts available in myBB (aka this forum) so users only need to login once
New Modes (game/site):
  • "Royal Rumble", probably a "tap out"-like system? "two fighters enter the arena and after one got KOed, another fighter would take it's place."
  • "Double or Nothing" bet system; if you win a bet you can put the money back on the line and it'll automatically be doubled but you have to blind bet the next match
List will be expanded as time continues.
Reply