Skip to content

Current Webmaster's Opinions

Jon Andre Briones edited this page Jul 26, 2025 · 8 revisions

What is this place?

This page might seem a little strange, but I'm adding it in case people end up reading the wiki (lmao). This is where the current Webmaster can share their opinions and philosophies on this project and software development in general. This is not the place to present things related to your political, religious or non-development related beliefs. Future Webmasters, make sure to update this page and put a little thought into why you took the role.

Introduction

If you've stumbled upon this, hello, my name is Jon and the best way to reach me is on Discord (disdasdefa or UID 186605452199591937). I started this page and have been the Webmaster since May 2025. I also started the current iteration of this repo, wrote most of the wiki and will probably be reviewing your code. I think it's a good idea to understand why I've made certain decisions, but if some things are unclear feel free to reach out to me.

Why did I apply to this position?

  1. I felt I was getting rusty with my web development skills, had some things I wanted to test, but couldn't focus on a personal project long enough for me to finish them. This position forces me to learn new things, test out some concepts I learned and gives me some pressure to get things out the door.

  2. I think web developers are perceived as the lowest form of software developer (due to tech influencers and yappers) and I want people to understand why it seems so "complicated" and "is a mess". I've spoken to some of the people in our program and some people hold strong opinions based on wrong information.

  3. I wanted to work on my communication skills. Leading a project is a lot of work and requires you to communicate with people. When someone comes to me with a question about something I wrote or said, I use those moments to learn about what I could have done differently. Sometimes my requirements aren't clear. Sometimes I assume a knowledge level and need to change how much I should explain something. When I get frustrated with someone doing something wrong it's not because I think they should already know something (unless they really should), it's usually because I probably need to change how I communicate.

  4. Teaching is a good way to keep me sharp. I used to tutor high schoolers and it was surprising to see how much stuff leaked out of my brain over the years. It was also a good way to make me understand things at a foundational level and learn to communicate effectively.

Development styles

I think everyone will have an opinion on what they believe the best software development style is. I define a software development style as "your process to searching for and implementing solutions to software issues". Solutions can range from which library or language you use, down to the choice of a switch-case or if-else statement. An issue can be as small as a bug or designing an entire distributed application. You probably fall under one of these categories:

  1. You know the best solution to things
  2. You don't know many solutions, so you stick to familiar ones
  3. You don't really have preferred solutions to most problems

I think I'm a mixture to 2 and 3.

Category 1 is something that I will hesitate to ever be under. In software development, there are usually multiple ways to do the same thing. To find the best solution that means you need to know why every other solution isn't good enough. For algorithms, this is probably possible, but when you're doing something bigger, like building a web application, there are completely different paths you can take that will end up at the same destination. If you've been a developer for less than a decade, then I doubt you're at the point where you can claim anything is the best.

Category 2 is something I hope to work on. I do personal projects to learn new libraries; sometimes I end up liking something, sometimes I don't. I generally stick to the ones I like and use them to work on projects. This means I build up my skills using that piece of tech. In general this is good, as you build up your confidence, but this confidence might turn to arrogance. Becoming proficient in a piece of tech might make you believe that your tool is the only tool and everything should use that tool (see the cult of Rust).

Category 3 is where we should be if we're new to something. We should learn and understand every piece of tech we use, so when we encounter new problems we can make the right choice. If you're still a newbie (which I believe I am) then that ensures that you will not stagnate. If you're a few years down the line and you still believe you're in category 3 then you might want to try and start working category 2. You'll eventually need to figure stuff out by yourself and have good reasons as to why you chose what you did.

Justifications for the tech stack

I just spent a bunch of time talking about the type of developer I am, so let me explain the reasons for why the project is set up this way.

Libraries used

Tiny history lesson

Angular started the whole SPA craze with its first version, AngularJS. This framework changed the way people built web applications, from server-side rendered PHP applications to client-side rendered JavaScript applications. You'll find no shortage of people that hated PHP and once AngularJS took off people hated it too! This wasn't really a "it's popular, so it got haters" sort of deal, AngularJS was legitimately confusing, had a pretty bad developer experience and was pretty darn slow. I worked with it for a few years and I agree with the haters.

Google decided to rewrite Angular from the ground up and made a few key changes that made its developer experience way better. Since it used TypeScript certain bugs were harder to implement, diagnostics would give you issues beyond syntax problems and code became easier to understand.

Nowadays, AngularJS is no longer officially supported, while Angular is still getting an update every 6 months. So if someone says they dislike Angular and start describing AngularJS, you can safely exit the conversation because you're dealing with a yapper.

We went from static pages (HTML/CSS/JavaScript), to server-side rendered applications (Laravel, Django) to client-side rendered applications (Angular, React, Vue) back to server-side rendered applications (with Vercel pushing SSR in Next.js to get people hooked onto their platform), to frameworks using a compiler to make static pages (Astro). You can probably see why web developers look stupid.

Angular

  1. Chances are you've heard of React/Next, Svelte, Vue and other frontend JavaScript libraries. The only other frontend framework I have recent experience with is React, which I have... certain opinions about. I admit I'm inexperienced with React and the frameworks derived from it, but I foresaw (and saw) problems that could be remedied by doing things the Angular way™. Throw a rock into a room full of your peers that do web development and there's a good chance you'll hit a person that primarily uses React or one of its derivatives, like Next.js. Since React is so popular you'll find no shortage of people that can help you work with it. I thought it would be nice to give people an option to learn something else, so that's one point for it.

  2. Angular has a certain way of doing things. There are usually escape hatches for what it's doing, but for the most part you'll be guided by the framework. This makes it much harder to get too fancy and introduce a bunch of messy code. If you need to do something, you can probably use something Angular comes with. Need to share data across the entire app? Use a service. Want to apply some complicated logic to multiple components? Use a directive. No need to find a library and hope it stays maintained, the Angular crew gotchu. This makes it easier for people to hop in and start working on the project.

  3. TypeScript. Using a non-typed programming language would make future maintenance in the future. Imagine removing a key from an object, but you didn't realize some other part of the application used that key. That happened a lot when I worked with JavaScript, so let's make our lives easier and stick to TypeScript.

FontAwesome

I'm using this for icons. The Angular Material UI icon library is also available, but Angular Material is a bit too... bland for me. Makes me feel like I'm making a Google application.

GSAP

An animation library used for more complicated animations. So far it's been underutilized, but maybe in the future it'll be integral to the user experience of the site. I'm really bad at making things look nice and this made it easier to make certain animations. I'll usually default to CSS animations, anything that's too complicated will be made in GSAP.

Clone this wiki locally