Design/analysis interface is somewhat TBD. It would be great if we could rely on Vue3 + SVG, though depending on performance we may need to stick with PixiJS/WebGL. It will be primarily Typescript except for 3rd party code which needs to be compiled via WASM (we've also discussed that in the future it could be interesting to explore building some components in rust, particularly where performance is relevant and wouldn't be eclipsed by interop overhead)
Mobile app will be Vue3 + Typescript as well. At the very least it should reuse much of the same underlying code as the main website, but it could be ideal if instead of being a separate application, that the main website is a PWA and we just serve that so that we can do updates without running into delays and synchronization issues due to app store reviews, users not updating, etc. Either way, we'll be wrapping with something like Cordova, Capacitor, or Tauri - specific decision TBD.
Backend/API will be NestJS (framework), Prisma (ORM), Typescript, and PostgreSQL (database)
Infrastructure will stay on AWS. We intend to explore Terraform for infrastructure provisioning - right now we use the AWS CDK, but its reliance on CloudFormation can lead to some pain. We may use the CDK for Terraform so that we can stick with Typescript - TBD. We'll presumably be using some combination of Ansible and Docker for environment/configuration management
CI/CD will be done via GitHub Actions
Tooling is largely documented in their relevant issues in https://github.com/eternagame/workspace-helpers. The plan is Nx for monorepo management (dealing with inter-package dependencies, coordination, caching, scaffolding, etc). Vite for builds, vitest for unit tests, Cypress for e2e and component tests, and eslint for linting.
Tracking decisions related to technical requirements, tech stack, etc