Skip to content

Technical Debt

holmesworcester edited this page Nov 8, 2024 · 1 revision

To get to a feature-complete MVP we have chosen to take on technical debt. This page is an attempt to track technical debt, the reasons for it and our plan for addressing it.

  • Electron - at some point we will begin releasing monthly with Electron's cadence, but we're many months behind.
  • NodeJS 18 - nodejs-mobile supports up to NodeJS 18.
  • Lerna - We used this to have a monorepo, which is now possible with Workspaces in the leading package managers
  • Nodejs-mobile - It has been very useful to have a shared desktop/mobile backend, but it's possible this project won't be maintained. Options: maintain it, find another way to compile our JS code for mobile, switch to Go or Rust. (Iroh is a Rust alternative to OrbitDB)
  • Electron-builder - it's typical to use electron-forge now so we should probably move to that.
  • Test performance issues - tests run too slowly; we want to speed this up!
  • NPM - it might make more sense to use yarn or pnpm for faster build time and tests, or for
  • React native - there's no barrier to upgrading, though there are significant new features we aren't using
  • Libp2p/Helia - this is limited by what versions OrbitDB works with, and OrbitDB is not always perfectly tracking the latest libp2p/Helia (Helia is the JavaScript implementation of IPFS.)
  • Tor binaries - we are often a bit behind the latest Tor binaries
  • Arti (Rust Tor) - C Tor will be deprecated at some point in favor of Rust Tor, which we will probably use as a binary Node dependency.
  • Frontend business logic - there is currently too much business logic in the frontend, and we are working to change this. See this PR for an example of the pattern we'd like to pursue: https://github.com/TryQuiet/quiet/pull/2617
Clone this wiki locally