Well, here we are… again.
This is it!
I've been working on and off on this since April, but I'm proud to say that I've finally finished The Squishy Lab v6.0! Isn't this exciting?
What's new?
So, those of you who remember my rehaul of this site from last year will notice that it kind of looks like nothing has changed. That's intentional! Even though I first created this layout all the way back in 2021, it's stuck with me enough that I didn't see anything that had to be changed other than a few minor adjustments. That, and reworking the mobile and tablet versions of the site to be actually usable. In any case, I feel like taking a closer look at all the CSS has helped me get a better handle on layout techniques, so I'll count that as a win.
So if nothing has really changed with regards to the site's appearance, then what changes were there that warranted rewriting the entire site from scratch?
The Changelog
Most of the changes I've made can be separated into two categories:
Functional Changes
I've made some big changes to the account system, the comments system, and in bringing back some long-lost features of the site.
The account system is mostly the same this time around, but a fun thing I've brought back is account colors! This feature of TSL (not seen since 2017!) required users to select a color for their account, which they'd use in conjunction with their account's username and password to log in. Now, a user's color will additionally color in their username across the website, allowing for a bit of personal flair across your comments and whatnot. How exciting!
The main thing I've changed up with the comments system is the addition of recursive comments! Unlike account colors, this is a feature that's never been seen before on TSL. Now, users can reply to comments, and reply to the replies of those comments, and reply to the replies of the replies of those comments, and so on and so forth! This isn't super significant, but I'm glad that I was able to implement it nonetheless.
Lastly, I've brought back SquishyChat, which was last featured on the site in 2021. This real-time chatroom was once a staple of TSL, and I first implemented it back when I wanted to talk to my friends outside of school hours. Of course, nowadays almost everyone has phones and whatnot, but I figured it'd be fun to bring back anyways.
Backend Changes
This main idea of this update was to rewrite the backend of the site.
But didn't you do that last year?
Why, yes! Yes, I did. The idea of rewriting the backend of the site a year ago was to make it easier to maintain the site's content, by automating the creation of posts and their comments sections, and the management of their associated files. The system worked well, don't get me wrong. But in all honesty, that just created problems with managing the site's codebase.
Quick refresher: The Squishy Lab was originally written as a static site, with all pages and assets managed manually. This was painful—heck, I didn't even use an IDE! But it worked for the site's early history, given that I implemented no server-side features.
Eventually, I decided that I wanted to implement basic server-side functions, like user accounts and comments on the site. This necessitated the use of a server-side language, and so I started writing parts of the site in PHP, since it was the easiest option for a while.
After 3 revisions built with PHP, I started to find that managing the site had become more time-consuming; it hadn't been a good idea to write server functionality into a site that was still completely statically written. So I decided that It was time to grow up and use a proper framework, and I rebulit the site with Ruby on Rails. And this worked great for a while.
But soon enough, two problems emerged. The first was that I never really learned Ruby. I learned just enough to put together a Rails app, and that was it. And that wouldn't have been too much of a problem, except for the fact that I started wanting to make changes to the codebase, and had a lot of trouble navigating my own code. And the second problem also began to rear its head: I had a personal disagreement with the philosophy of Rails.
Don't get me wrong, I think libraries and frameworks and opinionated design are wonderful for professional projects. But for my own site, I wanted something that would just let me write things the way I wanted to. Something that would let me go through the process of solving the various problems of web development. Something that I could look at and understand inside out. Something that I could take pride in using for my own personal projects.
And for me, that was Express.js, built using node.js. Node and Express gave me the tools to build this site, but they also let me figure out exactly how I wanted to build it. Even though I did end up settling on an MVC model for the site, it wasn't because it was given to me as the default, but rather because I found that it was the structre which I liked most. And now that I've built this site and know how it works in grand detail, I think I've finally solved both problems: ease of maintaining the content, and ease of maintaining the codebase.
So while I don't think that the site is objectively built better, I've ended up building a site that I'm happier with. And I think that that's what truly matters in the end.
So yeah, the site's back up. A couple of my friends have given me a couple of suggestions, which I'll be keeping in mind:
Going Forwards
One of my friends has suggested that I upload more of my projects on the site. I admittedly have a pretty high standard for what counts as a project worthy of posting, but what I've noticed is that after a year of keeping up the site, the only project I've posted is Bananas! Empire Edition: Remastered. So, I'm going to try posting more of my projects here from now on, including some of my smaller projects and animations.
I've also been told that I should bring back more of my older content. There's a lot of older content that I'd be glad to keep stored away in an archive, but I'll upload some of my older things on the site too. Keeping the layout similar to previous iterations will really help with this.
And finally, I've been told that I should develop a sequel to Bananas! Empire Edition: Remastered. I don't know when or if I'll have the time to do this, but the codebase is old and poorly-written enough that I'm embarrassed just thinking about it. Don't expect it anytime soon, but a Bananas! sequel is definitely in the cards.
Closing Remarks
This site means a lot to me. Although I've been more active with it at some times than others, I do appreciate always having this out there to show off what I've done, and to remind myself what I'm capable of. I've got plans for what I want to do going forward, so look forward to that!
Until then, stay tuned!
Log in to comment on posts.