Frontend refactor
I'm going to be refactoring the frontend to use Bun, Rspack and TypeScript. I plan to do this in multiple steps, each of which I'll start on after the previous one is merged.
-
Rewrite the frontend in TypeScript. This will probably be annoying at first as all the types and everything will need to be sorted, but once it's done it will make for a much nicer experience going forward. This will most likely be the biggest PR, and the one that will require the most scrutiny. The goal is not to change any functionality just yet, just add types where they're necessary.
Seeing as it would be a lot of effort to migrate the current frontend to TypeScript, the plan now is the simply rewrite it using Astro with the Bun SSR adapter. This will allow us to use Vite as the build tool, and many other framework-agnostic tools instead of being stuck in React. It will also allow us to use components from other frameworks, however for maintenance purposes this is discouraged.
The new frontend will be built in a decoupled way from the rest of the codebase, such that someone who only wants to work on the frontend does not need to know anything about how the backend is structured or built. Certain values on the frontend, such as the site name, description, API URL, etc., will be controlled by environment variables so that changing these values will not require a full rebuild of the site, simply a restart.
Biome has been temporarily disabled as it does not fully support Astro yet. More details on this and other major changes are in !16, which will also close this issue.