What Framework Should I Use?

#JavaScript #fontend #backend #nodejs #fullstack #devdiary #tarotjs

This is a common question that I feel a lot of people face every day, from season vets to newbies looking to learn something that might be useful elsewhere.

One thing I can say, from what I've learned, is that the framework isn't really all that important, it's the fundamentals that matter. When I was younger and and the commercial internet was still in its infancy, the big saying was “RTFM,” read the fucking manual. Which is still true to this day. If it doesn't have good documentation, move on.

As far as a language, I'm sticking to JavaScript. I like it. I was never hardcore into programming like all of the Rust and Go people out there. I just want to be able to do stuff. If I ever hit a point where JavaScript isn't doing what I need it to do, then I'll move on.

OKAY, I get it, I know some people are annoyed by the term fullstack... Some people don't agree that you can do everything in JavaScript... I'm not convinced that you can't. I'm really impressed with projects like enimga ½ bbs... Curious what The Primeagen would have to say about that one in particular. He's around my age, he must have some BBS experience. But in any case, I want to write a PWA. I want to turn my idea into a usable application experience across a multitude of platforms with as little resistance to using it as possible; desktops, laptops, tablets, and mobile. The last thing that I want to do is learn Rust or Go just to have a solid backend. This project isn't going to support a bunch of users, it's just going to be a local experience (for now).

In terms of hosting, it'll either be a standard VPS with someone like GoDaddy, or I might use DigitalOcean for their App Platform. I think I'm pretty much set on DigitalOcean though. I could go the AWS route just for the hell of it because that's what a lot of people use (we use it at work), but this is my own personal project. Whether or not it makes any money is also going to be dependent on how easily I can use my toolchain to deploy fixes and patches and everything else, as well as how much I enjoy working on the project. AWS is not fun... Stop it.

Project requirements

Frameworks

Here are the frameworks I'm looking at and my thought process behind the pros and cons. I may very well be wrong, or my opinions could be based on misinterpretations, or not knowing different ways to approach certain obstacles. So, if there is something that I'm missing or something that is misstated because I don't fully understand how something works, please reach out to me. Let me try and learn from your experiences.

1. ExpressJS

Express is appealing because I can do everything in vanilla JS if I want, and just keep building on the project as-is. OR, I can do all the Express-specific stuff and combine it with pretty much any other framework, and I only have to write the AI API calls once—at least that's my theory.

2. Preact

Incredibly lightweight, and I did learn React, and this is similar enough to it... Do I really remember React? No, I'm not a big fan of React.

3. Vue.js

I really like the philosophy behind Vue. As well as the idea that you can just use it through a CDN is incredibly appealing, but we're shooting for a local experience, which means installing it as a dependency. The biggest pain with Vue will be re-writing a bunch of stuff.

4. Svelte

Other than watching Primeagen interview Rich Harris, I know nothing about how Svelte works or any of its design philosophies.

5. Angular

Again, I don't know much about this, I've never played around with this dialect. I know it's essentially Google's answer to React, but Google also has Polymer. [^1]

6. Polymer

Last I checked this was a UI toolkit for Dart or some shit like that... This was many years ago though. At that time it wasn't exactly its own framework in the same way that we understand modern JavaScript frameworks. [^2]

7. PWABuilder

Fucking Microsoft... They really are a different company these days. I recently watched a Primeagean video where he read through a Medium article called “From VSCode to VIM” and the point was brought up: The mindset of VSCode is to use it, not learn it. The mindset of VIM is to learn it then use it. PWAs really aren't all that complicated; it's a manifest and a service worker (essentially), but PWABuilder just does it all for you! Use it, don't learn it. Honestly though, I will take the time to learn it, but I played around with the VSCode PWABuilder Studio today, and I might be sold on the idea!

Yeah...

I think ExpressJS with vanilla JS and PWABuilder Studio might be the way that I go... Just have to decide on a lightweight UI library. Maybe I stick with Bootstrap??

[^1] : It was pointed out to me that Angular was first, and React was Facebook's answer to Google.

[^2] : Apparently Polymer is being replaced by Lit.