I believe I have reached a certain level of success. The canvas seems to have excellent performance. Could you take a look at the ongoing test and provide feedback?
https://alpha.breathingworld.com/
Probably doesn't matter much for performance. It all gets stripped away during build anyway.
As a side note, I was never really fond of jQuery, even when it first came out, and it ended up becoming almost obsolete. Lately, I'm also not entirely happy with the direction React and Next.js are heading. It could just be because I've grown so accustomed to Vanilla JavaScript.
That's fine, you can still use Typescript with vanilla JS and not use any frameworks. Typescript shouldn't result in unnecessary code in production. It's just developer hinting during dev, but it gets removed during the build.
If you don't want to use a build tool at all, you can also use JSDoc formatting to provide some basic type and parameter information. Your IDE can still use that to provide hints.
It's totally up to you. If it's a solo dev codebase that only you ever see and you don't want to type it, then don't :) If you do end up wanting to share the code though, Typescript makes it a lot easier for other devs to use because they can instantly see when something is wired up wrong during development.
I really like TypeScript as well. In fact, the back-end of this project is developed with .NET 8.0, and since TypeScript gives off a similar vibe to C#, I genuinely enjoy using it.
I've already made the web front-end open source: https://github.com/Farer/breathingworld_client_web
Even though I’m using Vanilla JavaScript for personal preference and to minimize performance issues, I’ve also been concerned about potential challenges when collaborating with others in the future. I’m currently looking for collaborators, but it hasn’t been easy. Honestly, I might be going against the trend, but that’s a possibility I’m aware of.
Vite vs React vs Next is crates vs oranges vs boxed oranges.
I know react but never touch it. React, vue, svelte are “state management”. I’m using mithril.js with POJOs for my frontends.
Vanilla everything gets messy in interactive apps, and I come up with a poor man’s mithril usually, then rewrite for it.
Made numerous projects with m(), inhouse dashboards/forms, crypto/stock trading tools, RC buggy debug interface. Currently a set of crypto-related db views again. Not sure if I want to share the code though.
Just read mithril guide if interested, it’s very short. I don’t do anything funny with it. If it clicks, it clicks. If not, ignore it.