Before we start actually writing code (and while we're landing on a JSON storage spec), we should investigate what our options are for the tech stack.
Unless we come upon a pretty compelling reason, we're likely going to stick with a web-based frontend (whether in browser or a webview).
This ticket then focuses on evaluating our options for the backend, which will primarily be a layer between the flat JSON files in the filesystem and the web frontend.
The primary thing our backend needs to do is read/write JSON files from the filesystem and send them to the frontend so whichever tech we choose won't have to be too involved in what we have to write in it.
Tasks
[x] Investigate tooling backend possibilities. Below are a few that I heard brought up by team members in 1-on-1s, but also feel free to look into another option if it seems promising.
[x] TypeScript API-backed webapp (sticking to what we know best as a club)
[x] Rust Tauri-backed desktop app (exploring a popular language in a small-scale environment)
[x] TypeScript htmx-backed website (keeping the frontend simple by sending HTML forms)
[x] Java API-backed webapp (trying a new-to-sandbox language as a backend option)
[x] Anything else you feel like investigating/come across while looking into these.
[x] Write up a Notion Doc detailing the pros/cons of our different options these can include but feel free to tweak these as you feel appropriate:
How interesting the language might be to team members/the club as a whole
Difficulty to learn
Project boilerplate/overhead
Long-term flexibility
Maintainability when knowledgeable members graduate/leave Sandbox.
[x] Informally present your findings to the team and I'll set up a ranked-choice vote on the different technologies presented.
Summary
Before we start actually writing code (and while we're landing on a JSON storage spec), we should investigate what our options are for the tech stack.
Unless we come upon a pretty compelling reason, we're likely going to stick with a web-based frontend (whether in browser or a webview).
This ticket then focuses on evaluating our options for the backend, which will primarily be a layer between the flat JSON files in the filesystem and the web frontend.
The primary thing our backend needs to do is read/write JSON files from the filesystem and send them to the frontend so whichever tech we choose won't have to be too involved in what we have to write in it.
Tasks