Skip to content

[TRACKING] Engage the open source community to improve app performance by reducing unnecessary re-renders #66161

Description

@mountiny

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 OwnerCurrent Issue Owner: @Beamanator

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

PlanningChanges still in the thought processTaskWeeklyKSv2

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions