feature request: Proposal: Evaluate migration from React Native CLI to Expo for improved DX and maintainability
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- react-native
- Domain
- developer-experience, mobile-dev
Research direction
Start by auditing the Rocket.Chat React Native project's current native dependencies and checking their compatibility with Expo Dev Client. Test whether the project can run with the proposed prebuild approach, then document modules needing custom native support. Done means a feasibility study identifying blockers and, if viable, a phased migration roadmap.
Written by the indexing model from the issue text.
Description
Feature Description
Proposal: Evaluate migration from React Native CLI to Expo
Problem
The current Rocket.Chat React Native app is built using the React Native CLI and relies heavily on manual native configuration. This leads to:
- Complex setup for new contributors
- Dependency conflicts (Node/React version alignment)
- Longer onboarding time
- Increased maintenance overhead for native modules
- Difficult environment reproducibility
During local setup, contributors often face issues related to:
- Peer dependency mismatches
- Native build configuration
- Version compatibility
Proposed Direction
Explore the feasibility of gradually adopting Expo (prebuild/dev-client approach) to improve:
- Developer experience
- Faster onboarding for contributors
- Easier dependency management
- Reduced native configuration complexity
- Improved testing and iteration speed
This does NOT necessarily mean a full immediate migration, but rather:
- Evaluating compatibility with existing native modules
- Identifying blockers
- Creating a migration roadmap if feasible
Possible Approach
- Audit current native dependencies and Expo compatibility
- Test running the project using Expo Dev Client
- Document modules requiring custom native support
- Propose a phased migration strategy (if viable)
Motivation and Use Case
Expected Benefits
- Faster setup for contributors
- Reduced environment-related issues
- Improved long-term maintainability
- Easier experimentation and feature development
Implementation Ideas
Willing to Contribute
I would like to take ownership of:
- Initial feasibility study
- Dependency compatibility analysis
- Proof-of-concept setup
- Documentation for migration path
Would love feedback from maintainers on whether this direction aligns with project goals.
Is this feature available in the API or web version?
Available in API
Rocket.Chat Server Version
No response
Rocket.Chat App Version
No response
Device Name
No response
OS Version
No response
Additional Context
No response
- Dominant language
- TypeScript
- Stars
- 2.4k
- Forks
- 1.5k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 29
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from RocketChat/Rocket.Chat.ReactNative
-
[IMPROVEMENT] Remove redundant `await` on synchronous `userPreferences.getBool` in `getUsersPresence`Possibly taken A pull request linked to this issue is open or already merged. Opentype: feature
Difficulty 1/5 Under an hour Newbie friendliness 92/100
RocketChat/Rocket.Chat.ReactNative#7737 ·
Maintainers usually reply within 1 day
-
UIKit modal: a viewSubmit response with no `type` field fails to close the modal on mobile (regression from #7057)Possibly taken @erikurt9 claimed this 106 days ago. Opentype: bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
RocketChat/Rocket.Chat.ReactNative#7503 · 3 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
type: bug
Difficulty 1/5 Under an hour Newbie friendliness 86/100
RocketChat/Rocket.Chat.ReactNative#7437 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
✅ tests 👷 ci type: feature
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
RocketChat/Rocket.Chat.ReactNative#7247 · 1 comment ·
Maintainers usually reply within 1 day
-
bug: goRoom navigates to broken RoomView after failed DM creation from searchPossibly taken @deepak0x claimed this 215 days ago. Opentype: bug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
RocketChat/Rocket.Chat.ReactNative#7098 ·
Maintainers usually reply within 1 day
All issues in RocketChat/Rocket.Chat.ReactNative
Similar issues
-
bug
Difficulty 2/5 Half a day Newbie friendliness 68/100
amosblomqvist/learnharness#758 ·
Maintainers usually reply within 2 days
-
Change WorkspacesOpen
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
bitfocus/companion-module-renewedvision-propresenter-api#134 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
rcpch/digital-growth-charts-react-component-library#304 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dsh-market/dsh-market#1210 · 1 comment ·
Maintainers usually reply within 1 day
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
trustjonathan/STUDY-HUB#13 ·