Coming from here
Proposal
Engage the open source community to improve app performance by reducing unnecessary re-renders.
Background
We are prioritizing quality, stability, and speed more than ever before. Our open source community has been essential to scaling development with a lean team over the past three years. We have found great success with utilizing them to help fix bugs or develop new features, which is where we mainly benefit from their help right now. However, contributors aren’t currently incentivized to tackle one of the most impactful performance areas: reducing unnecessary re-renders. Given the size of our codebase, there’s significant potential for improvement.
With the expert agencies we have already addressed multiple re-rendering issues that led to improvements in the app performance. Examples one, two, three.
Problem
When components re-render more often than necessary they consume extra device resources, if the customer uses the App, then the interactions are slower, user experience is degraded, and ultimately conversion and retention can be impacted.
Solution
We’ll engage contributors to help identify and eliminate unnecessary re-renders. A new contribution template will be added to the #expensify-open-source room to guide this effort.
Contributors will be asked to:
- Identify a specific flow and component with excessive re-renders, providing evidence (e.g., logs, profiling data).
- Propose a targeted code change that reduces re-renders without introducing regressions.
- Include metrics showing the performance improvement.
- Look for broader patterns:
- Could this be prevented by an ESLint rule?
- Are similar issues present elsewhere?
- Suggest improvements to test coverage for the affected component.
Because performance optimisations can introduce difficult-to-spot regressions, each proposal will be reviewed by both an expert and an internal engineer before being accepted.
The exact template to be discussed with the team in predesign.
Once approved, the contributor will be assigned the implementation with a reward of $250.
Issue Owner
Current Issue Owner: @Beamanator
Coming from here
Proposal
Engage the open source community to improve app performance by reducing unnecessary re-renders.
Background
We are prioritizing quality, stability, and speed more than ever before. Our open source community has been essential to scaling development with a lean team over the past three years. We have found great success with utilizing them to help fix bugs or develop new features, which is where we mainly benefit from their help right now. However, contributors aren’t currently incentivized to tackle one of the most impactful performance areas: reducing unnecessary re-renders. Given the size of our codebase, there’s significant potential for improvement.
With the expert agencies we have already addressed multiple re-rendering issues that led to improvements in the app performance. Examples one, two, three.
Problem
When components re-render more often than necessary they consume extra device resources, if the customer uses the App, then the interactions are slower, user experience is degraded, and ultimately conversion and retention can be impacted.
Solution
We’ll engage contributors to help identify and eliminate unnecessary re-renders. A new contribution template will be added to the #expensify-open-source room to guide this effort.
Contributors will be asked to:
Because performance optimisations can introduce difficult-to-spot regressions, each proposal will be reviewed by both an expert and an internal engineer before being accepted.
The exact template to be discussed with the team in predesign.
Once approved, the contributor will be assigned the implementation with a reward of $250.
Issue Owner
Current Issue Owner: @Beamanator